mirror of
https://github.com/sstent/FitTrack_GarminSync.git
synced 2026-01-25 16:41:41 +00:00
feat: Implement single sync job management and progress tracking
This commit is contained in:
46
backend/tests/unit/test_sync_manager.py
Normal file
46
backend/tests/unit/test_sync_manager.py
Normal file
@@ -0,0 +1,46 @@
|
||||
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"
|
||||
Reference in New Issue
Block a user