From b7485902e65f1e6d80164ddc708884b047a390b0 Mon Sep 17 00:00:00 2001 From: Deeman Date: Tue, 24 Feb 2026 10:15:36 +0100 Subject: [PATCH] test: add Market Score methodology page tests Subtask 6/6: 8 tests covering EN/DE 200 status, legacy 301 redirect, JSON-LD schema types, FAQ sections, OG tags, footer link. Add footer_market_score to i18n parity allowlist (branded term). Co-Authored-By: Claude Opus 4.6 --- web/tests/test_i18n_parity.py | 2 ++ web/tests/test_market_score.py | 59 ++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 web/tests/test_market_score.py 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 "