diff --git a/tests/sanity/tests/model/tracker/template-details-page.ts b/tests/sanity/tests/model/tracker/template-details-page.ts index 28588b4d84..f4c7d82da1 100644 --- a/tests/sanity/tests/model/tracker/template-details-page.ts +++ b/tests/sanity/tests/model/tracker/template-details-page.ts @@ -15,6 +15,8 @@ export class TemplateDetailsPage extends CommonTrackerPage { readonly buttonDueDate: Locator readonly buttonSaveDueDate: Locator readonly textComment: Locator + readonly buttonMoreActions: Locator + readonly buttonDelete: Locator constructor (page: Page) { super(page) @@ -30,6 +32,8 @@ export class TemplateDetailsPage extends CommonTrackerPage { this.buttonDueDate = page.locator('(//span[text()="Due date"]/../div/button)[2]') this.buttonSaveDueDate = page.locator('div.footer > button') this.textComment = page.locator('div.labels-row') + this.buttonMoreActions = page.locator('div.popupPanel-title > div > button:nth-child(1)') + this.buttonDelete = page.locator('button[class*="menuItem"] > span', { hasText: 'Delete' }) } async checkTemplate (data: NewIssue): Promise { @@ -94,4 +98,10 @@ export class TemplateDetailsPage extends CommonTrackerPage { async checkCommentExist (comment: string): Promise { await expect(this.textComment.filter({ hasText: comment })).toBeVisible() } + + async deleteTemplate (): Promise { + await this.buttonMoreActions.click() + await this.buttonDelete.click() + await this.pressYesDeletePopup(this.page) + } } diff --git a/tests/sanity/tests/model/tracker/templates-page.ts b/tests/sanity/tests/model/tracker/templates-page.ts index 8327472633..dea010a8eb 100644 --- a/tests/sanity/tests/model/tracker/templates-page.ts +++ b/tests/sanity/tests/model/tracker/templates-page.ts @@ -1,4 +1,4 @@ -import { type Locator, type Page } from '@playwright/test' +import { expect, type Locator, type Page } from '@playwright/test' import { CommonTrackerPage } from './common-tracker-page' import { NewIssue } from './types' @@ -82,4 +82,8 @@ export class TemplatePage extends CommonTrackerPage { async openTemplate (templateName: string): Promise { await this.page.locator('span.issuePresenterRoot > span', { hasText: templateName }).click() } + + async checkTemplateNotExist (templateName: string): Promise { + await expect(this.page.locator('span.issuePresenterRoot > span').filter({ hasText: templateName })).toHaveCount(0) + } } diff --git a/tests/sanity/tests/tracker/template.spec.ts b/tests/sanity/tests/tracker/template.spec.ts index 90ed7733cb..42ab9ad6a6 100644 --- a/tests/sanity/tests/tracker/template.spec.ts +++ b/tests/sanity/tests/tracker/template.spec.ts @@ -111,4 +111,27 @@ test.describe('Tracker template tests', () => { }) } }) + + test('Delete Template', async ({ page }) => { + const deleteTemplate: NewIssue = { + title: `Template for delete-${generateId()}`, + description: 'Created template for delete' + } + + const leftSideMenuPage = new LeftSideMenuPage(page) + await leftSideMenuPage.buttonTracker.click() + + const trackerNavigationMenuPage = new TrackerNavigationMenuPage(page) + await trackerNavigationMenuPage.buttonTemplates.click() + + let templatePage = new TemplatePage(page) + await templatePage.createNewTemplate(deleteTemplate) + await templatePage.openTemplate(deleteTemplate.title) + + const templateDetailsPage = new TemplateDetailsPage(page) + await templateDetailsPage.deleteTemplate() + + templatePage = new TemplatePage(page) + await templatePage.checkTemplateNotExist(deleteTemplate.title) + }) })