test: disambiguate the Email locator in auth.spec
getByLabel('Email') matched two elements on /register -- the email input and
the marketing consent checkbox, whose label "Send me occasional emails"
contains the substring. Playwright's strict mode failed both tests that
filled it.
getByRole('textbox', ...) narrows by role, so the checkbox no longer collides.
Applied to the /login usage too, so the same concept reads the same way
throughout the file.
These failures were latent: the frontend-e2e job died at the build step
before it ever reached the tests, so CI never reported them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,7 @@ test.describe('Customer accounts', () => {
|
|||||||
test('registers a new account and lands on the account page', async ({ page }) => {
|
test('registers a new account and lands on the account page', async ({ page }) => {
|
||||||
const email = uniqueEmail();
|
const email = uniqueEmail();
|
||||||
await page.goto('/register');
|
await page.goto('/register');
|
||||||
await page.getByLabel('Email').fill(email);
|
await page.getByRole('textbox', { name: 'Email' }).fill(email);
|
||||||
await page.getByLabel('Password').fill('supersecret123');
|
await page.getByLabel('Password').fill('supersecret123');
|
||||||
await page.getByRole('button', { name: 'Create account' }).click();
|
await page.getByRole('button', { name: 'Create account' }).click();
|
||||||
await expect(page).toHaveURL(/\/account/);
|
await expect(page).toHaveURL(/\/account/);
|
||||||
@@ -23,14 +23,14 @@ test.describe('Customer accounts', () => {
|
|||||||
test('rejects login with the wrong password', async ({ page }) => {
|
test('rejects login with the wrong password', async ({ page }) => {
|
||||||
const email = uniqueEmail();
|
const email = uniqueEmail();
|
||||||
await page.goto('/register');
|
await page.goto('/register');
|
||||||
await page.getByLabel('Email').fill(email);
|
await page.getByRole('textbox', { name: 'Email' }).fill(email);
|
||||||
await page.getByLabel('Password').fill('supersecret123');
|
await page.getByLabel('Password').fill('supersecret123');
|
||||||
await page.getByRole('button', { name: 'Create account' }).click();
|
await page.getByRole('button', { name: 'Create account' }).click();
|
||||||
await expect(page).toHaveURL(/\/account/);
|
await expect(page).toHaveURL(/\/account/);
|
||||||
|
|
||||||
await page.getByRole('button', { name: 'Log out' }).click();
|
await page.getByRole('button', { name: 'Log out' }).click();
|
||||||
await page.goto('/login');
|
await page.goto('/login');
|
||||||
await page.getByLabel('Email').fill(email);
|
await page.getByRole('textbox', { name: 'Email' }).fill(email);
|
||||||
await page.getByLabel('Password').fill('wrong-password');
|
await page.getByLabel('Password').fill('wrong-password');
|
||||||
await page.getByRole('button', { name: 'Log in' }).click();
|
await page.getByRole('button', { name: 'Log in' }).click();
|
||||||
await expect(page.getByText('invalid email or password')).toBeVisible();
|
await expect(page.getByText('invalid email or password')).toBeVisible();
|
||||||
|
|||||||
Reference in New Issue
Block a user