Comparing lerping quaternion

2d top down game. I want my transform to first rotate and face the target position and then move towards it. I got the rotation towards the target position done. It works great. But i need a way to set a bool when the rotation is finished, or finished enough.
I tried comparing the quaternions or using quaternion.angle to see if i got a good result but it never arrives. How can i make it so that the bool sets to false when the rotation is ‘good enough’?

Ps. i dont want to set a duration for the lerp, i want it to move at a constant speed so that the fewer the angles to rotate, the shorter time it takes.

if (Input.GetMouseButtonDown (0)) {
						target = Camera.main.ScreenToWorldPoint (Input.mousePosition);
						rotateToTarget = true;
				}

				if (rotateToTarget == true && target != null) {								
			
						targetRotation = Quaternion.LookRotation (transform.position - target, Vector3.forward);
						targetRotation.x = 0.0f;
						targetRotation.y = 0.0f;
			
						player.transform.rotation = Quaternion.Slerp (transform.rotation, targetRotation, Time.deltaTime * rotationSpeed);	
						print (player.transform.eulerAngles + " --> " + targetRotation.eulerAngles);

						if (player.transform.rotation == targetRotation) {
								rotateToTarget = false;
								travelToTarget = true;
								print ("rotation finished");
						}			
				}

if(Quaterion.Angle(player.rotation, targetRotation)<1) works fine for me. Of course, it only checks facing, not “spin” (which is rarely an issue.) I also usually add player.rotation=targetRotation; at the end, for an exact match.

If you want constant speed, replace Lerp with RotateTowards.

== is always a problem, and Lerp will mostly stop at 0.000001 away. EulerAngles have the non-1-to-1 problem: Bruce is at 179.9, but Sally is rotating down from -170, so seems far away (and even weirder stuff, where -180,-180 is the same as 0,0.)