import pytest
from unittest.mock import patch, MagicMock


class TestMarketplaceTiersAPI:
    def test_authed_returns_tiers(self, client):
        resp = client.get("/api/marketplace/tiers")
        assert resp.status_code == 200
        data = resp.json()
        assert "starter" in data
        assert "professional" in data
        assert "premium" in data
        assert "legendary" in data

    def test_unauthed_returns_401(self, unauthed_client):
        resp = unauthed_client.get("/api/marketplace/tiers")
        assert resp.status_code == 401


class TestMarketplaceSummaryAPI:
    def test_missing_package_returns_404(self, client):
        resp = client.get("/api/marketplace/summary/nonexistent.com")
        assert resp.status_code == 404

    def test_unauthed_returns_401(self, unauthed_client):
        resp = unauthed_client.get("/api/marketplace/summary/test.com")
        assert resp.status_code == 401


class TestMarketplacePricingAPI:
    def test_missing_package_returns_404(self, client):
        resp = client.get("/api/marketplace/pricing/nonexistent.com")
        assert resp.status_code == 404

    def test_unauthed_returns_401(self, unauthed_client):
        resp = unauthed_client.get("/api/marketplace/pricing/test.com")
        assert resp.status_code == 401
