diff --git a/scripts/check_app_discovery_live.sh b/scripts/check_app_discovery_live.sh index 69cecd6..ce840b5 100644 --- a/scripts/check_app_discovery_live.sh +++ b/scripts/check_app_discovery_live.sh @@ -19,6 +19,7 @@ grep -Fq 'discovery_nav_click' "$tmp/index.html" || { echo 'FAIL homepage discov fetch '/apps' 'apps.html' grep -Fq 'id="find-app"' "$tmp/apps.html" || { echo 'FAIL catalog search is stale' >&2; exit 1; } grep -Fq 'catalog_store_click' "$tmp/apps.html" || { echo 'FAIL store-click attribution is stale' >&2; exit 1; } +grep -Fq 'Dotchi: This or That Polls' "$tmp/apps.html" || { echo 'FAIL Dotchi catalog still presents an anime-only app' >&2; exit 1; } for slug in quick-games daily-habits decision-helpers ai-tools; do fetch "/guides/$slug/" "$slug.html" grep -Fq "https://appdevelopsk.com/guides/$slug/" "$tmp/$slug.html" || { echo "FAIL guide $slug content/canonical mismatch" >&2; exit 1; } diff --git a/tests/search-landing-growth.test.mjs b/tests/search-landing-growth.test.mjs index 135c441..eb06ae1 100644 --- a/tests/search-landing-growth.test.mjs +++ b/tests/search-landing-growth.test.mjs @@ -73,3 +73,10 @@ test('daily live acquisition check is read-only, scheduled and fails visibly on assert.doesNotMatch(workflow,/publish_app_discovery\.sh --apply\s*\n\s*(?:git|rsync|bash)/); assert.match(workflow,/if: failure\(\)/); }); + +test('production smoke refuses the stale anime-only Dotchi catalog card',()=>{ + const live=read('scripts/check_app_discovery_live.sh'); + assert.match(live,/Dotchi: This or That Polls/); + assert.match(live,/FAIL Dotchi catalog still presents an anime-only app/); + assert.match(live,/fetch '\/apps' 'apps\.html'/); +});