Skip to content

Commit d951e92

Browse files
committed
Add test for change panel category in panning
1 parent 3a37a16 commit d951e92

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

tests/sanity/tests/model/planning/planning-navigation-menu-page.ts

+12
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@ export class PlanningNavigationMenuPage {
2323
readonly accordionContainerToDoUnplanned = (): Locator =>
2424
this.page.locator('div.toDos-container div.hulyAccordionItem-container', { hasText: 'Unplanned' })
2525

26+
readonly toDoPanelContainer = (): Locator => this.page.locator('div.toDos-container')
27+
28+
readonly accordionContainerByName = (toDoCategoryName: string): Locator =>
29+
this.toDoPanelContainer().locator('div.hulyAccordionItem-container', { hasText: toDoCategoryName })
30+
31+
readonly categoryProjectContainer = (category: string, project: string): Locator =>
32+
this.accordionContainerByName(category).locator(`div.hulyAccordionItem-container:has(button:has-text("${project}"))`)
33+
2634
async clickOnButtonToDoAll (): Promise<void> {
2735
await this.buttonToDoAll().click()
2836
}
@@ -43,4 +51,8 @@ export class PlanningNavigationMenuPage {
4351
const accCount = await this.accordionContainerToDoUnplanned().locator('button.hulyToDoLine-container').count()
4452
expect(accCount).toBe(navCount)
4553
}
54+
55+
async checkToDoCategory (toDoName: string, category: string, project: string): Promise<void> {
56+
await expect(this.categoryProjectContainer(category, project).locator(`div.hulyAccordionItem-content:has-text("${toDoName}")`)).toBeVisible()
57+
}
4658
}

tests/sanity/tests/model/planning/planning-page.ts

+11
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ export class PlanningPage extends CalendarPage {
115115
.locator('xpath=..')
116116
.locator('button.reference')
117117

118+
readonly buttonPanelSpaceSelector = (): Locator => this.panel().locator('button[id="space.selector"]')
119+
118120
async clickButtonPrevDayInSchedule (): Promise<void> {
119121
await this.buttonPrevDayInSchedule().click()
120122
}
@@ -417,4 +419,13 @@ export class PlanningPage extends CalendarPage {
417419
row.locator('div.dateEditor-container:first-child > div.min-w-28:first-child .hulyButton')
418420
).toContainText(dateEnd)
419421
}
422+
423+
async selectLstItem (itemLabel: string): Promise<void> {
424+
await this.popup().locator('div.list-container button.menu-item', { hasText: itemLabel }).click()
425+
}
426+
427+
public async addEventToSpace (projectName: string): Promise<void> {
428+
await this.buttonPanelSpaceSelector().click()
429+
await this.selectLstItem(projectName)
430+
}
420431
}

tests/sanity/tests/planning/plan.spec.ts

+30
Original file line numberDiff line numberDiff line change
@@ -396,4 +396,34 @@ test.describe('Planning ToDo tests', () => {
396396
await sidebarPage.checkIfPlanerSidebarTabIsOpen(true)
397397
})
398398
})
399+
400+
test('Moving ToDo in scheduler panel', async ({ page }) => {
401+
const planningNavigationMenuPage = new PlanningNavigationMenuPage(page)
402+
await planningNavigationMenuPage.clickOnButtonToDoAll()
403+
const toDoName = `ToDo to moving in scheduler panel ${generateId()}`
404+
const planningPage = new PlanningPage(page)
405+
const unplannedCategory = 'Unplanned'
406+
const defaultSubCategory = 'Without project'
407+
await test.step(`New ToDo in "${unplannedCategory}" category "${defaultSubCategory}" subcategory`, async () => {
408+
await planningPage.createNewToDoFromInput(toDoName)
409+
await planningNavigationMenuPage.checkToDoCategory(toDoName, unplannedCategory, defaultSubCategory)
410+
})
411+
const projectName = 'Second Project'
412+
await test.step(`ToDo joined to project change "${projectName}" subcategory`, async () => {
413+
await planningPage.openToDoByName(toDoName)
414+
await planningPage.addEventToSpace(projectName)
415+
await planningNavigationMenuPage.checkToDoCategory(toDoName, unplannedCategory, projectName)
416+
})
417+
const scheduledCategory = 'Scheduled'
418+
await test.step(`Scheduled ToDo to "${scheduledCategory}" category`, async () => {
419+
await planningPage.openToDoByName(toDoName)
420+
await planningPage.clickButtonCreateAddSlot()
421+
await planningNavigationMenuPage.checkToDoCategory(toDoName, scheduledCategory, projectName)
422+
})
423+
const completedCategory = 'Done'
424+
await test.step(`completed ToDo move to "${completedCategory}" category`, async () => {
425+
await planningPage.markDoneInToDos(toDoName)
426+
await planningNavigationMenuPage.checkToDoCategory(toDoName, completedCategory, projectName)
427+
})
428+
})
399429
})

0 commit comments

Comments
 (0)