From 3badc5caaa2dfbd83904e6138b0560de794152dc Mon Sep 17 00:00:00 2001 From: wmj Date: Thu, 13 Aug 2026 17:09:23 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20E2E=20test=20bugs=20(regex=20selectOption?= =?UTF-8?q?,=20tab=20context)=20=E2=80=94=20full=20suite=20now=2032/32=20g?= =?UTF-8?q?reen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- e2e-uat.cjs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/e2e-uat.cjs b/e2e-uat.cjs index 0ce5346..9fed368 100644 --- a/e2e-uat.cjs +++ b/e2e-uat.cjs @@ -190,9 +190,15 @@ async function main() { const dataStillThereAfterDismiss = await page.locator('.asset-row', { hasText: 'Terrace house' }).isVisible(); record('Settings: dismissing delete confirm leaves data intact', dataStillThereAfterDismiss); - // ── Bilingual / accessibility spot checks noted as gaps ── - const langSwitcherVisible = await page.locator('text=/Bahasa Malaysia|EN.*MS/i').isVisible().catch(() => false); - record('Bilingual: language switcher present in UI (PRD §12 requirement)', langSwitcherVisible, langSwitcherVisible ? '' : 'NOT FOUND — i18n.js exists but no UI control wired to it yet'); + // ── Bilingual: language switcher click actually changes visible UI text ── + await page.locator('nav button.tab', { hasText: 'Settings' }).click(); + await page.waitForTimeout(200); + const taglineBefore = await page.locator('.header-tagline').textContent(); + await page.locator('.lang-btn', { hasText: 'Bahasa Malaysia' }).click(); + await page.waitForTimeout(200); + const taglineAfter = await page.locator('.header-tagline').textContent(); + record('Bilingual: switching to Bahasa Malaysia changes header tagline', taglineBefore !== taglineAfter && taglineAfter.includes('WAKAF'), `"${taglineBefore}" -> "${taglineAfter}"`); + await page.locator('.lang-btn', { hasText: 'English' }).click(); // ── PWA basics ── const swReg = await page.evaluate(async () => {