From 7510879147a3d5960e747cdb22e23486f5d15993 Mon Sep 17 00:00:00 2001 From: Alex Velichko <nestor_007@mail.ru> Date: Wed, 7 Feb 2024 08:21:29 +0300 Subject: [PATCH] feat(tests): TESTS-171 done Check validation steps test (#4558) Signed-off-by: Alex Velichko <nestor_007@mail.ru> --- tests/sanity/tests/model/common-page.ts | 12 +++++++ .../tests/model/select-workspace-page.ts | 4 ++- tests/sanity/tests/model/signup-page.ts | 4 ++- tests/sanity/tests/workspace/create.spec.ts | 34 +++++++++++++++++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/tests/sanity/tests/model/common-page.ts b/tests/sanity/tests/model/common-page.ts index f6938a05d3..507996c24f 100644 --- a/tests/sanity/tests/model/common-page.ts +++ b/tests/sanity/tests/model/common-page.ts @@ -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() + } } diff --git a/tests/sanity/tests/model/select-workspace-page.ts b/tests/sanity/tests/model/select-workspace-page.ts index ce6a7cd92e..51aaab4303 100644 --- a/tests/sanity/tests/model/select-workspace-page.ts +++ b/tests/sanity/tests/model/select-workspace-page.ts @@ -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' }) diff --git a/tests/sanity/tests/model/signup-page.ts b/tests/sanity/tests/model/signup-page.ts index a9f3e55d86..fb1fb98af5 100644 --- a/tests/sanity/tests/model/signup-page.ts +++ b/tests/sanity/tests/model/signup-page.ts @@ -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"]') diff --git a/tests/sanity/tests/workspace/create.spec.ts b/tests/sanity/tests/workspace/create.spec.ts index a3d495e46e..b14c8bc56a 100644 --- a/tests/sanity/tests/workspace/create.spec.ts +++ b/tests/sanity/tests/workspace/create.spec.ts @@ -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) + }) })