Cooling fan is misleading, all fans cool, either the radiator fan or the MVAC blower motor fan.
If we are talking about the radiator fan, a brush type permanent magnet armature, one of three wires feed it, direct, small resistor, large resistor that each is connected to a point contact relay giving three speed, high, medium, and low.
These relays are mounted in the underhood fuse relay box, if you pull the cover and flip it over, shows the location of each one. if you pull all three, the fan will not work at all, possible one of the three has a sticking contact or weak or broken return spring, or even dirty contact. That will produce erratic operation. And are plug in type relays for easy replacement.
Voltage for the solenoids of these relays comes from yet another contact from the ignition relay, also identified. ECM controls the ground side of each relay solenoid. If the relays are good, possible ECM problems, really not that hard to diagnose if you know what you are doing.
Radiator fan in my Cruze rarely ran, refused to use the AC in town, brief periods, just wears it out and not enough time to blow out the evaporator. On the highway with that large radiator and a good 55-70 wind, sufficient enough for radiator cooling with the fans. Also keeping your condenser clean reduces bug restriction, yes we have bugs up here.
Voltage for those three relays contacts is always hot, so the fan will run with the ignition off if a relay contact is welded shut, you will wake up to a dead battery.
Blower motor is all electronic, controlled by the BCM, this gets a bit more complicated.