Skip to content

Commit

Permalink
Marriage testcase 7 (#1024)
Browse files Browse the repository at this point in the history
* Started doing marriage testcase 7

* Added familyName validation tests

* Fixed syntax error

* Fixed wrong page title and tried to fix headless test fails

* Fixed broken tests

* Removed useless comment

* Modified goToSection helper method to support marriage declaration

* Update e2e/testcases/marriage/7-validate-witness-1-page.spec.ts

Co-authored-by: Jamil <[email protected]>

* Update e2e/testcases/marriage/7-validate-witness-1-page.spec.ts

Co-authored-by: Jamil <[email protected]>

* Fixed syntax error and removed dublicated goToSection call

* Fixed beforeEach to end in correct spot

---------

Co-authored-by: Jamil <[email protected]>
  • Loading branch information
Eezi and jamil314 authored Jul 29, 2024
1 parent 463edbb commit e29bd01
Showing 1 changed file with 97 additions and 0 deletions.
97 changes: 97 additions & 0 deletions e2e/testcases/marriage/7-validate-witness-1-page.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import { expect, test } from '@playwright/test'
import { createPIN, login, goToSection } from '../../helpers'

test.describe('7. Validate Witness 1 details page', () => {
test.beforeEach(async ({ page }) => {
await login(page, 'k.mweene', 'test')
await createPIN(page)
await page.click('#header_new_event')
await page.getByText('Marriage', { exact: true }).click()
await goToSection(page, 'witnessOne')
})

// 1.1. Enter Non-English characters
test('1.1. Validate "First Name(s)" text field', async ({ page }) => {
await page.locator('#firstNamesEng').fill('*')
await page.getByText('Witness 1 details').click()
await expect(page.locator('#firstNamesEng_error')).toHaveText(
`Input contains invalid characters. Please use only letters (a-z, A-Z), numbers (0-9), hyphens (-), apostrophes(') and underscores (_)`
)
})

// 1.2. Enter less than 33 English characters
test('1.2. Enter less than 33 English characters', async ({ page }) => {
await page.locator('#firstNamesEng').fill('Rakibul Islam')
await page.getByText('Witness 1 details').click()

await expect(page.locator('#firstNamesEng_error')).toBeHidden()
})

// 1.3. Enter Field as NULL
test('1.3. Enter Field as NULL', async ({ page }) => {
await page.locator('#firstNamesEng').click()
await page.locator('#relationship').click()
await expect(
page.getByText('Required for registration', { exact: true })
).toBeVisible()
})

// 1.4. Enter more than 32 English characters
test('1.4. Enter more than 32 English characters', async ({ page }) => {
const LONG_NAME = 'Ovuvuevuevue Enyetuenwuevue Ugbemugbem Osas'
await page.locator('#firstNamesEng').fill(LONG_NAME)
await page.getByText('Witness 1 details').click()

await expect(page.locator('#firstNamesEng')).toHaveValue(
LONG_NAME.slice(0, 32)
)
})

// 2.1. Enter Non-English characters
test('2.1. Validate "Last Name(s)" text field', async ({ page }) => {
await page.locator('#familyNameEng').fill('*')
await page.getByText('Witness 1 details').click()
await expect(page.locator('#familyNameEng_error')).toBeVisible()
})

// 2.2. Enter less than 33 English characters
test('2.2. Enter less than 33 English characters', async ({ page }) => {
await page.locator('#familyNameEng').fill('Rakibul Islam')
await page.getByText('Witness 1 details').click()

await expect(page.locator('#familyNameEng_error')).toBeHidden()
})

// 2.3. Enter Field as NULL
test('2.3. Enter Field as NULL', async ({ page }) => {
await page.locator('#familyNameEng').click()
await page.locator('#relationship').click()
await expect(
page.getByText('Required for registration', { exact: true })
).toBeVisible()
})

// 2.4. Enter more than 32 English characters
test('2.4. Enter more than 32 English characters', async ({ page }) => {
const LONG_NAME = 'Ovuvuevuevue Enyetuenwuevue Ugbemugbem Osas'
await page.locator('#familyNameEng').fill(LONG_NAME)
await page.getByText('Witness 1 details').click()

await expect(page.locator('#familyNameEng')).toHaveValue(
LONG_NAME.slice(0, 32)
)
})
test('3. Select any to the following option from Relationship to spouses:', async ({
page
}) => {
await page.locator('#relationship').click()
await page.getByText('Other', { exact: true }).click()
await expect(page.getByText('Other', { exact: true })).toBeVisible()
})
test('4. Click continue', async ({ page }) => {
await page.getByText('Continue', { exact: true }).click()
await expect(
page.getByText('Witness 2 details', { exact: true })
).toBeVisible()
})
})

0 comments on commit e29bd01

Please sign in to comment.