@@ -9,9 +9,15 @@ test.describe('Homepage', () => {
99 test ( 'should load and display the homepage' , async ( { page } ) => {
1010 await page . goto ( '/' )
1111
12- // Check that the page loaded
12+ // The homepage currently redirects to /login
13+ await expect ( page ) . toHaveURL ( / \/ l o g i n \/ ? $ / )
14+
15+ // Check that metadata loaded (state-based title)
1316 await expect ( page ) . toHaveTitle ( / S U N B u c k s / i)
1417
18+ const continueButton = page . getByRole ( 'button' , { name : / c o n t i n u e / i } )
19+ await expect ( continueButton ) . toBeVisible ( )
20+
1521 // Check for USWDS JavaScript initialization
1622 const html = page . locator ( 'html' )
1723 await expect ( html ) . not . toHaveClass ( / u s a - j s - l o a d i n g / , { timeout : 10000 } )
@@ -33,4 +39,23 @@ test.describe('Homepage', () => {
3339 const main = page . locator ( 'main, [role="main"]' )
3440 await expect ( main ) . toBeVisible ( )
3541 } )
42+
43+ test ( 'switches language to Spanish and shows translated UI' , async ( { page } ) => {
44+ await page . goto ( '/login' )
45+
46+ // Initially loads in English
47+ await expect ( page . getByRole ( 'button' , { name : 'Continue' } ) ) . toBeVisible ( )
48+
49+ // Switch to Spanish (handles both desktop + mobile language selector variants)
50+ const desktopSelector = page . locator ( '.usa-language__desktop' )
51+ if ( await desktopSelector . isVisible ( ) ) {
52+ await page . locator ( '.usa-language__desktop button[lang="es"]' ) . click ( )
53+ } else {
54+ await page . locator ( 'button[aria-controls="language-options"]' ) . click ( )
55+ await page . locator ( 'button[role="menuitem"][lang="es"]' ) . click ( )
56+ }
57+
58+ // Assert at least one string is translated
59+ await expect ( page . getByRole ( 'button' , { name : 'Continuar' } ) ) . toBeVisible ( )
60+ } )
3661} )
0 commit comments