TESTS-20: feat(tests): done Archive a Vacancy test (#4254)

This commit is contained in:
Alex Velichko 2023-12-25 07:00:40 +03:00 committed by GitHub
parent c67ea2f366
commit 6cc84f0a7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 55 additions and 4 deletions

View File

@ -19,6 +19,7 @@ export class CommonRecruitingPage extends CalendarPage {
readonly inputSocialValue: Locator
readonly buttonSocialCancel: Locator
readonly buttonSocialSave: Locator
readonly textActivity: Locator
readonly buttonContactLinkedIn: Locator
constructor (page: Page) {
@ -42,6 +43,7 @@ export class CommonRecruitingPage extends CalendarPage {
this.inputSocialValue = page.locator('div.popup input.search')
this.buttonSocialCancel = page.locator('div.popup button[type="button"]:not([id])')
this.buttonSocialSave = page.locator('button#channel-ok')
this.textActivity = page.locator('div.header')
this.buttonContactLinkedIn = page.locator(
'div[class^="popupPanel-body"] div.horizontal button[id="contact:string:LinkedIn"]'
)
@ -120,4 +122,13 @@ export class CommonRecruitingPage extends CalendarPage {
throw new Error(`Unknown case ${link}`)
}
}
async moreActionOn (action: string): Promise<void> {
await this.buttonMoreActions.click()
await this.selectFromDropdown(this.page, action)
}
async checkActivityExist (activity: string): Promise<void> {
await expect(this.textActivity.filter({ hasText: activity })).toBeVisible()
}
}

View File

@ -12,6 +12,8 @@ export class VacanciesPage extends CommonRecruitingPage {
readonly buttonCreateVacancyLocation: Locator
readonly buttonCreateVacancy: Locator
readonly buttonExport: Locator
readonly buttonView: Locator
readonly buttonHideArchivedVacancies: Locator
constructor (page: Page) {
super(page)
@ -26,6 +28,8 @@ export class VacanciesPage extends CommonRecruitingPage {
})
this.buttonCreateVacancy = page.locator('form[id="recruit:string:CreateVacancy"] button[type="submit"]')
this.buttonExport = page.locator('button[type="button"] > span', { hasText: 'Export' })
this.buttonView = page.locator('div.search-start button[type="button"] > span', { hasText: 'View' })
this.buttonHideArchivedVacancies = page.locator('div.popup span.toggle-switch')
}
async createNewVacancy ({ title, description, location }: NewVacancy): Promise<void> {
@ -95,4 +99,9 @@ export class VacanciesPage extends CommonRecruitingPage {
expect(content).toContain(textToCheck)
})
}
async showArchivedVacancy (): Promise<void> {
await this.buttonView.click()
await this.buttonHideArchivedVacancies.click()
}
}

View File

@ -5,6 +5,7 @@ import { VacanciesPage } from '../model/recruiting/vacancies-page'
import { VacancyDetailsPage } from '../model/recruiting/vacancy-details-page'
import { allure } from 'allure-playwright'
import { CommonPage } from '../model/common-page'
import { NewVacancy } from '../model/recruiting/types'
test.use({
storageState: PlatformSetting
@ -125,16 +126,14 @@ test.describe('Vacancy tests', () => {
await vacanciesPage.checkVacancyNotExist(vacancyName, `Archieved vacancy "${vacancyName}" not visible by default.`)
await page.click("button:has-text('View')")
await page.waitForSelector(".antiCard-menu__item:has-text('Hide archived vacancies')")
await page.click(".antiCard-menu__item:has-text('Hide archived vacancies')")
await vacanciesPage.showArchivedVacancy()
await vacanciesPage.checkVacancyExist(
vacancyName,
`Archieved vacancy "${vacancyName}" visible when hide archved off.`
)
await page.click(".antiCard-menu__item:has-text('Hide archived vacancies')")
await vacanciesPage.buttonHideArchivedVacancies.click()
await vacanciesPage.checkVacancyNotExist(
vacancyName,
@ -150,4 +149,36 @@ test.describe('Vacancy tests', () => {
await vacanciesPage.selectAll()
await vacanciesPage.exportVacanciesWithCheck('Software Engineer')
})
test('Archive a Vacancy', async ({ page }) => {
const archiveVacancy: NewVacancy = {
title: `Archive Vacancy-${generateId(4)}`,
description: 'Vacancy description from Edit a Archive a Vacancy test',
location: 'Archive a Vacancy location'
}
const navigationMenuPage = new NavigationMenuPage(page)
await navigationMenuPage.buttonVacancies.click()
const vacanciesPage = new VacanciesPage(page)
await vacanciesPage.createNewVacancy(archiveVacancy)
await vacanciesPage.openVacancyByName(archiveVacancy.title)
const vacancyDetailsPage = new VacancyDetailsPage(page)
await vacancyDetailsPage.moreActionOn('Archive')
await vacancyDetailsPage.pressYesForPopup(page)
// await vacancyDetailsPage.checkActivityExist('changed archived in')
await navigationMenuPage.buttonVacancies.click()
await vacanciesPage.checkVacancyNotExist(
archiveVacancy.title,
`Archieved vacancy "${archiveVacancy.title}" visible.`
)
await vacanciesPage.showArchivedVacancy()
await vacanciesPage.checkVacancyExist(
archiveVacancy.title,
`Archieved vacancy "${archiveVacancy.title}" is not visible.`
)
})
})