the fan in my radiator in my 97 2.2 cavalier, doesn't come on when the engine heats up, it only comes on when I turn the ac on, I tried replacing some censor a mechanic told me was bad.
I don't think it's a relay cuz the fan works when the ac is on, otherwise, it doesn't move.
what do you guys think the problem could be?-
You are correct about the fuse and relay - there is only one of each, and if the fan runs with the AC selected, then the fuse and relay are good. Also if the fan runs with AC selected, then the fan ground is also good. That only leaves the ECT (Engine coolant temp sensor), that you mention you already replaced.
Looking at the diagnostic help in the manual - there is nothing else but the wiring. The PCM controls the relay, either on command from the AC clutch request, or the ECT temp signal (also it considered vehicle speed but should not figure into your problem). We can see the PCM and control the relay and thus the fan via the AC selection. If you have a new ECT, then it seems the ECT wiring is not giving the PCM the correct temp signal. A quick test for the ECT is to pull off the connector at the ECT. With the engine running, AC not on, Connect the ECT wire harness to a ground (simulate engine max hot.) The fan should run. If it does, the new ECT is bad. It it does not run, then the wire from the ECT to the PCM is bad.
Good luck. this is definitely a cause of engine overheat, especially at low speeds, with low rad airflow, and no fan to boost the airflow through the rad.