import pytest from backend.src.services.sync_manager import CurrentSyncJobManager @pytest.mark.asyncio async def test_singleton(): manager1 = CurrentSyncJobManager() manager2 = CurrentSyncJobManager() assert manager1 is manager2 @pytest.mark.asyncio async def test_start_sync(): manager = CurrentSyncJobManager() await manager.start_sync("activities") status = await manager.get_current_sync_status() assert status.status == "in_progress" assert status.job_type == "activities" @pytest.mark.asyncio async def test_start_sync_while_active(): manager = CurrentSyncJobManager() await manager.start_sync("activities") with pytest.raises(RuntimeError): await manager.start_sync("workouts") @pytest.mark.asyncio async def test_complete_sync(): manager = CurrentSyncJobManager() await manager.start_sync("activities") await manager.complete_sync() status = await manager.get_current_sync_status() assert status.status == "completed" assert status.progress == 1.0 @pytest.mark.asyncio async def test_fail_sync(): manager = CurrentSyncJobManager() await manager.start_sync("activities") await manager.fail_sync("Test error") status = await manager.get_current_sync_status() assert status.status == "failed" assert status.error_message == "Test error"