Skip to content

Commit e9062b1

Browse files
committed
test: add test that's been removed
1 parent dc6d400 commit e9062b1

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

playwright-staging/tests/update/formValidation.spec.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,51 @@ test.describe('Giftaid Update form validation @sanity @nightly-sanity', () => {
132132

133133
await expect(page.locator(selectors.success.heading)).toHaveText('Thank you, test!');
134134
});
135+
136+
test('Postcode validation and form submission', async ({ page }) => {
137+
// Define postcodes and expected error messages
138+
const postcodes = [
139+
{ input: 'S E 1 7 T P', error: 'Please enter a valid UK postcode, using a space. For non-UK addresses, please use manual entry below.' },
140+
{ input: 'SE$%TP', error: 'Please enter a valid UK postcode, using a space. For non-UK addresses, please use manual entry below.' },
141+
{ input: 'cro 7tp', error: 'Please enter a valid UK postcode, using a space. For non-UK addresses, please use manual entry below.' }
142+
];
143+
144+
// Test for each invalid postcode
145+
for (const postcode of postcodes) {
146+
await page.fill(selectors.formFields.postcode, '');
147+
await page.type(selectors.formFields.postcode, postcode.input);
148+
await expect(page.locator(selectors.errorMessages.postcode)).toBeVisible();
149+
await expect(page.locator(selectors.errorMessages.postcode)).toHaveText(postcode.error);
150+
}
151+
152+
// Test for a valid postcode and subsequent form submission
153+
await page.fill(selectors.formFields.postcode, 'SE1 7TP');
154+
await page.click(selectors.formFields.postcodeLookup);
155+
156+
// Checking whether address selection is available or if manual entry is needed
157+
if (await page.locator(selectors.address.addressSelect).isVisible()) {
158+
// Select the first address if available
159+
const options = await page.$$eval(selectors.address.addressSelectOptions, options => options.map(option => option.value));
160+
await page.selectOption(selectors.address.addressSelect, options[1]);
161+
await page.click(selectors.formFields.submitButton);
162+
} else {
163+
// Fallback to manual address input if no selection is available
164+
await page.click(selectors.address.manualAddressLink);
165+
await page.fill(selectors.address.address1, 'COMIC RELIEF');
166+
await page.fill(selectors.address.address2, 'CAMELFORD HOUSE 87-90');
167+
await page.fill(selectors.address.address3, 'ALBERT EMBANKMENT');
168+
await page.fill(selectors.address.town, 'LONDON');
169+
await page.click(selectors.formFields.submitButton);
170+
}
171+
172+
await page.locator(selectors.formFields.firstName).fill('test');
173+
await page.locator(selectors.formFields.lastName).fill(chance.last());
174+
await page.locator(selectors.marketingPreferences.fields.email).fill(`giftaid-update-staging-${chance.email()}`);
175+
await page.fill(selectors.formFields.postcode, 'SE1 7TP');
176+
await page.click(selectors.giftAidClaimChoice.yes); // Select yes for declaration
177+
await page.click(selectors.formFields.submitButton); // Submit the form
178+
179+
await expect(page.locator(selectors.success.heading)).toHaveText('Thank you, test!');
180+
await page.close();
181+
});
135182
});

0 commit comments

Comments
 (0)