diff --git a/tests/sanity-ws/000006/_migrations-1701110562723-0.snp.gz b/tests/sanity-ws/000006/_migrations-1701110562723-0.snp.gz new file mode 100644 index 0000000000..a9b9e66b67 Binary files /dev/null and b/tests/sanity-ws/000006/_migrations-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/_migrations-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/_migrations-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..8064f9e1e7 Binary files /dev/null and b/tests/sanity-ws/000006/_migrations-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/attachment-1701110562723-0.snp.gz b/tests/sanity-ws/000006/attachment-1701110562723-0.snp.gz new file mode 100644 index 0000000000..065a59748d Binary files /dev/null and b/tests/sanity-ws/000006/attachment-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/attachment-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/attachment-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..57cdd30a7f Binary files /dev/null and b/tests/sanity-ws/000006/attachment-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/channel-1701110562723-0.snp.gz b/tests/sanity-ws/000006/channel-1701110562723-0.snp.gz new file mode 100644 index 0000000000..439808dda6 Binary files /dev/null and b/tests/sanity-ws/000006/channel-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/channel-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/channel-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..7bbec0de03 Binary files /dev/null and b/tests/sanity-ws/000006/channel-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/chunter-1701110562723-0.snp.gz b/tests/sanity-ws/000006/chunter-1701110562723-0.snp.gz new file mode 100644 index 0000000000..d635d25e13 Binary files /dev/null and b/tests/sanity-ws/000006/chunter-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/chunter-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/chunter-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..d444dea669 Binary files /dev/null and b/tests/sanity-ws/000006/chunter-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/comment-1701110562723-0.snp.gz b/tests/sanity-ws/000006/comment-1701110562723-0.snp.gz new file mode 100644 index 0000000000..026bcc2299 Binary files /dev/null and b/tests/sanity-ws/000006/comment-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/comment-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/comment-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..911e4959c2 Binary files /dev/null and b/tests/sanity-ws/000006/comment-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/contact-1701110562723-0.snp.gz b/tests/sanity-ws/000006/contact-1701110562723-0.snp.gz new file mode 100644 index 0000000000..7f5912e12f Binary files /dev/null and b/tests/sanity-ws/000006/contact-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/contact-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/contact-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..91bd61c929 Binary files /dev/null and b/tests/sanity-ws/000006/contact-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/doc-index-state-1701110562723-0.snp.gz b/tests/sanity-ws/000006/doc-index-state-1701110562723-0.snp.gz new file mode 100644 index 0000000000..05e56ff574 Binary files /dev/null and b/tests/sanity-ws/000006/doc-index-state-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/doc-index-state-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/doc-index-state-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..9b1267ebc6 Binary files /dev/null and b/tests/sanity-ws/000006/doc-index-state-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/fulltext-blob-1701110562723-0.snp.gz b/tests/sanity-ws/000006/fulltext-blob-1701110562723-0.snp.gz new file mode 100644 index 0000000000..e428bf0318 Binary files /dev/null and b/tests/sanity-ws/000006/fulltext-blob-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/fulltext-blob-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/fulltext-blob-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..fc01ae6a2c Binary files /dev/null and b/tests/sanity-ws/000006/fulltext-blob-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/inventory-1701110562723-0.snp.gz b/tests/sanity-ws/000006/inventory-1701110562723-0.snp.gz new file mode 100644 index 0000000000..d4fb8347ee Binary files /dev/null and b/tests/sanity-ws/000006/inventory-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/inventory-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/inventory-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..58c135e571 Binary files /dev/null and b/tests/sanity-ws/000006/inventory-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/kanban-1701110562723-0.snp.gz b/tests/sanity-ws/000006/kanban-1701110562723-0.snp.gz new file mode 100644 index 0000000000..efd807adf8 Binary files /dev/null and b/tests/sanity-ws/000006/kanban-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/kanban-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/kanban-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..92b7942181 Binary files /dev/null and b/tests/sanity-ws/000006/kanban-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/notification-1701110562723-0.snp.gz b/tests/sanity-ws/000006/notification-1701110562723-0.snp.gz new file mode 100644 index 0000000000..8c61dfdd53 Binary files /dev/null and b/tests/sanity-ws/000006/notification-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/notification-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/notification-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..fb7a0918bf Binary files /dev/null and b/tests/sanity-ws/000006/notification-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/space-1701110562723-0.snp.gz b/tests/sanity-ws/000006/space-1701110562723-0.snp.gz new file mode 100644 index 0000000000..3cc10267f0 Binary files /dev/null and b/tests/sanity-ws/000006/space-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/space-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/space-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..ea446571cf Binary files /dev/null and b/tests/sanity-ws/000006/space-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/status-1701110562723-0.snp.gz b/tests/sanity-ws/000006/status-1701110562723-0.snp.gz new file mode 100644 index 0000000000..685cb7cedf Binary files /dev/null and b/tests/sanity-ws/000006/status-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/status-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/status-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..a3c19c426f Binary files /dev/null and b/tests/sanity-ws/000006/status-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/tags-1701110562723-0.snp.gz b/tests/sanity-ws/000006/tags-1701110562723-0.snp.gz new file mode 100644 index 0000000000..1179c6549c Binary files /dev/null and b/tests/sanity-ws/000006/tags-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/tags-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/tags-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..3759d69955 Binary files /dev/null and b/tests/sanity-ws/000006/tags-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/task-1701110562723-0.snp.gz b/tests/sanity-ws/000006/task-1701110562723-0.snp.gz new file mode 100644 index 0000000000..d88ee2ea58 Binary files /dev/null and b/tests/sanity-ws/000006/task-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/task-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/task-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..541d6e88a4 Binary files /dev/null and b/tests/sanity-ws/000006/task-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/tracker-1701110562723-0.snp.gz b/tests/sanity-ws/000006/tracker-1701110562723-0.snp.gz new file mode 100644 index 0000000000..4662d88ccd Binary files /dev/null and b/tests/sanity-ws/000006/tracker-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/tracker-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/tracker-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..896ee3e24a Binary files /dev/null and b/tests/sanity-ws/000006/tracker-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/000006/tx-1701110562723-0.snp.gz b/tests/sanity-ws/000006/tx-1701110562723-0.snp.gz new file mode 100644 index 0000000000..b99201fe00 Binary files /dev/null and b/tests/sanity-ws/000006/tx-1701110562723-0.snp.gz differ diff --git a/tests/sanity-ws/000006/tx-data-1701110562723-1.tar.gz b/tests/sanity-ws/000006/tx-data-1701110562723-1.tar.gz new file mode 100644 index 0000000000..61d893852f Binary files /dev/null and b/tests/sanity-ws/000006/tx-data-1701110562723-1.tar.gz differ diff --git a/tests/sanity-ws/backup.json.gz b/tests/sanity-ws/backup.json.gz index c1d05209ec..db8c5528b5 100644 Binary files a/tests/sanity-ws/backup.json.gz and b/tests/sanity-ws/backup.json.gz differ diff --git a/tests/sanity/tests/model/tracker/template-details-page.ts b/tests/sanity/tests/model/tracker/template-details-page.ts index c056d53cf7..fda5551976 100644 --- a/tests/sanity/tests/model/tracker/template-details-page.ts +++ b/tests/sanity/tests/model/tracker/template-details-page.ts @@ -1,6 +1,6 @@ import { expect, type Locator, type Page } from '@playwright/test' import { CommonTrackerPage } from './common-tracker-page' -import { NewIssue } from './types' +import { Issue, NewIssue } from './types' export class TemplateDetailsPage extends CommonTrackerPage { readonly page: Page @@ -11,7 +11,10 @@ export class TemplateDetailsPage extends CommonTrackerPage { readonly buttonAddLabel: Locator readonly textLabels: Locator readonly buttonComponent: Locator - readonly textEstimation: Locator + readonly buttonEstimation: Locator + readonly buttonDueDate: Locator + readonly buttonSaveDueDate: Locator + readonly textComment: Locator constructor (page: Page) { super(page) @@ -23,7 +26,10 @@ export class TemplateDetailsPage extends CommonTrackerPage { this.textLabels = page.locator('div.menu-group span') this.buttonAddLabel = page.locator('//span[text()="Labels"]/../button[2]//span') this.buttonComponent = page.locator('//span[text()="Component"]/../div/div/button') - this.textEstimation = page.locator('(//span[text()="Estimation"]/../div/button)[3]') + this.buttonEstimation = page.locator('(//span[text()="Estimation"]/../div/button)[3]') + 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') } async checkTemplate (data: NewIssue): Promise<void> { @@ -43,7 +49,48 @@ export class TemplateDetailsPage extends CommonTrackerPage { await expect(this.buttonComponent).toHaveText(data.component) } if (data.estimation != null) { - await expect(this.textEstimation).toHaveText(data.estimation) + await expect(this.buttonEstimation).toHaveText(data.estimation) } } + + async editTemplate (data: Issue): Promise<void> { + if (data.priority != null) { + await this.buttonPriority.click() + await this.selectMenuItem(this.page, data.priority) + } + if (data.assignee != null) { + await this.buttonAssignee.click() + await this.selectAssignee(this.page, data.assignee) + } + if (data.labels != null && data.createLabel != null) { + if (data.createLabel) { + await this.buttonAddLabel.click() + await this.pressCreateButtonSelectPopup(this.page) + await this.addNewTagPopup(this.page, data.labels, 'Tag from edit template') + } + await this.checkFromDropdown(this.page, data.labels) + await this.inputTitle.click({ force: true }) + } + if (data.component != null) { + await this.buttonComponent.click() + await this.selectMenuItem(this.page, data.component) + } + if (data.estimation != null) { + await this.buttonEstimation.click() + await this.fillToSelectPopup(this.page, data.estimation) + } + if (data.duedate != null) { + if (data.duedate === 'today') { + await this.buttonDueDate.click() + await this.buttonDatePopupToday.click() + } else { + await this.buttonDueDate.click() + await this.buttonSaveDueDate.click() + } + } + } + + async checkCommentExist (comment: string): Promise<void> { + await expect(this.textComment.filter({ hasText: comment })).toBeVisible() + } } diff --git a/tests/sanity/tests/tracker/template.spec.ts b/tests/sanity/tests/tracker/template.spec.ts index f5535ca53e..70d9a2228d 100644 --- a/tests/sanity/tests/tracker/template.spec.ts +++ b/tests/sanity/tests/tracker/template.spec.ts @@ -1,7 +1,7 @@ import { test } from '@playwright/test' import { generateId, PlatformSetting, PlatformURI } from '../utils' import { LeftSideMenuPage } from '../model/left-side-menu-page' -import { NewIssue } from '../model/tracker/types' +import { Issue, NewIssue } from '../model/tracker/types' import { allure } from 'allure-playwright' import { TrackerNavigationMenuPage } from '../model/tracker/tracker-navigation-menu-page' import { TemplatePage } from '../model/tracker/templates-page' @@ -46,4 +46,45 @@ test.describe('Tracker template tests', () => { estimation: '2h' }) }) + + test('Edit a Template', async ({ page }) => { + const newTemplate: NewIssue = { + title: 'Template for edit', + description: 'Created template for edit' + } + + const editTemplate: Issue = { + priority: 'High', + assignee: 'Dirak Kainin', + createLabel: true, + labels: `EDIT-TEMPLATE-${generateId()}`, + component: 'No component', + estimation: '8', + duedate: 'today' + } + + const leftSideMenuPage = new LeftSideMenuPage(page) + await leftSideMenuPage.buttonTracker.click() + + const trackerNavigationMenuPage = new TrackerNavigationMenuPage(page) + await trackerNavigationMenuPage.buttonTemplates.click() + + const templatePage = new TemplatePage(page) + await templatePage.openTemplate(newTemplate.title) + + const templateDetailsPage = new TemplateDetailsPage(page) + await templateDetailsPage.editTemplate(editTemplate) + + await templateDetailsPage.checkTemplate({ + ...newTemplate, + ...editTemplate, + estimation: '1d' + }) + + await templateDetailsPage.checkCommentExist('Appleseed John created template') + await templateDetailsPage.checkCommentExist('Appleseed John changed priority to High') + await templateDetailsPage.checkCommentExist('Appleseed John changed assignee to Dirak Kainin') + await templateDetailsPage.checkCommentExist('Appleseed John changed estimation to 1d') + await templateDetailsPage.checkCommentExist('Appleseed John changed due date') + }) })