feat(tests): TESTS-171 done Check validation steps test (#4558)

Signed-off-by: Alex Velichko <nestor_007@mail.ru>
This commit is contained in:
Alex Velichko 2024-02-07 08:21:29 +03:00 committed by GitHub
parent 2f6c46da59
commit 7510879147
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 52 additions and 2 deletions

View File

@ -79,4 +79,16 @@ export class CommonPage {
async closeNotification (page: Page): Promise<void> {
await page.locator('div.notify-container button[type="button"].small').nth(0).click()
}
async checkError (page: Page, errorMessage: string): Promise<void> {
await expect(page.locator('div.ERROR span')).toHaveText(errorMessage)
}
async checkInfo (page: Page, errorMessage: string): Promise<void> {
await expect(page.locator('div.INFO span')).toHaveText(errorMessage)
}
async checkInfoSectionNotExist (page: Page): Promise<void> {
await expect(page.locator('div.INFO span')).not.toBeAttached()
}
}

View File

@ -1,6 +1,7 @@
import { expect, type Locator, type Page } from '@playwright/test'
import { CommonPage } from './common-page'
export class SelectWorkspacePage {
export class SelectWorkspacePage extends CommonPage {
readonly page: Page
readonly buttonWorkspace: Locator
readonly buttonCreateWorkspace: Locator
@ -8,6 +9,7 @@ export class SelectWorkspacePage {
readonly buttonCreateNewWorkspace: Locator
constructor (page: Page) {
super()
this.page = page
this.buttonWorkspace = page.locator('div[class*="workspace"]')
this.buttonCreateWorkspace = page.locator('button > span', { hasText: 'Create workspace' })

View File

@ -1,7 +1,8 @@
import { expect, type Locator, type Page } from '@playwright/test'
import { SignUpData } from './common-types'
import { CommonPage } from './common-page'
export class SignUpPage {
export class SignUpPage extends CommonPage {
readonly page: Page
readonly inputFirstName: Locator
readonly inputLastName: Locator
@ -11,6 +12,7 @@ export class SignUpPage {
readonly buttonSignUp: Locator
constructor (page: Page) {
super()
this.page = page
this.inputFirstName = page.locator('input[name="given-name"]')
this.inputLastName = page.locator('input[name="family-name"]')

View File

@ -93,4 +93,38 @@ test.describe('Workspace tests', () => {
estimation: '2h'
})
})
test('Check validation steps description for the create flow', async ({ page }) => {
const newUser: SignUpData = {
firstName: `FirstName-${generateId()}`,
lastName: `LastName-${generateId()}`,
email: `email+${generateId()}@gmail.com`,
password: '1234'
}
const newWorkspaceName = `New Workspace Name - ${generateId(2)}`
const loginPage = new LoginPage(page)
await loginPage.goto()
await loginPage.linkSignUp.click()
const signUpPage = new SignUpPage(page)
await signUpPage.checkInfo(page, 'Required field First name')
await signUpPage.inputFirstName.fill(newUser.firstName)
await signUpPage.checkInfo(page, 'Required field Last name')
await signUpPage.inputLastName.fill(newUser.lastName)
await signUpPage.checkInfo(page, 'Required field Email')
await signUpPage.inputEmail.fill(newUser.email)
await signUpPage.checkInfo(page, 'Required field Password')
await signUpPage.inputNewPassword.fill(newUser.password)
await signUpPage.checkInfo(page, "Repeat password don't match Password")
await signUpPage.inputRepeatPassword.fill(newUser.password)
await signUpPage.checkInfoSectionNotExist(page)
await signUpPage.buttonSignUp.click()
const selectWorkspacePage = new SelectWorkspacePage(page)
await selectWorkspacePage.buttonCreateWorkspace.click()
await selectWorkspacePage.checkInfo(page, 'Required field Workspace name')
await selectWorkspacePage.buttonWorkspaceName.fill(newWorkspaceName)
await selectWorkspacePage.checkInfoSectionNotExist(page)
})
})