from app.jobs.channel_schema_sync import run_channel_schema_sync


def test_run_channel_schema_sync_wraps_catalog_provision(monkeypatch):
    captured = {}

    def _fake_run_channel_catalog_provision(**kwargs):
        captured.update(kwargs)
        return {"status": "ok"}

    monkeypatch.setattr(
        "app.jobs.channel_catalog_provision.run_channel_catalog_provision",
        _fake_run_channel_catalog_provision,
    )

    result = run_channel_schema_sync(
        dry_run=False,
        magento_connection_id=4,
        shopify_connection_id=9,
        only_assigned=False,
        include_magento=True,
        include_shopify=False,
        create_missing=True,
        provision_attributes=True,
        include_brand_collections=False,
        shopify_brand_filter=["Port & Bell"],
        limit=25,
        baseline_first=True,
    )

    assert captured["dry_run"] is False
    assert captured["magento_connection_id"] == 4
    assert captured["shopify_connection_id"] == 9
    assert captured["only_assigned"] is False
    assert captured["include_magento"] is True
    assert captured["include_shopify"] is False
    assert captured["create_missing"] is True
    assert captured["assign_skus"] is False
    assert captured["delta_only"] is True
    assert captured["seed_master_listing_paths"] is False
    assert captured["provision_attributes"] is True
    assert captured["include_brand_collections"] is False
    assert captured["shopify_brand_filter"] == ["Port & Bell"]
    assert captured["limit"] == 25
    assert captured["baseline_first"] is True
    assert result["sync_mode"] == "channel_schema"
    assert result["schema_only"] is True
