from app.jobs.repair_magento_product_category_links import resolve_assigned_magento_channel_skus


def test_resolve_assigned_magento_channel_skus_uses_channel_sku_when_present(monkeypatch):
    payloads = [
        {"sku": "MASTER-1", "channel_sku": "MAG-1"},
        {"sku": "MASTER-2", "channel_sku": "MAG-2"},
        {"sku": "MASTER-3"},
        {"sku": "MASTER-1", "channel_sku": "MAG-1"},
    ]

    class _FakeSession:
        def __enter__(self):
            return self

        def __exit__(self, exc_type, exc, tb):
            return False

    monkeypatch.setattr(
        "app.jobs.repair_magento_product_category_links.get_session",
        lambda: _FakeSession(),
    )
    monkeypatch.setattr(
        "app.jobs.repair_magento_product_category_links.build_channel_product_payloads",
        lambda session, channel_code, **kwargs: payloads,
    )

    result = resolve_assigned_magento_channel_skus(connection_id=1)

    assert result == ["MAG-1", "MAG-2", "MASTER-3"]
