from datetime import datetime, timezone from fastapi.testclient import TestClient class _FakeScheduler: def __init__(self, next_tick=None) -> None: self.last_tick = None self.next_tick = next_tick def test_login_page_shows_next_sync_time(app, client: TestClient) -> None: next_tick = datetime(2026, 8, 16, 14, 32, tzinfo=timezone.utc) app.state.scheduler = _FakeScheduler(next_tick=next_tick) response = client.get("/login") assert response.status_code == 200 assert 'data-utc="2026-08-16T14:32:00+00:00"' in response.text def test_dashboard_shows_next_sync_time(app, authenticated_client) -> None: next_tick = datetime(2026, 8, 16, 15, 0, tzinfo=timezone.utc) app.state.scheduler = _FakeScheduler(next_tick=next_tick) response = authenticated_client.get("/") assert response.status_code == 200 assert 'data-utc="2026-08-16T15:00:00+00:00"' in response.text def test_login_page_renders_without_scheduler(client: TestClient) -> None: response = client.get("/login") assert response.status_code == 200 assert "data-utc" not in response.text