import datetime def verify_real_wakeup_with_mock_api(): # --- DATA FROM DATABASE (REAL) --- # session id 1 wakeup: 2026-05-27 03:17:00 UTC wakeup_utc = datetime.datetime(2026, 5, 27, 3, 17) wakeup_utc_mins = wakeup_utc.hour * 60 + wakeup_utc.minute # --- SETUP PARAMETERS (CLIENT SIDE) --- # User is in Stockholm (+2) offset_in_minutes = -120 local_ref_str = "04:00" local_ref_mins = 4 * 60 print(f"1. Database Wakeup (UTC): {wakeup_utc} ({wakeup_utc_mins}m)") print(f"2. Client Local Reference: {local_ref_str} ({local_ref_mins}m)") print(f"3. Client Timezone Offset: {offset_in_minutes}m") # --- STEP 1: SIMULATE API CALL (CLIENT SIDE) --- def localHHMMToUTCHHMM(hhmm, offset): [h, m] = map(int, hhmm.split(":")) total_mins_utc = (h * 60 + m) + offset norm = ((total_mins_utc % 1440) + 1440) % 1440 return f"{norm // 60:02d}:{norm % 60:02d}" utc_ref = localHHMMToUTCHHMM(local_ref_str, offset_in_minutes) print(f"4. Simulated API call with wakeup_ref (converted to UTC): {utc_ref}") # --- STEP 2: SIMULATE BACKEND (SERVER SIDE) --- # Backend receives utc_ref and calculates delta: wakeup_utc - utc_ref utc_ref_mins = (int(utc_ref.split(":")[0]) * 60 + int(utc_ref.split(":")[1])) backend_delta = wakeup_utc_mins - utc_ref_mins print(f"5. Backend returns delta: {backend_delta}") # --- STEP 3: SIMULATE COMPONENT RENDERING (CLIENT SIDE) --- # Component receives delta and uses it directly as offsetFromRef. offset_from_ref = backend_delta def formatMinutesAfter(minutes, ref): [rh, rm] = map(int, ref.split(":")) target = (rh * 60 + rm) + minutes norm = ((target % 1440) + 1440) % 1440 return f"{norm // 60:02d}:{norm % 60:02d}" displayed_time = formatMinutesAfter(offset_from_ref, local_ref_str) print(f"6. Component renders time: {displayed_time}") # --- ASSERTION --- expected_local_time = "05:17" print(f"\nASSERTION: Expected {expected_local_time}, Actual {displayed_time}") if displayed_time == expected_local_time: print("VERIFICATION SUCCESSFUL!") else: print("VERIFICATION FAILED!") exit(1) if __name__ == "__main__": verify_real_wakeup_with_mock_api()