diff --git a/tests/page/expect-misc.spec.ts b/tests/page/expect-misc.spec.ts index 25c24fc44d..a1fb6637b1 100644 --- a/tests/page/expect-misc.spec.ts +++ b/tests/page/expect-misc.spec.ts @@ -568,23 +568,46 @@ test.describe('toHaveAccessibleErrorMessage should handle aria-invalid attribute }); }); -test.describe('toHaveAccessibleErrorMessage should handle validity state', () => { +test.describe('toHaveAccessibleErrorMessage should handle validity state with aria-invalid', () => { const errorMessageText = 'Error message'; - test('should ignore aria-invalid="true" when HTMLElement.validity.valid is true', async ({ page }) => { + + test('should show error message when validity is false and aria-invalid is true', async ({ page }) => { await page.setContent(` -
- `); + + `); const locator = page.locator('#node'); - await locator.fill('99'); - await expect(locator).not.toHaveAccessibleErrorMessage(errorMessageText); await locator.fill('101'); await expect(locator).toHaveAccessibleErrorMessage(errorMessageText); }); - test('should ignore aria-invalid="false" when HTMLElement.validity.valid is false', async ({ page }) => { + test('should show error message when validity is true and aria-invalid is true', async ({ page }) => { + await page.setContent(` + + `); + const locator = page.locator('#node'); + await locator.fill('99'); + await expect(locator).toHaveAccessibleErrorMessage(errorMessageText); + }); + + test('should show error message when validity is false and aria-invalid is false', async ({ page }) => { + await page.setContent(` + + `); + const locator = page.locator('#node'); + await locator.fill('101'); + await expect(locator).toHaveAccessibleErrorMessage(errorMessageText); + }); + + test('should not show error message when validity is true and aria-invalid is false', async ({ page }) => { await page.setContent(`