from unittest.mock import MagicMock

from app.jobs.channel_jobs import _job_progress


def test_job_progress_delegated_uses_sync_counts_not_stale_completed():
    job = MagicMock()
    job.status = "delegated"
    job.total_count = 3539
    job.success_count = 157
    job.error_count = 20
    job.result = {"progress": {"total": 3539, "completed": 3}}

    progress = _job_progress(job)

    assert progress["completed"] == 177
    assert progress["percent"] == 5.0


def test_job_progress_running_prefers_stored_completed_for_shopify():
    job = MagicMock()
    job.status = "running"
    job.total_count = 100
    job.success_count = 10
    job.error_count = 2
    job.result = {"progress": {"total": 100, "completed": 50}}

    progress = _job_progress(job)

    assert progress["completed"] == 50
