diff --git a/apps/website/package.json b/apps/website/package.json index cceb5e2da0..691347dda7 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -15,6 +15,7 @@ "check:render": "node scripts/render-check.mjs", "check:deployed": "node scripts/deployed-check.mjs", "check:aria": "node scripts/aria-refs-check.mjs", + "check:service-entry": "node scripts/service-entry-check.mjs", "typecheck:update": "node scripts/typecheck-ratchet.mjs --update", "audit:en": "node qa/lang_audit.mjs", "audit:ru": "node qa/ru_audit.mjs" diff --git a/apps/website/scripts/service-entry-check.mjs b/apps/website/scripts/service-entry-check.mjs new file mode 100644 index 0000000000..c84a341a0d --- /dev/null +++ b/apps/website/scripts/service-entry-check.mjs @@ -0,0 +1,26 @@ +import { readFileSync } from 'node:fs' + +const root = new URL('..', import.meta.url) +const component = readFileSync(new URL('src/components/ServiceEntry.tsx', root), 'utf8') +const app = readFileSync(new URL('src/App.tsx', root), 'utf8') + +const requirements = [ + ['official Telegram bot URL', component.includes('https://t.me/t27ai_bot?start=website')], + ['English Telegram CTA', component.includes('Open in Telegram')], + ['Russian Telegram CTA', component.includes('Открыть в Telegram')], + ['English verified-profile explanation', component.includes('verified Telegram profile')], + ['Russian verified-profile explanation', component.includes('подтверждённого профиля Telegram')], + ['browser CTA uses native disabled semantics', component.includes(' + +

+ {t.browserNote} +

+ + + + ) +}