mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-23 08:48:01 +00:00
TESTS-94: feat(tests): done Due date filter test (#4891)
Signed-off-by: Alex Velichko <alex@hardcoreeng.com>
This commit is contained in:
parent
4b6c36d296
commit
2d266bb3fd
@ -21,9 +21,9 @@ export class CalendarPage extends CommonPage {
|
|||||||
|
|
||||||
async fillDatePopup (day: string, month: string, year: string): Promise<void> {
|
async fillDatePopup (day: string, month: string, year: string): Promise<void> {
|
||||||
await expect(this.inputTargetDateDay).toBeVisible()
|
await expect(this.inputTargetDateDay).toBeVisible()
|
||||||
await this.inputTargetDateDay.fill(day)
|
await this.inputTargetDateDay.pressSequentially(day)
|
||||||
await this.inputTargetDateMonth.fill(month)
|
await this.inputTargetDateMonth.pressSequentially(month)
|
||||||
await this.inputTargetDateDay.fill(year)
|
await this.inputTargetDateYear.pressSequentially(year)
|
||||||
await this.buttonTargetDateSave.click()
|
await this.buttonTargetDateSave.click()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,15 +103,6 @@ export class CommonTrackerPage extends CalendarPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fillBetweenDate (dateStart: DateDivided, dateEnd: DateDivided): Promise<void> {
|
async fillBetweenDate (dateStart: DateDivided, dateEnd: DateDivided): Promise<void> {
|
||||||
// TODO removed after bug fixed
|
|
||||||
if (dateStart.day === '30' || dateEnd.day === '30') {
|
|
||||||
await this.page.locator('div.date-popup-container div.day:not(.wrongMonth)', { hasText: '30' }).first().click()
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dateStart.day === '31' || dateEnd.day === '31') {
|
|
||||||
await this.page.locator('div.date-popup-container div.day:not(.wrongMonth)', { hasText: '31' }).first().click()
|
|
||||||
}
|
|
||||||
|
|
||||||
// dateStart - day
|
// dateStart - day
|
||||||
await this.page
|
await this.page
|
||||||
.locator('div.date-popup-container div.input:first-child span.digit:first-child')
|
.locator('div.date-popup-container div.input:first-child span.digit:first-child')
|
||||||
|
@ -32,6 +32,7 @@ export class IssuesPage extends CommonTrackerPage {
|
|||||||
readonly buttonPopupCreateNewIssueTemplate: Locator
|
readonly buttonPopupCreateNewIssueTemplate: Locator
|
||||||
readonly inputPopupAddAttachmentsFile: Locator
|
readonly inputPopupAddAttachmentsFile: Locator
|
||||||
readonly textPopupAddAttachmentsFile: Locator
|
readonly textPopupAddAttachmentsFile: Locator
|
||||||
|
readonly buttonCollapsedCategories: Locator
|
||||||
|
|
||||||
constructor (page: Page) {
|
constructor (page: Page) {
|
||||||
super(page)
|
super(page)
|
||||||
@ -76,6 +77,7 @@ export class IssuesPage extends CommonTrackerPage {
|
|||||||
)
|
)
|
||||||
this.inputPopupAddAttachmentsFile = page.locator('div.popup-tooltip input#file')
|
this.inputPopupAddAttachmentsFile = page.locator('div.popup-tooltip input#file')
|
||||||
this.textPopupAddAttachmentsFile = page.locator('div.popup-tooltip div.item div.name')
|
this.textPopupAddAttachmentsFile = page.locator('div.popup-tooltip div.item div.name')
|
||||||
|
this.buttonCollapsedCategories = page.locator('div.categoryHeader.collapsed')
|
||||||
}
|
}
|
||||||
|
|
||||||
async createNewIssue (data: NewIssue, closeNotification: boolean = false): Promise<void> {
|
async createNewIssue (data: NewIssue, closeNotification: boolean = false): Promise<void> {
|
||||||
@ -126,11 +128,27 @@ export class IssuesPage extends CommonTrackerPage {
|
|||||||
}
|
}
|
||||||
if (data.duedate != null) {
|
if (data.duedate != null) {
|
||||||
await this.buttonPopupCreateNewIssueDuedate.click()
|
await this.buttonPopupCreateNewIssueDuedate.click()
|
||||||
if (data.duedate === 'today') {
|
let date = new Date()
|
||||||
await this.buttonDatePopupToday.click()
|
switch (data.duedate) {
|
||||||
} else {
|
case 'yesterday':
|
||||||
await this.fillToSelectPopup(this.page, data.duedate)
|
date.setDate(date.getDate() - 1)
|
||||||
|
break
|
||||||
|
case 'nextWeek':
|
||||||
|
date.setDate(date.getDate() + 7)
|
||||||
|
break
|
||||||
|
case 'nextMonth':
|
||||||
|
if (date.getMonth() === 11) {
|
||||||
|
date = new Date(date.getFullYear() + 1, 0, date.getDate())
|
||||||
|
} else {
|
||||||
|
date = new Date(date.getFullYear(), date.getMonth() + 1, date.getDate())
|
||||||
|
}
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
await this.fillDatePopup(
|
||||||
|
date.getDate().toString(),
|
||||||
|
(date.getMonth() + 1).toString(),
|
||||||
|
date.getFullYear().toString()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
if (data.filePath != null) {
|
if (data.filePath != null) {
|
||||||
await this.attachFileToNewIssueForm(data.filePath)
|
await this.attachFileToNewIssueForm(data.filePath)
|
||||||
@ -269,4 +287,10 @@ export class IssuesPage extends CommonTrackerPage {
|
|||||||
.first()
|
.first()
|
||||||
.click()
|
.click()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async openAllCategories (): Promise<void> {
|
||||||
|
for await (const category of iterateLocator(this.buttonCollapsedCategories)) {
|
||||||
|
await category.click()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -428,4 +428,180 @@ test.describe('Tracker filters tests', () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('Due date filter', async ({ page }) => {
|
||||||
|
const dueDateOverdueIssue: NewIssue = {
|
||||||
|
title: `Issue for the Due date yesterday filter-${generateId()}`,
|
||||||
|
description: 'Issue for the Due date yesterday filter',
|
||||||
|
duedate: 'yesterday'
|
||||||
|
}
|
||||||
|
const dueDateTodayIssue: NewIssue = {
|
||||||
|
title: `Issue for the Due date today filter-${generateId()}`,
|
||||||
|
description: 'Issue for the Due date today filter',
|
||||||
|
duedate: 'today'
|
||||||
|
}
|
||||||
|
const dueDateNextWeekIssue: NewIssue = {
|
||||||
|
title: `Issue for the Due date next week filter-${generateId()}`,
|
||||||
|
description: 'Issue for the Due date next week filter',
|
||||||
|
duedate: 'nextWeek'
|
||||||
|
}
|
||||||
|
const dueDateNextMonthIssue: NewIssue = {
|
||||||
|
title: `Issue for the Due date next month filter-${generateId()}`,
|
||||||
|
description: 'Issue for the Due date next month filter',
|
||||||
|
duedate: 'nextMonth'
|
||||||
|
}
|
||||||
|
|
||||||
|
const leftSideMenuPage = new LeftSideMenuPage(page)
|
||||||
|
await leftSideMenuPage.buttonTracker.click()
|
||||||
|
|
||||||
|
const issuesPage = new IssuesPage(page)
|
||||||
|
await issuesPage.modelSelectorAll.click()
|
||||||
|
await issuesPage.createNewIssue(dueDateOverdueIssue)
|
||||||
|
await issuesPage.createNewIssue(dueDateTodayIssue)
|
||||||
|
await issuesPage.createNewIssue(dueDateNextWeekIssue)
|
||||||
|
await issuesPage.createNewIssue(dueDateNextMonthIssue)
|
||||||
|
await issuesPage.openAllCategories()
|
||||||
|
|
||||||
|
await test.step('Check Filter Overdue', async () => {
|
||||||
|
await issuesPage.selectFilter('Due date', 'Overdue')
|
||||||
|
await issuesPage.checkFilter('Due date', 'Overdue')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter Today', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('Today')
|
||||||
|
await issuesPage.checkFilter('Due date', 'Today')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter Yesterday', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('Yesterday')
|
||||||
|
await issuesPage.checkFilter('Due date', 'Yesterday')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter This week', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('This week')
|
||||||
|
await issuesPage.checkFilter('Due date', 'This week')
|
||||||
|
|
||||||
|
if (new Date().getDay() !== 1) {
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateOverdueIssue.title)
|
||||||
|
} else {
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateOverdueIssue.title)
|
||||||
|
}
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter Next week', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('Next week')
|
||||||
|
await issuesPage.checkFilter('Due date', 'Next week')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter This month', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('This month')
|
||||||
|
await issuesPage.checkFilter('Due date', 'This month')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter Next month', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('Next month')
|
||||||
|
await issuesPage.checkFilter('Due date', 'Next month')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter Exact date - Today', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('Exact date', 'Today')
|
||||||
|
await issuesPage.checkFilter('Due date', 'is', 'Today')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter Before date - Today', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('Before date')
|
||||||
|
await issuesPage.checkFilter('Due date', 'Before', 'Today')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter After date - Today', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('After date')
|
||||||
|
await issuesPage.checkFilter('Due date', 'After', 'Today')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter Between Dates', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('Between dates')
|
||||||
|
const dateYesterday = new Date()
|
||||||
|
dateYesterday.setDate(dateYesterday.getDate() - 1)
|
||||||
|
const dateTomorrow = new Date()
|
||||||
|
dateTomorrow.setDate(dateTomorrow.getDate() + 1)
|
||||||
|
const dateYesterdayDivided: DateDivided = {
|
||||||
|
day: dateYesterday.getDate().toString(),
|
||||||
|
month: (dateYesterday.getMonth() + 1).toString(),
|
||||||
|
year: dateYesterday.getFullYear().toString()
|
||||||
|
}
|
||||||
|
const dateTomorrowDivided: DateDivided = {
|
||||||
|
day: dateTomorrow.getDate().toString(),
|
||||||
|
month: (dateTomorrow.getMonth() + 1).toString(),
|
||||||
|
year: dateTomorrow.getFullYear().toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
await issuesPage.fillBetweenDate(dateYesterdayDivided, dateTomorrowDivided)
|
||||||
|
await issuesPage.checkFilter('Due date', 'is between', dateYesterday.getDate().toString())
|
||||||
|
await issuesPage.checkFilter('Due date', 'is between', dateTomorrow.getDate().toString())
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check Filter Not specified', async () => {
|
||||||
|
await issuesPage.updateFilterDimension('Not specified')
|
||||||
|
await issuesPage.checkFilter('Due date', 'Not specified')
|
||||||
|
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateOverdueIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateTodayIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextWeekIssue.title)
|
||||||
|
await issuesPage.checkFilteredIssueNotExist(dueDateNextMonthIssue.title)
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user