diff --git a/tests/sanity/tests/model/common-page.ts b/tests/sanity/tests/model/common-page.ts index 29c175cc67..0a5c4e1139 100644 --- a/tests/sanity/tests/model/common-page.ts +++ b/tests/sanity/tests/model/common-page.ts @@ -57,4 +57,9 @@ export class CommonPage { async checkExistNewNotification (page: Page): Promise { await expect(page.locator('button[id$="Inbox"] > div.noty')).toBeVisible() } + + async pressYesForPopup (page: Page): Promise { + await expect(page.locator('div.popup button[type="submit"]')).toBeVisible() + await page.locator('div.popup button[type="submit"]').click() + } } diff --git a/tests/sanity/tests/model/tracker/tracker-navigation-menu-page.ts b/tests/sanity/tests/model/tracker/tracker-navigation-menu-page.ts index f378e02964..ec368b0309 100644 --- a/tests/sanity/tests/model/tracker/tracker-navigation-menu-page.ts +++ b/tests/sanity/tests/model/tracker/tracker-navigation-menu-page.ts @@ -40,13 +40,13 @@ export class TrackerNavigationMenuPage extends CommonPage { await this.page.locator(`a[href$="issues"][href*="${projectName}"]`).click() } - async openProjectToEdit (projectName: string): Promise { + async makeActionWithProject (projectName: string, action: string): Promise { await this.buttonProjectsParent.filter({ hasText: projectName }).hover() await this.buttonProjectsParent .filter({ hasText: projectName }) .locator('xpath=..') .locator('div[class*="tool"]:not([class*="arrow"])') .click() - await this.selectFromDropdown(this.page, 'Edit project') + await this.selectFromDropdown(this.page, action) } } diff --git a/tests/sanity/tests/tracker/projects.spec.ts b/tests/sanity/tests/tracker/projects.spec.ts index c4ca3152c8..3ab72b359f 100644 --- a/tests/sanity/tests/tracker/projects.spec.ts +++ b/tests/sanity/tests/tracker/projects.spec.ts @@ -63,13 +63,37 @@ test.describe('Tracker Projects tests', () => { await newProjectPage.createNewProject(editProjectData) await trackerNavigationMenuPage.checkProjectExist(editProjectData.title) - await trackerNavigationMenuPage.openProjectToEdit(editProjectData.title) + await trackerNavigationMenuPage.makeActionWithProject(editProjectData.title, 'Edit project') const editProjectPage = new EditProjectPage(page) await editProjectPage.checkProject(editProjectData) await editProjectPage.updateProject(updateProjectData) - await trackerNavigationMenuPage.openProjectToEdit(updateProjectData.title) + await trackerNavigationMenuPage.makeActionWithProject(updateProjectData.title, 'Edit project') await editProjectPage.checkProject(updateProjectData) }) + + test('Archive Project', async ({ page }) => { + const archiveProjectData: NewProject = { + title: 'PROJECT_ARCHIVE', + identifier: 'ARCH', + description: 'Archive Project description', + private: true, + defaultAssigneeForIssues: 'Dirak Kainin', + defaultIssueStatus: 'In Progress' + } + + const trackerNavigationMenuPage = new TrackerNavigationMenuPage(page) + await trackerNavigationMenuPage.checkProjectNotExist(archiveProjectData.title) + await trackerNavigationMenuPage.pressCreateProjectButton() + + const newProjectPage = new NewProjectPage(page) + await newProjectPage.createNewProject(archiveProjectData) + await trackerNavigationMenuPage.checkProjectExist(archiveProjectData.title) + + await trackerNavigationMenuPage.makeActionWithProject(archiveProjectData.title, 'Archive') + await trackerNavigationMenuPage.pressYesForPopup(page) + + await trackerNavigationMenuPage.checkProjectNotExist(archiveProjectData.title) + }) })