I used a test light, turned the key, and it lights up when I touch the starter solenoids so its getting power
Which terminal (on the solenoid) did you connect the test light to? There are two:
A big one - labeled "B". This has two leads connected to it. A big one that comes in from the positive battery post and a medium one that quickly splits into two separate branch lies. Provided your positive cable is intact, this terminal (and any wires connected to it) should show full battery voltage at all times. Since it is connected directly to the battery positive, it will always be hot - this is true whether the key is on or off.
The only other wire is a small purple one. This is the lead that controls starter operation. It is only energized when the key/ignition switch is in the START position.
Think of the big black wire that comes from the battery as an explosive charge and imagine that the small purple wire is the detonator. By itself (although it has a huge amount of power) the black wire can't do anything. It needs a small outside signal to operate. This small signal is referred to as the control circuit. When the control circuit is activated, the power available in the big black wire is unleashed and this is what causes the starter to engage and crank the engine. Without the impulse provided by the purple wire, the black wire just stands by and waits to run the starter motor.
Enough with the analogies.
If you did not have your test lamp connected to the purple wire, do the test again- this time checking that the purple wire becomes energized when the ignition switch is moved to START.
If it does not light up, there are basically three possible causes:
1. The ignition switch is not closing the start contacts
2. The clutch safety switch is not closing (manual transmission only).
By the way; your suggestion that it might be the neutral safety switch was a good diagnostic guess - if your truck was a 1984 (or older) model year.
By the time your truck was built in 1985, the NSS was obsolete. Instead of an electrical switch, starting the engine (with the gear shift in anything other than P or N) was prevented by a mechanical interlock within the steering column.
The switch is still installed at the base of the steering column, but only the contacts for the back-up lights are used. The starter control wires - that previously ran through the NSS contacts (yellow in and purple out) - were replaced with a single purple lead. It now runs past the NSS switch and directly to the starter . See the wiring diagram below.
3. A loss of continuity (i.e. broken wire) in the control circuit. This could be anywhere in the purple wire - from the ignition switch to the "S" terminal on the starter solenoid).
Do the test for power to the S terminal with key in START first.
If it tests out okay, and you have power at the B terminal - but it still won't crank - next thing is to look closely at your main ground cable. As you probably already know, it runs from the battery negative to the alternator bracket (usually). Check for tight/clean connections on both ends and broken conductors at the crimps. It might be worth it to just by a new one and eliminate that as a possible cause. They are fairly cheap.
Wiring diagrams showing the purple wire (I am color blind so the lines might not be purple - I took a guess):
You must be registered for see images attach
You must be registered for see images attach
Same dwgs- unmarked:
You must be registered for see images attach
You must be registered for see images attach
Given the information you provided on what is still working (the radio for example) I think we can rule out the fusible link that feeds that side of the system. How about your windshield wipers - are they working?