mirror of
https://github.com/sstent/FitTrack_GarminSync.git
synced 2026-01-25 08:35:23 +00:00
47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
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"
|