diff --git a/web/tests/test_i18n_parity.py b/web/tests/test_i18n_parity.py index 2c6b466..62a28ab 100644 --- a/web/tests/test_i18n_parity.py +++ b/web/tests/test_i18n_parity.py @@ -57,6 +57,8 @@ _IDENTICAL_VALUE_ALLOWLIST = { # Business plan — Indoor/Outdoor same in DE, financial abbreviations "bp_indoor", "bp_outdoor", "bp_lbl_ebitda", "bp_lbl_irr", "bp_lbl_moic", "bp_lbl_opex", + # Market Score — branded term kept in English in DE + "footer_market_score", } diff --git a/web/tests/test_market_score.py b/web/tests/test_market_score.py new file mode 100644 index 0000000..2adf335 --- /dev/null +++ b/web/tests/test_market_score.py @@ -0,0 +1,59 @@ +"""Tests for the Market Score methodology page.""" + + +async def test_en_returns_200(client): + resp = await client.get("/en/market-score") + assert resp.status_code == 200 + text = await resp.get_data(as_text=True) + assert "Market Score" in text + assert "padelnomics" in text + + +async def test_de_returns_200(client): + resp = await client.get("/de/market-score") + assert resp.status_code == 200 + text = await resp.get_data(as_text=True) + assert "Market Score" in text + assert "padelnomics" in text + + +async def test_legacy_redirect(client): + resp = await client.get("/market-score") + assert resp.status_code == 301 + assert resp.headers["Location"].endswith("/en/market-score") + + +async def test_contains_jsonld(client): + resp = await client.get("/en/market-score") + text = await resp.get_data(as_text=True) + assert '"@type": "WebPage"' in text + assert '"@type": "FAQPage"' in text + assert '"@type": "BreadcrumbList"' in text + + +async def test_contains_faq_section(client): + resp = await client.get("/en/market-score") + text = await resp.get_data(as_text=True) + assert "Frequently Asked Questions" in text + assert "