diff --git a/tests/sanity/tests/model/common-page.ts b/tests/sanity/tests/model/common-page.ts index c001256554..e388c50453 100644 --- a/tests/sanity/tests/model/common-page.ts +++ b/tests/sanity/tests/model/common-page.ts @@ -35,7 +35,7 @@ export class CommonPage { } async checkFromDropdown (page: Page, point: string): Promise { - await page.locator('div.selectPopup span[class^="lines"]', { hasText: point }).click() + await page.locator('div.selectPopup span[class^="lines"]', { hasText: point }).first().click() } async pressYesDeletePopup (page: Page): Promise { diff --git a/tests/sanity/tests/model/tracker/common-tracker-page.ts b/tests/sanity/tests/model/tracker/common-tracker-page.ts index 75aa7a8ab4..56fe9b59e0 100644 --- a/tests/sanity/tests/model/tracker/common-tracker-page.ts +++ b/tests/sanity/tests/model/tracker/common-tracker-page.ts @@ -53,12 +53,17 @@ export class CommonTrackerPage extends CalendarPage { await this.buttonFilter.click() await this.page.locator('div.selectPopup [class*="menu"]', { hasText: filter }).click() - if (filterSecondLevel !== null) { - if (filter === 'Title') { - await this.inputFilterTitle.fill(filterSecondLevel) - await this.buttonFilterApply.click() - } else { - await this.page.locator('div.selectPopup [class*="menu"]', { hasText: filterSecondLevel }).click() + if (filterSecondLevel !== null && typeof filterSecondLevel === 'string') { + switch (filter) { + case 'Title': + await this.inputFilterTitle.fill(filterSecondLevel) + await this.buttonFilterApply.click() + break + case 'Labels': + await this.selectFromDropdown(this.page, filterSecondLevel) + break + default: + await this.page.locator('div.selectPopup [class*="menu"]', { hasText: filterSecondLevel }).click() } } } diff --git a/tests/sanity/tests/tracker/filter.spec.ts b/tests/sanity/tests/tracker/filter.spec.ts index 9c407aad83..f4c01b7517 100644 --- a/tests/sanity/tests/tracker/filter.spec.ts +++ b/tests/sanity/tests/tracker/filter.spec.ts @@ -401,4 +401,31 @@ test.describe('Tracker filters tests', () => { } }) }) + + test('Label filter', async ({ page }) => { + const filterLabel = 'Filter Label' + const labelIssue: NewIssue = { + title: `Issue for the Label filter-${generateId()}`, + description: 'Issue for the Label filter', + labels: filterLabel, + createLabel: true + } + + const leftSideMenuPage = new LeftSideMenuPage(page) + await leftSideMenuPage.buttonTracker.click() + + const issuesPage = new IssuesPage(page) + await issuesPage.modelSelectorAll.click() + await issuesPage.createNewIssue(labelIssue) + + await test.step('Check Label filter for exist Label', async () => { + await issuesPage.selectFilter('Labels', filterLabel) + await issuesPage.inputSearch.press('Escape') + await issuesPage.checkFilter('Labels', 'is', filterLabel) + + for await (const issue of iterateLocator(issuesPage.issuesList)) { + await expect(issue.locator('div.compression-bar > div.label-box span.label')).toContainText(filterLabel) + } + }) + }) })