@digital-ai/devops-page-object-release 0.0.17 → 0.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/main.js +755 -60
- package/dist/main.js.map +1 -1
- package/dist/module.js +755 -60
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +157 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["apps/release/index.ts","apps/release/fixtures/index.ts","apps/release/pages/index.ts","apps/release/pages/releases/ReleasePage.ts","apps/release/pages/TriggersPage.ts","apps/release/pages/ReleasesListPage.ts","apps/release/pages/WithPage.ts","apps/release/pages/releases/releaseCreatePage.ts","apps/release/pages/releases/ReleaseVariablesPage.ts","apps/release/pages/helper/index.ts","apps/release/pages/task-drawer/taskDrawer.ts","apps/release/pages/task-drawer/taskConfig.ts","apps/release/pages/task-drawer/taskCondition.ts","apps/release/pages/task-drawer/taskOverview.ts","apps/release/pages/task-drawer/taskActivity.ts","apps/release/pages/task-drawer/taskAttachments.ts","apps/release/pages/releases/releasePropertiesPage.ts","apps/release/pages/common/dateUtil.ts","apps/release/pages/common/util.ts","apps/release/pages/ApplicationsPage.ts","apps/release/pages/common/dataRandomGenerator.ts","apps/release/pages/FolderPage.ts","apps/release/pages/folder/folderPatternPage.ts","apps/release/pages/globalVariablePage.ts","apps/release/pages/homePage.ts","apps/release/pages/PersonalAccessTokenPage.ts","apps/release/pages/users/usersPage.ts","apps/release/pages/users/userModal.ts","apps/release/pages/settingsMenu.ts","apps/release/pages/taskDetails.ts","apps/release/pages/ReleaseCalendarPage.ts","apps/release/pages/ReleaseGroupPage.ts","apps/release/pages/ReleaseGroupTimelinePage.ts","apps/release/pages/tasks/taskListPage.ts","apps/release/pages/templates/templatePage.ts","apps/release/pages/templates/templatePropertiesPage.ts","apps/release/pages/templates/templateCreatePage.ts","apps/release/pages/templates/templateTriggerPage.ts","apps/release/pages/templateListPage.ts","apps/release/pages/login-page.ts","apps/release/fixtures/helper.ts"],"sourcesContent":["export { test } from './fixtures';\n","import { test as base, expect, Page, APIResponse } from '@playwright/test';\nimport { execFile } from 'child_process';\nimport { APIRequestContext } from 'playwright-core';\nimport isNil from 'lodash/isNil';\nimport { Navigation } from '../pages';\nimport { LoginPage } from '../pages/login-page';\nimport { initReleaseDefaults } from './helper';\nimport * as process from 'process';\nimport {\n FixtureActivityLog,\n FixtureConfiguration,\n FixtureFeature,\n FixturePermissions,\n FixtureRelease,\n FixtureRoles,\n FixtureTrigger,\n Folder,\n Release,\n Variable,\n ReleaseGroup,\n} from '../types';\n\nconst JIRA_ISSUE_API_URL = 'https://digitalai.atlassian.net/rest/api/2/issue';\n\nconst adminHeaders = {\n Authorization: 'Basic YWRtaW46YWRtaW4=',\n Cookie: 'XSRF-TOKEN=1;',\n 'X-XSRF-TOKEN': '1',\n};\n\ntype ReleaseFixtures = {\n fixtures: Fixtures;\n loginPage: LoginPage;\n navigation: Navigation;\n};\n\nexport const test = base.extend<ReleaseFixtures>({\n fixtures: async ({ request, page }, use) => {\n const fixtures = new Fixtures(request, page);\n await use(fixtures);\n return fixtures;\n },\n loginPage: async ({ page }, use) => {\n const loginPage = new LoginPage(page);\n await use(loginPage);\n return loginPage;\n },\n navigation: async ({ page }, use) => {\n const navigationPage = new Navigation(page);\n await use(navigationPage);\n return navigationPage;\n },\n});\n\nclass Fixtures {\n private readonly request: APIRequestContext;\n private readonly page: Page;\n\n private archivedReleaseIds: Array<string> = [];\n private releaseIds: Array<string> = [];\n private triggerIds: Array<string> = [];\n private configurationIds: Array<string> = [];\n private globalVariableIds: Array<string> = [];\n private folderIds: Array<string> = [];\n private usernames: Array<string> = [];\n private userProfiles: Array<string> = [];\n\n constructor(request: APIRequestContext, page: Page) {\n this.request = request;\n this.page = page;\n }\n\n release(release: FixtureRelease): Promise<APIResponse> {\n this.initDefaults(release);\n this.releaseIds.push(release.id);\n return this.deleteRelease(release.id)\n .then(() => this.deleteArchivedRelease(release.id))\n .then(() => this.doPost('fixtures/release', release));\n }\n\n archivedRelease(release: FixtureRelease): Promise<APIResponse> {\n this.initDefaults(release);\n this.archivedReleaseIds.push(release.id);\n return this.doPost('fixtures/archived', release);\n }\n\n configuration(ci: FixtureConfiguration): Promise<APIResponse> {\n this.configurationIds.push(ci.id);\n return this.doPost('fixtures/shared', [ci]);\n }\n\n getParentId(id: string): string {\n return id.substring(0, id.lastIndexOf('/'));\n }\n\n async folder(folder: Folder): Promise<APIResponse> {\n const parentId = this.getParentId(folder.id);\n folder.type = 'xlrelease.Folder';\n\n //ToDo: Add system teams\n const teams = folder.teams;\n delete folder.teams;\n //ToDo: Add Children\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const children = folder.children || [];\n delete folder.children;\n\n if (teams) return this.doPost(`api/v1/folders/${folder.id}/teams`, teams);\n\n return this.doPost(`api/v1/folders/${parentId}`, folder);\n }\n\n createFolder(folderJson: Folder): Promise<APIResponse> {\n folderJson.type = 'xlrelease.Folder';\n return this.doPost(`fixtures/folders`, [folderJson]);\n }\n\n trigger(trigger: FixtureTrigger): Promise<APIResponse> {\n this.triggerIds.push(trigger.id);\n return this.doPost('fixtures/trigger', trigger);\n }\n\n roles(rolePrincipals: FixtureRoles): Promise<APIResponse> {\n return this.doPost('fixtures/roles/principals', rolePrincipals);\n }\n\n permissions(rolePermissions: FixturePermissions): Promise<APIResponse> {\n return this.doPost('fixtures/roles/permissions/global', rolePermissions);\n }\n\n deleteRole(roleName: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/role/${roleName}`);\n }\n\n deleteArchivedRelease(id: string): Promise<APIResponse> {\n const releaseId = id.includes('Applications/') ? id : `Applications/${id}`;\n return this.doDelete('fixtures/cis', [\n {\n id: releaseId,\n type: 'xlrelease.Release',\n },\n ]);\n }\n\n deleteRelease(id: string): Promise<APIResponse> {\n const releaseId = id.includes('Applications/') ? id : `Applications/${id}`;\n return this.doDelete(`fixtures/${releaseId}`);\n }\n\n deleteUser(username: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/user/${username}`);\n }\n\n deleteUserProfile(userProfile: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/userProfile/${userProfile}`);\n }\n\n deleteTrigger(id: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/trigger/${id}`);\n }\n\n deleteConfiguration(id: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/shared`, [id]);\n }\n\n deleteFolder(folderId: string): Promise<APIResponse> {\n return this.doDelete(`api/v1/folders/${folderId}`);\n }\n\n activityLogs(id: string, logs: Array<FixtureActivityLog>): Promise<APIResponse> {\n return this.doPost(`fixtures/activityLogs/${id}`, logs);\n }\n\n globalVariable(variable: Variable): Promise<APIResponse> {\n variable.id = variable.id || `Configuration/variables/global/Variable_${variable.key}`;\n this.globalVariableIds.push(variable.id);\n variable.requiresValue = false;\n variable.showOnReleaseStart = false;\n return this.doPost('api/v1/config/Configuration/variables/global', variable);\n }\n\n async cleanAll(): Promise<void> {\n for (const username of this.usernames) {\n await this.deleteUser(username);\n }\n for (const userProfile of this.userProfiles) {\n await this.deleteUserProfile(userProfile);\n }\n for (const triggerId of this.triggerIds) {\n await this.deleteTrigger(triggerId);\n }\n for (const releaseId of this.releaseIds.reverse()) {\n await this.deleteRelease(releaseId);\n }\n for (const confId of this.configurationIds) {\n await this.deleteConfiguration(confId);\n }\n for (const folderId of this.folderIds.reverse()) {\n await this.deleteFolder(folderId);\n }\n this.folderIds = [];\n this.releaseIds = [];\n this.triggerIds = [];\n this.configurationIds = [];\n this.usernames = [];\n this.userProfiles = [];\n }\n\n async addJiraTask(): Promise<string> {\n const data = {\n fields: {\n project: { key: 'RIT' },\n summary: 'Test Task',\n description: 'Test task description',\n issuetype: { name: 'Task' },\n },\n };\n const headers = {\n Authorization: `Basic ${btoa('xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7')}`,\n Origin: 'https://digitalai.atlassian.net/',\n };\n const response = await this.request.post(JIRA_ISSUE_API_URL, { data, headers });\n const json = await response.json();\n return json.key;\n }\n\n async addUser(username: string, password: string): Promise<void> {\n this.usernames.push(username);\n await this.doPost('fixtures/user', { username, password });\n }\n\n async addUserProfile(username: string, profile?: any): Promise<void> {\n if (!profile) {\n profile = {};\n }\n profile.id = username;\n profile.type = 'xlrelease.UserProfile';\n profile.canonicalId = username.toLowerCase();\n this.userProfiles.push(profile.canonicalId);\n await this.doPost('fixtures/userProfile', profile);\n }\n\n async expectJiraTaskStatus(taskId: string, expectedStatus: string): Promise<void> {\n const headers = {\n Authorization: `Basic ${btoa('xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7')}`,\n Origin: 'https://digitalai.atlassian.net/',\n };\n const response = await this.request.get(`${JIRA_ISSUE_API_URL}/${taskId}`, { headers });\n const json = await response.json();\n const status = json.fields.status.name;\n expect(status).toBe(expectedStatus);\n }\n\n async expectJiraTaskSummary(taskId: string, expectedSummary: string): Promise<void> {\n const headers = {\n Authorization: `Basic ${btoa('xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7')}`,\n Origin: 'https://digitalai.atlassian.net/',\n };\n const response = await this.request.get(`${JIRA_ISSUE_API_URL}/${taskId}`, { headers });\n const json = await response.json();\n const summary = json.fields.summary;\n expect(summary).toBe(expectedSummary);\n }\n\n async expectContainingAttachments(releaseId: string, tempFile: string): Promise<void> {\n if (releaseId.indexOf('Applications/') === -1) {\n releaseId = 'Applications/' + releaseId;\n }\n await expect(async () => {\n const resp = await this.doPost(`fixtures/expectContainingAttachments/${releaseId}`, {\n name: tempFile,\n expectedContent: tempFile,\n });\n expect(resp).toBe(true);\n }).toPass();\n }\n\n async waitForReleaseStarted(releaseTitle: string): Promise<void> {\n await expect(async () => {\n const resp = await this.doPost('releases/search', {\n inProgress: true,\n paused: true,\n failing: true,\n failed: true,\n title: releaseTitle,\n });\n const page = await resp.json();\n await expect(page.cis.length).toBeGreaterThan(0);\n }).toPass();\n }\n\n async waitForFirstPoll(triggerId: string): Promise<void> {\n await expect(async () => {\n const resp = await this.doGet(`api/v1/triggers/${triggerId}`);\n const trigger = await resp.json();\n await expect(isNil(trigger.triggerState)).toBe(false);\n }).toPass();\n }\n\n exec(path: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n execFile(path, (error) => {\n if (error === null) {\n return resolve();\n } else {\n return reject();\n }\n });\n });\n }\n\n getFakeApiUrl(): string {\n return this.getEnvVariable('ENV_FAKE_API') || 'http://localhost:5517';\n }\n\n getEnvVariable(name: string): string | undefined {\n return process.env[name];\n }\n\n async archiveRelease(releaseId: string): Promise<APIResponse> {\n return this.doGet(`fixtures/archive/${releaseId}`);\n }\n\n async preArchiveRelease(releaseId: string): Promise<APIResponse> {\n return this.doGet(`fixtures/preArchive/${releaseId}`);\n }\n\n async setFeatures(features: Array<FixtureFeature>): Promise<APIResponse> {\n return this.doPut('settings/features', features);\n }\n\n async enableTaskDrawer(enabled: boolean): Promise<APIResponse> {\n return this.setFeatures([\n { id: 'Configuration/features/xlrelease.TaskDrawer', type: 'xlrelease.TaskDrawer', enabled: enabled },\n ]);\n }\n\n async createReleaseGroup(releaseGroup: ReleaseGroup): Promise<APIResponse> {\n return this.doPost('fixtures/release-groups', releaseGroup);\n }\n\n private doPost(url: string, body: unknown): Promise<APIResponse> {\n return this.request.post(url, { data: body, headers: adminHeaders });\n }\n\n private doPut(url: string, body: unknown): Promise<APIResponse> {\n return this.request.put(url, { data: body, headers: adminHeaders });\n }\n\n private doGet(url: string): Promise<APIResponse> {\n return this.request.get(url, { headers: adminHeaders });\n }\n\n private doDelete(url: string, body?: unknown): Promise<APIResponse> {\n return this.request.delete(url, { data: body, headers: adminHeaders });\n }\n\n private initDefaults(ci: FixtureRelease): void {\n initReleaseDefaults(ci as Release);\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { ReleasePage } from './releases/ReleasePage';\nimport { ApplicationsPage } from './ApplicationsPage';\nimport { DataRandomGenerator } from './common/dataRandomGenerator';\nimport { FolderPage } from './FolderPage';\nimport { GlobalVariable } from './globalVariablePage';\nimport { HomePage } from './homePage';\nimport { PersonalAccessTokenPage } from './PersonalAccessTokenPage';\nimport { UsersPage } from './users/usersPage';\nimport { SettingsMenu } from './settingsMenu';\nimport { TaskDetails } from './taskDetails';\nimport { ReleaseCalendarPage } from './ReleaseCalendarPage';\nimport { ReleaseGroupPage } from './ReleaseGroupPage';\nimport { ReleaseGroupTimelinePage } from './ReleaseGroupTimelinePage';\nimport { ReleasesListPage } from './ReleasesListPage';\nimport { TaskListPage } from './tasks/taskListPage';\nimport { TemplatePage } from './templates/templatePage';\nimport { TemplateListPage } from './templateListPage';\nimport { Util } from './common/util';\n\nexport class Navigation {\n private readonly page: Page;\n folderPage: FolderPage;\n globalvariable: GlobalVariable;\n homePage: HomePage;\n releasePage: ReleasePage;\n settingsMenu: SettingsMenu;\n usersPage: UsersPage;\n applicationPage: ApplicationsPage;\n taskDetailsPage: TaskDetails;\n taskListPage: TaskListPage;\n templatePage: TemplatePage;\n templateListPage: TemplateListPage;\n randomString: DataRandomGenerator;\n releaseCalendarPage: ReleaseCalendarPage;\n releaseGroupPage: ReleaseGroupPage;\n releaseGroupTimelinePage: ReleaseGroupTimelinePage;\n releaseListPage: ReleasesListPage;\n util: Util;\n\n constructor(page: Page) {\n this.page = page;\n this.folderPage = new FolderPage(page);\n this.globalvariable = new GlobalVariable(page);\n this.homePage = new HomePage(page);\n this.releasePage = new ReleasePage(page);\n this.settingsMenu = new SettingsMenu(page);\n this.usersPage = new UsersPage(page);\n this.applicationPage = new ApplicationsPage(page);\n this.taskDetailsPage = new TaskDetails(page);\n this.taskListPage = new TaskListPage(page);\n this.templatePage = new TemplatePage(page);\n this.templateListPage = new TemplateListPage(page);\n this.randomString = new DataRandomGenerator();\n this.releaseCalendarPage = new ReleaseCalendarPage(page);\n this.releaseGroupPage = new ReleaseGroupPage(page);\n this.releaseGroupTimelinePage = new ReleaseGroupTimelinePage(page);\n this.releaseListPage = new ReleasesListPage(page);\n this.util = new Util(page);\n }\n\n async openTemplate(id: string): Promise<ReleasePage> {\n return this.openReleaseOrTemplate(id, false);\n }\n\n async openRelease(id: string): Promise<ReleasePage> {\n return this.openReleaseOrTemplate(id, true);\n }\n\n async openApplicationsPage(): Promise<ApplicationsPage> {\n return new ApplicationsPage(this.page).goToApplicationsPage();\n }\n\n async openPersonalAccessTokenPage(): Promise<PersonalAccessTokenPage> {\n return new PersonalAccessTokenPage(this.page).openPersonalAccessTokenPage();\n }\n\n async gotoFolderPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Folders', { exact: true }).click();\n }\n\n async gotoTaskPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Tasks', { exact: true }).click();\n }\n\n async gotoReleasePage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Releases', { exact: true }).click();\n }\n\n async gotoWorkflowCatalogPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Workflow catalog', { exact: true }).click();\n }\n\n async gotoWorkflowsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Workflows', { exact: true }).click();\n }\n\n async gotoGroupsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Groups', { exact: true }).click();\n }\n\n async gotoReleaseCalenderPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Release calendar', { exact: true }).click();\n }\n\n async gotoDeliveriesPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Deliveries', { exact: true }).click();\n }\n\n async gotoTriggersPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Triggers', { exact: true }).click();\n }\n\n async gotoDigitalAnalyticsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Digital.ai Analytics', { exact: true }).click();\n }\n\n async gotoReportsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Reports', { exact: true }).click();\n }\n\n async gotoTemplatesPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Templates', { exact: true }).click();\n }\n\n async gotoEnvironmentsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Environments', { exact: true }).click();\n }\n\n async gotoEnvironmentsCalenderPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Environments calendar', { exact: true }).click();\n }\n\n async gotoGobalVariablesPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Global variables', { exact: true }).click();\n }\n async gotoConnectionsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Connections', { exact: true }).click();\n }\n private async openReleaseOrTemplate(id: string, release: boolean): Promise<ReleasePage> {\n const url = release ? 'releases' : 'templates';\n await this.page.goto(`./#/${url}/${id}`);\n await this.page.waitForSelector('#release');\n return new ReleasePage(this.page);\n }\n\n async collapseSideView(): Promise<void> {\n await this.page.locator('.icon-collapse').click();\n await expect(this.page.locator('.icon-collapse')).not.toBeVisible();\n }\n\n async expandSideView(): Promise<void> {\n await this.page.locator('.icon-expand').click();\n await expect(this.page.locator('.icon-expand')).not.toBeVisible();\n }\n}\n","import { Page, Locator, expect } from '@playwright/test';\nimport { TriggersPage } from '../TriggersPage';\nimport { WithPage } from '../WithPage';\nimport { ReleaseVariablesPage } from './ReleaseVariablesPage';\nimport { TaskDrawer } from '../task-drawer/taskDrawer';\nimport { ReleasePropertiesPage } from './releasePropertiesPage';\nimport { DateUtil } from '../common/dateUtil';\nimport { Util } from '../common/util';\n\nexport class ReleasePage extends WithPage {\n taskDrawer: TaskDrawer;\n phaseTitle: Locator;\n properties: ReleasePropertiesPage;\n variables: ReleaseVariablesPage;\n util: Util;\n\n constructor(page: Page) {\n super(page);\n this.taskDrawer = new TaskDrawer(page);\n this.phaseTitle = this.page.locator('.phase .phase-title');\n this.properties = new ReleasePropertiesPage(page);\n this.variables = new ReleaseVariablesPage(page);\n this.util = new Util(page);\n }\n\n async openTriggers(): Promise<TriggersPage> {\n await this.openSubPage('Triggers');\n return new TriggersPage(this.page);\n }\n\n async abort(comment = 'Abort for testing'): Promise<void> {\n await this.page.locator('action-toolbar button', { hasText: 'Abort' }).click();\n await this.page.locator('.modal textarea').fill(comment);\n await this.page.locator('.modal .continue').click();\n }\n\n getPhase(phaseName: string): Phase {\n return new Phase(this.page, phaseName);\n }\n\n async expectNotFlagged(): Promise<void> {\n await expect(this.page.locator('.flag-none-icon')).toBeHidden();\n }\n\n async expectFlagOnTaskCard(): Promise<void> {\n await expect(this.page.locator('.risk-flag-icon')).toBeVisible();\n }\n\n async refresh(): Promise<void> {\n await this.page.reload();\n await this.page.waitForSelector('#release');\n }\n\n async start(): Promise<void> {\n await this.page.getByTestId('start-btn').click();\n await this.page.getByRole('button', { name: 'Start' }).click();\n }\n\n async waitForCompletion(timeout: number): Promise<void> {\n await this.page.locator('#release.completed').waitFor({ timeout });\n }\n\n async waitForTaskCompleted(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.completed').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskInProgress(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.in_progress').getByText(taskTitle, { exact: true })).toBeVisible();\n }\n\n async waitForTaskFailed(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.failed').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n async waitForTaskSkipped(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.skipped').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskSkippedInAdvance(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.skipped_in_advance').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskAborted(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.aborted').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n async waitForStatusLine(statusLine: string): Promise<void> {\n await expect(this.page.locator('.task .status-line').getByText(statusLine, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskStarted(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.in_progress').getByTitle(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskPlanned(title: string): Promise<void> {\n await expect(this.page.locator(`.task:has-text('${title}').planned`)).toBeVisible();\n }\n\n async openManualTaskDetails(title: string): Promise<void> {\n await this.page.locator(`text=${title}`).click({ force: true });\n await expect(this.page.locator('div').filter({ hasText: title }).first()).toBeVisible();\n }\n\n async reopenTask(comment: string): Promise<void> {\n await this.page\n .locator('div')\n .filter({ hasText: /^Reopen$/ })\n .click();\n await this.page.getByTestId('task-action-comment').click();\n await this.page.getByTestId('task-action-comment').fill(comment);\n await this.page.getByTestId('dot-button').click();\n }\n\n async openTaskDrawer(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.task-header').getByText(taskName, { exact: true }).click();\n return this.taskDrawer;\n }\n\n async openTaskDrawerFromTableView(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.name-cell-title').getByText(taskName, { exact: true }).click();\n return this.taskDrawer;\n }\n\n async openTaskDrawerFromGrantt(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.gantt_tree_content').getByText(taskName, { exact: true }).dblclick();\n return this.taskDrawer;\n }\n\n async openVariables(): Promise<void> {\n await this.util.openSideNavMenu('Variables');\n await expect(this.page.getByLabel('breadcrumb').getByText('Variables')).toBeVisible();\n }\n\n async openProperties(): Promise<void> {\n await this.util.openSideNavMenu('Properties');\n await expect(this.page.getByLabel('breadcrumb').getByText('Properties')).toBeVisible();\n }\n\n async openReleaseFlow(): Promise<void> {\n await this.util.openSideNavMenu('Flow');\n await expect(this.page.getByLabel('breadcrumb').getByText('Flow')).toBeVisible();\n }\n\n async openRelationships(): Promise<void> {\n await this.util.openSideNavMenu('Relationships');\n await expect(this.page.getByLabel('breadcrumb').getByText('Relationships')).toBeVisible();\n }\n\n async openTeamsPermissions(): Promise<void> {\n await this.util.openSideNavMenu('Teams & Permissions');\n await expect(this.page.getByLabel('breadcrumb').getByText('Teams & Permissions')).toBeVisible();\n }\n\n async openDashboard(): Promise<void> {\n await this.util.openSideNavMenu('Dashboard');\n await expect(this.page.getByLabel('breadcrumb').getByText('Dashboard')).toBeVisible();\n }\n\n async openActivityLogs(): Promise<void> {\n await this.util.openSideNavMenu('Activity logs');\n await expect(this.page.getByLabel('breadcrumb').getByText('Activity logs')).toBeVisible();\n }\n\n private async openReleaseMenu(menuItem: string): Promise<void> {\n await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }).click();\n }\n\n private async openSubPage(subpage: string): Promise<void> {\n await this.page.locator('ul.side-nav li', { hasText: subpage }).click();\n }\n\n async openTask(taskName: string): Promise<void> {\n await this.page.getByTitle(taskName, { exact: true }).click();\n }\n\n async collapseAllTaskView(): Promise<void> {\n const icCollapseTreeview1 = this.page.locator('div.pull-left.expander.ng-scope i.xl-icon.arrow-down-icon');\n for (const element of await icCollapseTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.collapseAllTaskView();\n }\n }\n }\n\n async expandAllTaskView(): Promise<void> {\n const icExpandTreeview1 = this.page.locator('div.pull-left.expander.ng-scope i.xl-icon.arrow-right-icon');\n for (const element of await icExpandTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.expandAllTaskView();\n }\n }\n }\n\n async expectTemplateLabelNotToBePresent(): Promise<void> {\n await expect(this.page.locator('.dot-chip').filter({ hasText: 'TEMPLATE' })).not.toBeVisible();\n }\n\n async openTableView(): Promise<void> {\n await this.util.openSideNavMenu('Table');\n await expect(this.page.locator('.release-grid-container')).toBeVisible();\n }\n\n async openPlannerView(): Promise<void> {\n await this.util.openSideNavMenu('Planner');\n await expect(this.page.locator('.gantt-container')).toBeVisible();\n }\n\n async expandGanttFolder(): Promise<void> {\n const icExpandTreeview1 = this.page.locator('.gantt_tree_icon.gantt_open');\n for (const element of await icExpandTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.expandGanttFolder();\n }\n }\n }\n\n async backToRelease(): Promise<void> {\n await this.page.locator('.icon-back').click();\n }\n\n async expectTitleToBeInBreadcrumbLink(title: string): Promise<void> {\n await expect(this.page.locator('.dot-breadcrumbs a', { hasText: title })).toBeVisible();\n }\n\n async expectHasPhase(title: string): Promise<void> {\n await expect(this.page.locator(`#release-content .phase-title`, { hasText: title })).toBeVisible();\n }\n\n async addNewPhase(phaseName?: string): Promise<void> {\n await this.page.getByTestId('add-phase-btn').click();\n if (phaseName) {\n await this.phaseTitle.getByText('New Phase').click();\n await this.phaseTitle.getByRole('textbox').clear();\n await this.phaseTitle.getByRole('textbox').fill(phaseName);\n await this.page.keyboard.press('Enter');\n await expect(this.phaseTitle.filter({ hasText: phaseName })).toBeVisible();\n }\n }\n\n async renamePhase(oldPhaseName: string, newPhaseName: string): Promise<void> {\n await this.phaseTitle.getByText(oldPhaseName).click();\n await this.phaseTitle.filter({ hasText: oldPhaseName }).locator('.editable').clear();\n await this.phaseTitle.filter({ hasText: oldPhaseName }).locator('.editable').fill(newPhaseName);\n await this.page.keyboard.press('Enter');\n await expect(this.phaseTitle.filter({ hasText: newPhaseName })).toBeVisible();\n }\n\n async exportRelease(): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.page.on('download', () => {});\n await this.page.getByTestId('template-export-btn').click();\n const downloadPromise = this.page.waitForEvent('download');\n await this.page.getByRole('link', { name: 'Audit report (Excel)' }).click();\n await downloadPromise;\n }\n}\n\nclass Phase extends WithPage {\n private readonly phaseLocator: Locator;\n commentBox: Locator;\n confirm: Locator;\n dateUtil: DateUtil;\n\n constructor(page: Page, phaseName: string) {\n super(page);\n this.phaseLocator = page.locator('.phase', { hasText: phaseName });\n this.commentBox = this.page.locator(`.input-block-level`);\n this.confirm = this.page.getByTestId('dot-button');\n this.dateUtil = new DateUtil(page);\n }\n\n async setTitle(title: string): Promise<void> {\n await this.phaseLocator.locator('.phase-header .display').click();\n await this.phaseLocator.locator('.phase-header input').clear();\n await this.phaseLocator.locator('.phase-header input').fill(title);\n await this.phaseLocator.locator('.phase-header input').blur();\n }\n\n async expectTaskBorderWithColor(taskName: string, color: string): Promise<void> {\n await expect(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS('border-top-color', color);\n }\n\n async addTaskInPhase(taskTitle: string, taskGroup: string, taskType: string): Promise<void> {\n await this.phaseLocator.getByText('Add task').click();\n await this.phaseLocator.getByLabel('Open', { exact: true }).click();\n await this.phaseLocator.getByPlaceholder('Start typing to filter task').fill(taskGroup);\n await this.page.getByTestId(taskType).click();\n await this.phaseLocator.locator('#task-title').fill(taskTitle);\n await this.phaseLocator.getByTestId('save-select-task-btn').click();\n await expect(this.phaseLocator.getByText(taskTitle)).toBeVisible();\n }\n\n async getNumberOfTasks(): Promise<number> {\n return await this.phaseLocator.locator('.task').count();\n }\n\n async expectToHaveNoneditableTitle(phaseTitle: string): Promise<void> {\n await expect(this.phaseLocator.locator('.phase-title > span')).toContainText(phaseTitle);\n }\n\n async expectToHaveTitle(phaseTitle: string): Promise<void> {\n await expect(this.phaseLocator.locator('.phase-title')).toContainText(phaseTitle);\n }\n\n async expectTemplateLabelNotToBePresent(): Promise<void> {\n await expect(this.page.locator('.dot-chip').filter({ hasText: 'TEMPLATE' })).not.toBeVisible();\n }\n\n async openContextMenuForTask(taskTitle: string): Promise<void> {\n await this.phaseLocator.locator('.task').filter({ hasText: taskTitle }).locator('.context-menu-button').click();\n }\n\n async skipFromContextMenu(comment: string, taskTitle: string): Promise<void> {\n await this.openContextMenuForTask(taskTitle);\n await this.page.locator('.dropdown-menu li').getByText('Skip').click();\n await this.commentBox.fill(comment);\n await this.page.getByRole('button', { name: 'Skip', exact: true }).click();\n }\n\n async openPhaseDetails(): Promise<void> {\n await this.phaseLocator.locator('.phase-details').click();\n }\n\n async close(): Promise<void> {\n await this.page.locator(\"button[type='button'] i[class='xl-icon close-icon']\").click();\n }\n\n async expectStartDateToBeDisplayed(): Promise<void> {\n await expect(this.page.locator('.modal .start-date')).toBeVisible();\n }\n\n async expectDueDateToBeDisplayed(): Promise<void> {\n await expect(this.page.locator('.modal .due-date')).toBeVisible();\n }\n\n async expectEndDateToBeDisplayed(): Promise<void> {\n await expect(this.page.locator('.modal .end-date')).toBeVisible();\n }\n\n async setTitleFromPhaseDetails(title: string): Promise<void> {\n await this.page.locator('h4.phase-title').click();\n await this.page.locator('h4.phase-title input').fill(title);\n await this.page.locator('h4.phase-title input').press('Enter');\n await expect(this.page.locator('h4.phase-title')).toContainText(title);\n }\n\n async setDueDateFromPhaseDetails(date?: string, monthYear?: string): Promise<void> {\n await this.dateUtil.openDatePicker('.modal .due-date .date-editor');\n await this.dateUtil.setDate(date, monthYear);\n }\n\n async setScheduledStartDateFromPhaseDetails(date?: string, monthYear?: string): Promise<void> {\n await this.dateUtil.openDatePicker('.modal .scheduled-start-date .date-editor');\n await this.dateUtil.setDate(date, monthYear);\n }\n\n async expectDurationToBe(duration: string): Promise<void> {\n await this.dateUtil.expectDurationToBe(duration);\n }\n\n async setDurationFromPhaseDetails(days?: string, hours?: string, mins?: string): Promise<void> {\n await this.dateUtil.setDuration(days, hours, mins);\n }\n\n async expectDueTimeToBe(format: string, date: Date | string): Promise<void> {\n await this.dateUtil.expectTimeToBe('.modal .due-date .time-picker-holder input', format, date);\n }\n\n async deleteTaskInPhase(taskName: string): Promise<void> {\n await this.page.locator('.task').filter({ hasText: taskName }).locator('.xl-icon.options-icon').click();\n await this.page.locator('.remove-task-button').click();\n await expect(this.page.getByRole('heading', { name: 'Delete Task' })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.phaseLocator.locator('li').filter({ hasText: taskName })).not.toBeVisible();\n }\n\n async deletePhase(phaseName: string): Promise<void> {\n await this.phaseLocator.locator('.phase-header').filter({ hasText: phaseName }).locator('.actions').hover();\n await this.phaseLocator.locator('.phase-header').filter({ hasText: phaseName }).locator('.delete-icon').click();\n await expect(this.page.getByRole('heading', { name: 'Delete Phase' })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.phaseLocator.locator('.phase-header').filter({ hasText: phaseName })).not.toBeVisible();\n }\n}\n","import { expect } from '@playwright/test';\nimport { ReleasesListPage } from './ReleasesListPage';\nimport { WithPage } from './WithPage';\n\nexport class TriggersPage extends WithPage {\n async openRelatedReleasesOf(title: string): Promise<ReleasesListPage> {\n await this.openContextMenu(title);\n await this.page.locator('.popover-content xlr-context-menu a', { hasText: 'View releases' }).click();\n return new ReleasesListPage(this.page);\n }\n\n private async openContextMenu(title: string): Promise<void> {\n await expect(async () => {\n await this.page.locator('.trigger-row-content', { hasText: title }).locator('.context-menu-button').click();\n await expect(this.page.locator('.popover-content')).toBeVisible();\n }).toPass();\n }\n}\n","import { expect, Page } from '@playwright/test';\nimport { ReleasePage } from './releases/ReleasePage';\nimport { WithPage } from './WithPage';\nimport { ReleaseCreatePage } from './releases/releaseCreatePage';\n\nexport class ReleasesListPage extends WithPage {\n releaseCreatePage: ReleaseCreatePage;\n constructor(page: Page) {\n super(page);\n this.releaseCreatePage = new ReleaseCreatePage(page);\n }\n\n async expectNumberOfReleases(releaseTitle: string, amount: number): Promise<void> {\n await this.filterReleaseByTitle(releaseTitle);\n if (amount === 1) {\n await expect(this.page.locator('.release').getByText(releaseTitle)).toBeVisible({ timeout: 5000 });\n } else {\n await expect(this.page.locator('.release').getByText(releaseTitle).count()).toBe(amount);\n }\n }\n\n async filterReleaseByAllStatus(): Promise<void> {\n await this.page.locator('.ci-status .remaining-tags').getByText('more').click();\n await this.page.locator('.ci-status .xl-react-link').getByText('Select all').click();\n }\n\n async openReleaseByName(releaseTitle: string): Promise<ReleasePage> {\n await this.page.locator('.release-line .row-wrapper .release-title-wrapper a', { hasText: releaseTitle }).click();\n return new ReleasePage(this.page);\n }\n\n async filterReleaseByTitle(releaseTitle: string): Promise<void> {\n await this.page.locator('.toggle-search-filter').click();\n await this.page.locator('.searchFilter').fill(releaseTitle);\n await this.page.locator('.searchFilter').press('Enter');\n await expect(this.page.locator('.release').getByText(releaseTitle)).toBeVisible();\n }\n\n async createNewRelease(releaseName: string, description: string): Promise<void> {\n await this.releaseCreatePage.setName(releaseName);\n await this.releaseCreatePage.setDescription(description);\n await this.releaseCreatePage.create();\n await expect(this.page.getByLabel('breadcrumb').getByText('Flow')).toBeVisible();\n }\n}\n","import { Page } from '@playwright/test';\n\nexport class WithPage {\n protected readonly page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n}\n","import { Page } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class ReleaseCreatePage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async setName(releaseName: string): Promise<void> {\n await this.page.locator('#release-form-title').click();\n await this.page.locator('#release-form-title').fill(releaseName);\n }\n\n async setDescription(description: string): Promise<void> {\n await this.page.locator('.release-description').hover();\n await this.page.locator('.display').filter({ hasText: 'Set description' }).locator('.edit-icon').click();\n await this.page.locator('textarea').click();\n await this.page.locator('textarea').clear();\n await this.page.locator('textarea').fill(description);\n await this.page.getByText('Save', { exact: true }).click();\n }\n\n async create(): Promise<void> {\n await this.page.getByRole('button', { name: 'Create' }).waitFor({ state: 'visible' });\n await this.page.getByRole('button', { name: 'Create' }).click();\n }\n}\n","import { expect, Locator } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { waitForOneOf } from '../helper';\n\ntype ExpectWithLocator = (l: Locator) => void;\n\nexport class ReleaseVariablesPage extends WithPage {\n async openVariable(variableKey: string): Promise<ReleaseVariableModal> {\n await this.page.locator(`.variables-list .variable`).getByText(variableKey).click();\n return new ReleaseVariableModal(this.page);\n }\n}\n\nclass ReleaseVariableModal extends WithPage {\n private async expectValue(locators: Locator[], expectFn: ExpectWithLocator[]): Promise<void> {\n const [index, locator] = await waitForOneOf(locators);\n await expectFn[index](locator);\n }\n\n async expectValueToBe(value: string): Promise<void> {\n await this.expectValue(\n [\n this.page.locator('#modal .variable-value input'),\n this.page.locator('#modal .variable-value .field-readonly'),\n this.page.locator('#modal .variable-value .xl-map-string-string'),\n ],\n [(l) => expect(l).toHaveValue(value), (l) => expect(l).toHaveText(value), (l) => expect(l).toHaveText(value)],\n );\n }\n\n async expectValueToContain(value: string): Promise<void> {\n await this.expectValue(\n [\n this.page.locator('#modal .variable-value input'),\n this.page.locator('#modal .variable-value .field-readonly'),\n this.page.locator('#modal .variable-value .xl-map-string-string'),\n ],\n [\n (l) => expect(l.inputValue()).toContain(value),\n (l) => expect(l).toContainText(value),\n (l) => expect(l).toContainText(value),\n ],\n );\n }\n\n async close(): Promise<void> {\n await this.page.locator('#modal .modal-header button.close').click();\n }\n}\n","import { Locator } from '@playwright/test';\n\ntype WaitForRes = [locatorIndex: number, locator: Locator];\nexport async function waitForOneOf(locators: Locator[]): Promise<WaitForRes> {\n const res = await Promise.all([\n ...locators.map(async (locator, index): Promise<WaitForRes> => {\n let timedOut = false;\n await locator.waitFor({ state: 'visible', timeout: 2000 }).catch(() => (timedOut = true));\n return [timedOut ? -1 : index, locator];\n }),\n ]);\n const resolvedLocator = res.find((r) => r[0] !== -1);\n if (!resolvedLocator) {\n console.warn('waitForOneOf', res);\n throw new Error('no locator visible before timeout');\n }\n return resolvedLocator;\n}\n","import { ConfigRail } from './taskConfig';\nimport { WithPage } from '../WithPage';\nimport { Locator, Page } from '@playwright/test';\nimport { ConditionRail } from './taskCondition';\nimport { OverviewRail } from './taskOverview';\nimport { ActivityRail } from './taskActivity';\nimport { AttachmentRail } from './taskAttachments';\nimport { expect } from '@playwright/test';\n\ntype Rail = 'Overview' | 'Activity' | 'Config' | 'Scheduling' | 'Conditions' | 'Attributes' | 'Attach' | 'Tags';\n\nexport class TaskDrawer extends WithPage {\n activity: ActivityRail;\n attachment: AttachmentRail;\n config: ConfigRail;\n condition: ConditionRail;\n taskDrawerLocator: Locator;\n retryButton: Locator;\n cancelButton: Locator;\n commentBox: Locator;\n confirm: Locator;\n overview: OverviewRail;\n skipMenu: Locator;\n failMenu: Locator;\n openMenu: Locator;\n\n constructor(page: Page) {\n super(page);\n this.taskDrawerLocator = this.page.locator('task-drawer .dot-drawer');\n this.retryButton = this.page.getByRole('button', { name: 'Retry' });\n this.cancelButton = this.page.getByTestId('task-action-cancel');\n this.commentBox = this.page.getByTestId('task-action-comment');\n this.confirm = this.page.getByTestId('dot-button');\n this.activity = new ActivityRail(page);\n this.attachment = new AttachmentRail(page);\n this.config = new ConfigRail(page);\n this.condition = new ConditionRail(page);\n this.overview = new OverviewRail(page);\n this.skipMenu = this.page.getByRole('menuitem', { name: 'Skip' });\n this.failMenu = this.page.getByRole('menuitem', { name: 'Fail' });\n this.openMenu = this.page.getByRole('button', { name: 'arrow-down icon', exact: true });\n }\n\n async openOverviewRail(): Promise<void> {\n await this.openRail('Overview');\n }\n\n async openActivityRail(): Promise<void> {\n await this.openRail('Activity');\n }\n\n async openSchedulingRail(): Promise<void> {\n await this.openRail('Scheduling');\n }\n\n async openConditionRail(): Promise<void> {\n await this.openRail('Conditions');\n }\n\n async openAttributesRail(): Promise<void> {\n await this.openRail('Attributes');\n }\n\n async openAttachRail(): Promise<void> {\n await this.openRail('Attach');\n }\n\n async openTagsRail(): Promise<void> {\n await this.openRail('Tags');\n }\n\n async openRail(rail: Rail): Promise<void> {\n await this.taskDrawerLocator.locator('.task-navigation-rail').getByText(rail).click();\n }\n\n async close(): Promise<void> {\n await this.taskDrawerLocator.locator('.task-drawer-header').getByTestId('close-btn').click();\n }\n\n async retryTask(comment: string): Promise<void> {\n await this.page.waitForTimeout(1000);\n await this.retryButton.click();\n await this.commentBox.fill(comment);\n await this.confirm.click();\n }\n\n async skipTask(comment: string): Promise<void> {\n await this.openMenu.click();\n await this.skipMenu.click();\n await this.commentBox.fill(comment);\n await this.confirm.click();\n }\n\n async failTask(comment: string): Promise<void> {\n await this.openMenu.click();\n await this.failMenu.click();\n await this.commentBox.fill(comment);\n await this.confirm.click();\n }\n\n async expectTaskTitle(taskTitle: string): Promise<void> {\n expect(await this.page.locator('.task-drawer .task-title-input .dot-view-mode-typography').innerText()).toContain(\n taskTitle,\n );\n }\n\n async expectTypeToContain(taskType: string): Promise<void> {\n expect(await this.page.locator('.task-drawer .task-type').innerText()).toContain(taskType);\n }\n\n async clickExpand(): Promise<void> {\n await this.page.getByRole('tooltip', { name: 'Expand' }).getByTestId('expand-btn').click();\n await expect(this.page.getByRole('tooltip', { name: 'Shrink' }).getByTestId('expand-btn')).toBeVisible();\n }\n\n async clickShrink(): Promise<void> {\n await this.page.getByRole('tooltip', { name: 'Shrink' }).getByTestId('expand-btn').click();\n await expect(this.page.getByRole('tooltip', { name: 'Expand' }).getByTestId('expand-btn')).toBeVisible();\n }\n\n async expectAssignedTo(username: string): Promise<void> {\n await expect(this.page.getByRole('button', { name: username })).toBeVisible();\n }\n\n async assignToMe(userName: string, existingUsername: string): Promise<void> {\n await this.page.getByRole('button', { name: existingUsername }).click();\n await this.page.getByTestId(`render-option-${userName}`).click();\n }\n\n async setFlag(flagName: string, flagComment: string): Promise<void> {\n await this.page.getByTestId('flag-btn').click();\n await this.page.getByLabel(flagName).click();\n await this.page.getByPlaceholder('Set message').click();\n await this.page.getByPlaceholder('Set message').fill(flagComment);\n await this.page.getByPlaceholder('Set message').press('Enter');\n await expect(this.page.getByRole('button', { name: `flag icon ${flagComment}` })).toBeVisible();\n }\n\n async expectFlaggedWith(flagName: string, flagComment: string): Promise<void> {\n await this.page.getByRole('button', { name: 'flag icon' }).click();\n const regexPattern = new RegExp(`${flagComment}.*${flagName}`, 'i');\n await expect(this.page.getByText(regexPattern)).toBeVisible();\n }\n\n async expectStartDateToBeDisplayed(): Promise<void> {\n await expect(this.page.getByTestId('start-date-title')).toHaveCount(1);\n }\n\n async expectEndDateToBeDisplayed(): Promise<void> {\n await expect(this.page.getByTestId('end-date-title')).toHaveCount(1);\n }\n\n async expectStartDateAndEndDateToBeDisplayed(): Promise<void> {\n await expect(this.page.getByTestId('month-and-year')).toHaveCount(2);\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class ConfigRail extends WithPage {\n railLocator: Locator;\n\n constructor(page: Page) {\n super(page);\n this.railLocator = this.page.locator('task-drawer .dot-drawer .task-config');\n }\n\n async openInputProperties(): Promise<void> {\n await this.railLocator.locator('.task-config-header').getByText('Input properties').click();\n }\n\n async openOutputProperties(): Promise<void> {\n await this.railLocator.locator('.task-config-header').getByText('Output properties').click();\n }\n\n async getValueFromCi(propertyName: string): Promise<string> {\n return this.railLocator.locator(`input[id=\"${propertyName}\"]`).inputValue();\n }\n\n async getAllOptionsFromCi(propertyName: string): Promise<string[]> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n return this.railLocator.locator(`.dot-popper ul li`).allInnerTexts();\n }\n\n async setValueFromCi(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).clear();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n await this.railLocator.locator(`.dot-popper ul li`, { hasText: value }).click();\n }\n\n async getValueFromString(propertyName: string): Promise<string | null> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n return this.railLocator.locator(`input[id=\"${propertyName}\"]`).inputValue();\n }\n\n async setValueFromString(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setValueFromLargeString(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n await this.railLocator.locator(`textarea[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setValueFromPassword(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setAndCreateVariable(propertyName: string, variableName: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).clear();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(variableName);\n await this.railLocator.locator(`.dot-popper button`, { hasText: variableName }).click();\n }\n\n async setVariable(propertyName: string, variableName: string): Promise<void> {\n return this.setValueFromCi(propertyName, variableName);\n }\n\n async expectValueFromString(propertyName: string, propertyValue: string): Promise<void> {\n return await expect(this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`)).toHaveText(\n propertyValue,\n );\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class ConditionRail extends WithPage {\n railLocator: Locator;\n preconditionToggle: Locator;\n textEditor: Locator;\n saveButton: Locator;\n\n constructor(page: Page) {\n super(page);\n this.railLocator = this.page.locator('task-drawer .dot-drawer .task-conditions');\n this.preconditionToggle = page.getByLabel('Enable precondition');\n this.textEditor = page.getByRole('textbox');\n this.saveButton = page.getByTestId('save-btn');\n }\n\n async enablePrecondition(): Promise<void> {\n expect(await this.preconditionToggle.isChecked()).toBe(false);\n await this.preconditionToggle.check();\n }\n\n async disablePrecondition(): Promise<void> {\n expect(await this.preconditionToggle.isChecked()).toBe(true);\n await this.preconditionToggle.uncheck();\n }\n\n async setPrecondition(script: string): Promise<void> {\n await this.enablePrecondition();\n await this.textEditor.fill(script);\n await this.saveButton.dblclick();\n await this.page.waitForTimeout(1000);\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class OverviewRail extends WithPage {\n railLocator: Locator;\n dependency: Dependency;\n constructor(page: Page) {\n super(page);\n this.railLocator = this.page.locator('task-drawer .dot-drawer .task-drawer-content');\n this.dependency = new Dependency(page);\n }\n\n async openInputProperties(): Promise<void> {\n await this.railLocator.locator('.task-config-header').getByText('Input properties').click();\n }\n\n async openOutputProperties(): Promise<void> {\n await this.railLocator.locator('.task-config-header').getByText('Output properties').click();\n }\n\n async getValueFromCi(propertyName: string): Promise<string> {\n return this.railLocator.locator(`input[id=\"${propertyName}\"]`).inputValue();\n }\n\n async getAllOptionsFromCi(propertyName: string): Promise<string[]> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n return this.railLocator.locator(`.dot-popper ul li`).allInnerTexts();\n }\n\n async setValueFromCi(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).clear();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n await this.railLocator.locator(`.dot-popper ul li`, { hasText: value }).click();\n }\n\n async getValueFromString(propertyName: string): Promise<string | null> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n return this.railLocator.locator(`input[id=\"${propertyName}\"]`).inputValue();\n }\n\n async setValueFromString(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setValueFromLargeString(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n await this.railLocator.locator(`textarea[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setValueFromPassword(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setAndCreateVariable(propertyName: string, variableName: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).clear();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(variableName);\n await this.railLocator.locator(`.dot-popper button`, { hasText: variableName }).click();\n }\n\n async setVariable(propertyName: string, variableName: string): Promise<void> {\n return this.setValueFromCi(propertyName, variableName);\n }\n\n async expectValueFromString(propertyName: string, propertyValue: string): Promise<void> {\n return await expect(this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`)).toHaveText(\n propertyValue,\n );\n }\n\n async setValueFromMap(propertyName: string, key: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-with-map[data-test-id=\"${propertyName}\"] button.add-new-button`).click();\n await this.railLocator\n .locator(`.input-with-map[data-test-id=\"${propertyName}\"] input[id=\"new-row-key-input\"]`)\n .fill(key);\n await this.railLocator\n .locator(`.input-with-map[data-test-id=\"${propertyName}\"] input[id=\"new-row-value-input\"]`)\n .fill(value);\n await this.railLocator\n .locator(`.input-with-map[data-test-id=\"${propertyName}\"] button.map-row-save-button`)\n .click();\n }\n\n async setScript(script: string): Promise<void> {\n await this.page.locator('.code-editor textarea.ace_text-input').clear();\n await this.page.locator('.code-editor textarea.ace_text-input').fill(script);\n await this.page.locator('.code-editor .header button:has-text(\"Save\")').click();\n }\n\n async expectScriptToContain(script: string): Promise<void> {\n await expect(this.page.locator('.code-editor .ace_content')).toContainText(script);\n }\n\n async enterScriptForAutoComplete(script: string): Promise<void> {\n await this.page.locator('.code-editor textarea.ace_text-input').clear();\n await this.page.locator('.code-editor textarea.ace_text-input').fill(script);\n await this.page.locator('.code-editor textarea.ace_text-input').press('.');\n }\n\n async openScriptEditorInSeparateWindow(): Promise<void> {\n await this.page.getByTestId('fullscreen-enter-btn').click();\n expect(this.page.locator('#dialogTitle')).toBeVisible();\n }\n\n async closeFullscreenScriptWindowWithESC(): Promise<void> {\n await this.page.locator('#dialogTitle').press('Escape');\n expect(this.page.locator('#dialogTitle')).not.toBeVisible();\n }\n\n async closeFullscreenScriptWindow(): Promise<void> {\n await this.page.getByTestId('fullscreen-exit-btn').click();\n expect(this.page.locator('#dialogTitle')).not.toBeVisible();\n }\n\n async abort(comment: string): Promise<void> {\n await this.page.getByTestId('single-action-button').click();\n await this.page.getByTestId('task-action-comment').click();\n await this.page.getByTestId('task-action-comment').fill(comment);\n await this.page.getByTestId('dot-button').click();\n }\n\n async expectDependenciesDisplayed(dependencies: any[]): Promise<void> {\n await this.railLocator.locator('.gate-task-dependencies').waitFor();\n for (let i = 0; i < dependencies.length; i++) {\n await expect(this.page.locator('.dependency').filter({ hasText: dependencies[i] })).toBeVisible();\n }\n }\n\n async expectCanDeleteDependency(title: string, canDelete = true): Promise<void> {\n const depOptionsIcon = this.page\n .locator('.dependency')\n .filter({ has: this.page.getByRole('link', { name: title, exact: true }) })\n .locator('.icon-options');\n if (canDelete) {\n await depOptionsIcon.isVisible();\n await depOptionsIcon.click();\n await expect(this.railLocator.getByRole('menuitem', { name: 'Remove' })).toBeVisible();\n } else {\n await expect(depOptionsIcon).not.toBeVisible();\n }\n }\n\n async getDependencyCount(): Promise<number> {\n await expect(this.railLocator.locator('.gate-task-dependencies')).toBeVisible();\n const count = await this.railLocator.locator('.gate-task-dependencies .dependency').count();\n return count;\n }\n\n async addDependency(): Promise<void> {\n await expect(this.railLocator.locator('.add-dependency-btn')).toBeVisible();\n await this.railLocator.locator('.add-dependency-btn').click();\n }\n\n async expectDependencyText(dependencies: string): Promise<void> {\n await expect(this.railLocator.locator('.gate-task-dependencies')).toBeVisible();\n await expect(this.page.getByRole('link', { name: dependencies, exact: true }).first()).toBeVisible();\n }\n\n async clickEditDependency(dependencies: string): Promise<void> {\n const depOptionsIcon = this.page\n .locator('.dependency')\n .filter({ has: this.page.getByRole('link', { name: dependencies, exact: true }) })\n .locator('.icon-options');\n await depOptionsIcon.isVisible();\n await depOptionsIcon.click();\n const frame = this.page.getByTestId('undefined-menu');\n if (await frame.isVisible()) {\n await this.railLocator.getByRole('menuitem', { name: 'Edit' }).click();\n } else {\n await depOptionsIcon.click();\n await this.railLocator.getByRole('menuitem', { name: 'Edit' }).click();\n }\n }\n}\n\nexport class Dependency extends WithPage {\n private readonly dependencyLocator: Locator;\n private release: Locator;\n private phase: Locator;\n private task: Locator;\n\n constructor(page: Page) {\n super(page);\n this.dependencyLocator = page.locator('.gate-task-dependencies .dependency-selector-component');\n this.release = this.dependencyLocator.locator('#release-dependency');\n this.phase = this.dependencyLocator.locator('#phase-dependency');\n this.task = this.dependencyLocator.locator('#task-dependency');\n }\n\n async getRelease(): Promise<any> {\n await this.release.isVisible();\n const releaseValue = await this.release.getAttribute('value');\n return releaseValue;\n }\n\n async getPhase(): Promise<any> {\n await this.phase.isVisible();\n const phaseValue = await this.phase.getAttribute('value');\n return phaseValue;\n }\n\n async getTask(): Promise<any> {\n await this.task.isVisible();\n const taskValue = await this.task.getAttribute('value');\n return taskValue;\n }\n\n async setRelease(releaseTitle: string): Promise<void> {\n await this.release.click();\n await this.release.fill(releaseTitle);\n await this.page.getByRole('option', { name: releaseTitle }).waitFor();\n await this.page.getByRole('option', { name: releaseTitle }).click();\n }\n\n async save(): Promise<void> {\n await expect(this.dependencyLocator.getByTestId('save-button')).toBeVisible();\n await this.dependencyLocator.getByTestId('save-button').click();\n }\n\n async setPhase(phaseTitle: string): Promise<void> {\n await this.phase.click();\n await this.phase.fill('');\n await this.page.getByRole('option', { name: phaseTitle }).waitFor();\n await this.page.getByRole('option', { name: phaseTitle }).click();\n }\n\n async setTask(taskTitle: string): Promise<void> {\n await this.task.click();\n await this.task.fill('');\n await this.page.getByRole('option', { name: taskTitle }).click();\n }\n\n async clearPhase(): Promise<void> {\n await this.phase.clear();\n }\n\n async expectVariableModeEnabled(mode: boolean): Promise<void> {\n await expect(this.dependencyLocator.getByLabel('input-variable')).toBeVisible();\n const variablemode = await this.dependencyLocator.getByLabel('input-variable').getAttribute('aria-pressed');\n expect(variablemode).toBe('' + mode + '');\n }\n\n async clickVariable(): Promise<void> {\n await this.dependencyLocator.getByLabel('input-variable').waitFor();\n await this.dependencyLocator.getByLabel('input-variable').click();\n }\n\n //TODO: getAttribute('value') is not working as expected. Need to be fixed with better alternative.\n async expectMinimumOptions(options: any[]): Promise<void> {\n await this.dependencyLocator.getByPlaceholder('Please select a variable of').click();\n for (let i = 0; i < options.length; i++) {\n const option = await this.dependencyLocator.locator('#mui-30-option-' + i).getAttribute('value');\n expect(options[i]).toContain(option);\n }\n }\n\n async enterNewVariable(variablename: string): Promise<void> {\n await this.page.getByLabel('Please select a variable of').click();\n await this.page.getByLabel('Please select a variable of').fill(variablename);\n await this.page.getByTestId('dot-action-item-btn').click();\n }\n\n async selectVariable(variablename: string): Promise<void> {\n await this.page.getByLabel('Please select a variable of').click();\n await this.page.getByRole('option', { name: variablename }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class ActivityRail extends WithPage {\n async expectCommentToContain(text: string): Promise<void> {\n await expect(this.page.locator('.task-comment .markdown-wrapper p')).toContainText(text);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class AttachmentRail extends WithPage {\n async expectWithAttachment(filename: string): Promise<void> {\n const test = this.page.locator('.task-attachments-grid .file-item-text');\n await test.isVisible();\n await expect(test).toContainText(filename);\n }\n\n async getAttachmentsListCount(): Promise<number> {\n return await this.page.locator('.file-upload-list div').count();\n }\n\n async uploadFile(filePath: string): Promise<void> {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.page.getByRole('button', { name: 'Select file(s)' }).click();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n async downloadFile(filename: string): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.page.on('download', () => {});\n const downloadPromise = this.page.waitForEvent('download');\n await this.page\n .locator('li')\n .filter({ hasText: '' + filename + '' })\n .click();\n await downloadPromise;\n }\n\n async deleteAttachment(fileName: string): Promise<void> {\n await this.page.locator('li').filter({ hasText: fileName }).click();\n await this.page.getByLabel('delete file').click();\n await this.page.getByRole('button', { name: 'Delete' }).waitFor({ state: 'visible' });\n await this.page.getByRole('button', { name: 'Delete' }).click();\n }\n\n async expectWithNoAttachment(tempFile: string): Promise<void> {\n const test = await this.page.locator('.task-attachments-grid .file-item-text').count();\n if (test > 0) {\n await expect(this.page.locator('.task-attachments-grid .file-item-text')).not.toContainText(tempFile);\n } else {\n await expect(this.page.locator('.task-attachments-grid .file-item-text')).not.toBeVisible();\n }\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport moment from 'moment';\n\nexport class ReleasePropertiesPage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async editReleaseName(name: string): Promise<void> {\n await this.page.locator('#release-form-title').clear();\n await this.page.locator('#release-form-title').fill(name);\n }\n\n async setDescription(description: string): Promise<void> {\n await this.page.locator('.display > .xl-icon').first().click();\n await this.page.locator('textarea').click();\n await this.page.locator('textarea').clear();\n await this.page.locator('textarea').fill(description);\n await this.page.getByText('Save').first().click();\n }\n\n async setScriptUsername(username: string): Promise<void> {\n await this.page.getByPlaceholder('Set user...').waitFor();\n await this.page.getByPlaceholder('Set user...').click();\n await this.page.locator('input[name=\"\"]').fill(username, { timeout: 2000 });\n }\n\n async setScriptUserPassword(password: string): Promise<void> {\n await this.page.locator('span[name=\"scriptUserPassword\"]').waitFor();\n await this.page.locator('span[name=\"scriptUserPassword\"]').click();\n await this.page.locator('input[name=\"scriptUserPassword\"]').fill(password, { timeout: 2000 });\n }\n\n async save(): Promise<void> {\n await this.page.getByRole('button', { name: 'Save' }).waitFor();\n await this.page.getByRole('button', { name: 'Save' }).click();\n await expect(this.page.locator('.form-footer .last-saved')).toBeVisible();\n }\n\n async reset(): Promise<void> {\n await this.page.getByRole('button', { name: 'Reset' }).waitFor();\n await this.page.getByRole('button', { name: 'Reset' }).click();\n }\n\n async expectWithAttachment(filename: string): Promise<void> {\n await expect(this.page.locator('.attachments tr td a').filter({ hasText: filename })).toBeVisible();\n }\n\n async getAttachmentsListCount(): Promise<number> {\n return await this.page.locator('.attachments tr').count();\n }\n\n async uploadFile(filePath: string): Promise<void> {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.page.locator('input[type=\"file\"]').click();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n async expectWithNoAttachment(filename: string): Promise<void> {\n const test = await this.page.locator('.attachments').isVisible();\n if (test) {\n await expect(this.page.locator('.attachments tr td a').filter({ hasText: filename })).not.toBeVisible();\n }\n }\n\n async downloadFile(filename: string): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const downloadPromise1 = this.page.waitForEvent('download');\n await this.page.getByText(filename).click();\n const download = await downloadPromise1;\n // Wait for the download process to complete and save the downloaded file in given path.\n await download.saveAs('./core/xlr-ui/build/playwright/' + download.suggestedFilename());\n expect(download.suggestedFilename()).toBe(filename);\n }\n\n async deleteAttachment(fileName: string): Promise<void> {\n await this.page.getByRole('row', { name: fileName }).locator('span').click();\n await this.page.getByText('Remove').click();\n }\n\n async expectVariableDisplayed(variable: string, present: boolean): Promise<void> {\n if (present)\n await expect(this.page.locator(`#release-properties .form-group`, { hasText: variable })).toHaveCount(1);\n else await expect(this.page.locator(`#release-properties .form-group`, { hasText: variable })).toHaveCount(0);\n }\n\n async setScheduledStartDate(date?: string, monthYear?: string): Promise<void> {\n await this.page.locator(`.scheduled-start-date .date`).click();\n const prev = this.page.locator('.datepicker-days .prev');\n const next = this.page.locator('.datepicker-days .next');\n const monYear = this.page.locator('.datepicker-days .datepicker-switch');\n\n const thisMonth = moment(monthYear, 'MMMM YYYY').isBefore();\n\n while ((await monYear.textContent()) != monthYear) {\n if (thisMonth) {\n await prev.click();\n } else {\n await next.click();\n }\n }\n await this.page\n .getByRole('cell', { name: '' + date + '' })\n .first()\n .click();\n }\n\n async setScheduledStartTime(hrs?: string, mins?: string, meridian?: string): Promise<void> {\n await this.page.locator('.scheduled-start-date .time-picker-holder').click();\n if (typeof hrs !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-hour').click();\n await this.page.locator('.bootstrap-timepicker-hour').clear();\n await this.page.locator('.bootstrap-timepicker-hour').fill(hrs);\n }\n if (typeof mins !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-minute').click();\n await this.page.locator('.bootstrap-timepicker-minute').clear();\n await this.page.locator('.bootstrap-timepicker-minute').fill(mins);\n }\n if (typeof meridian !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-meridian').click();\n await this.page.locator('.bootstrap-timepicker-meridian').clear();\n await this.page.locator('.bootstrap-timepicker-meridian').fill(meridian);\n }\n await this.page.keyboard.press('Escape');\n }\n\n async setDuration(days?: string, hours?: string, mins?: string): Promise<void> {\n await this.page.locator('.duration-editor').click();\n if (typeof days !== 'undefined') {\n await this.page.locator('.days').click();\n await this.page.locator('.days').clear();\n await this.page.locator('.days').fill(days);\n }\n if (typeof hours !== 'undefined') {\n await this.page.locator('.hours').click();\n await this.page.locator('.hours').clear();\n await this.page.locator('.hours').fill(hours);\n }\n if (typeof mins !== 'undefined') {\n await this.page.locator('.minutes').click();\n await this.page.locator('.minutes').clear();\n await this.page.locator('.minutes').fill(mins);\n }\n await this.page.keyboard.press('Escape');\n }\n\n async expectScheduledStartDateToBe(date: string): Promise<void> {\n expect(await this.page.locator(`.scheduled-start-date .date input`).getAttribute('value')).toContain(date);\n }\n\n async expectScheduledStartTimeToBe(date: string): Promise<void> {\n expect(await this.page.locator(`.scheduled-start-date .time input`).getAttribute('value')).toContain(date);\n }\n\n async expectDueDateToBe(date: string): Promise<void> {\n expect(await this.page.locator('.due-date .date input').getAttribute('value')).toContain(date);\n }\n\n async expectedDueDateTime(time: string): Promise<void> {\n expect(await this.page.locator('.due-date .time input').getAttribute('value')).toContain(time);\n }\n\n async expectDurationToBe(duration: string): Promise<void> {\n expect(await this.page.locator('.duration-editor').textContent()).toBe(duration);\n }\n\n async setDueDate(hrs?: string, min?: string, meridian?: string): Promise<void> {\n await this.page.locator('.due-date .time-picker-holder').click();\n if (typeof hrs !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-hour').click();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-hour').clear();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-hour').fill(hrs);\n }\n if (typeof min !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-minute').click();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-minute').clear();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-minute').fill(min);\n }\n if (typeof meridian !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-meridian').click();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-meridian').clear();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-meridian').fill(meridian);\n }\n await this.page.keyboard.press('Escape');\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport moment from 'moment';\n\nexport class DateUtil extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async openDatePicker(selector: string): Promise<void> {\n await this.page.locator(`${selector} .date`).click();\n }\n\n /**\n * Setting date, month and year from calendar picker\n */\n async setDate(date?: string, monthYear?: string): Promise<void> {\n const prev = this.page.locator('.datepicker-days .prev');\n const next = this.page.locator('.datepicker-days .next');\n const monYear = this.page.locator('.datepicker-days .datepicker-switch');\n\n const thisMonth = moment(monthYear, 'MMMM YYYY').isBefore();\n while ((await monYear.textContent()) != monthYear) {\n if (thisMonth) {\n await prev.click();\n } else {\n await next.click();\n }\n }\n await this.page\n .getByRole('cell', { name: '' + date + '' })\n .first()\n .click();\n }\n\n async expectDurationToBe(duration: string): Promise<void> {\n expect(await this.page.locator('.duration-editor').textContent()).toBe(duration);\n }\n\n async setDuration(days?: string, hours?: string, mins?: string): Promise<void> {\n await this.page.locator('.duration-editor').click();\n if (typeof days !== 'undefined') {\n await this.page.locator('.days').fill(days);\n }\n if (typeof hours !== 'undefined') {\n await this.page.locator('.hours').fill(hours);\n }\n if (typeof mins !== 'undefined') {\n await this.page.locator('.minutes').fill(mins);\n }\n await this.page.keyboard.press('Enter');\n }\n\n async expectTimeToBe(selector: string, format: string, date: Date | string): Promise<void> {\n if (typeof date === 'string') {\n date = new Date(date);\n }\n const formattedDate = moment(date).format(format);\n const input = this.page.locator(`${selector}`);\n await expect(input).toBeVisible();\n const value = await input.inputValue();\n expect(value).toBe(formattedDate);\n }\n}\n","import * as fs from 'fs';\nimport path from 'path';\nimport { WithPage } from '../WithPage';\nimport { Locator, Page, expect } from '@playwright/test';\n\nexport class Util extends WithPage {\n tempDir: string;\n content: string;\n closeIcon: Locator;\n\n constructor(page: Page) {\n super(page);\n this.tempDir = '';\n this.content = '';\n this.closeIcon = this.page.locator('.xl-icon.close-icon');\n }\n\n async createTempFile(fileName: path.ParsedPath | string, testInfo: any): Promise<void> {\n const content = fileName.toString();\n const tempDir = testInfo.outputPath(fileName.toString());\n fs.promises.writeFile(tempDir, content, 'utf8');\n }\n\n async expandAllFolders(): Promise<void> {\n const icExpandTreeview1 = this.page.locator('.rstm-toggle-icon.xl-icon.arrow-right-icon');\n for (const element of await icExpandTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.expandAllFolders();\n }\n }\n await expect(icExpandTreeview1).not.toBeVisible();\n }\n\n async openSideNavMenu(menuItem: string): Promise<void> {\n await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }).click();\n }\n\n async clickCloseIcon(): Promise<void> {\n await this.closeIcon.click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class ApplicationsPage extends WithPage {\n async goToApplicationsPage(): Promise<this> {\n await this.page.goto('./#/applications');\n await expect(this.page).toHaveTitle('Applications - Digital.ai Release');\n return this;\n }\n\n async addNewApplication(applicationName: string): Promise<this> {\n await this.page.locator(`//button[normalize-space()='New application']`).click();\n await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);\n await this.page.locator(`//button[normalize-space()='Save']`).click();\n return this;\n }\n\n async verifyApplicationisCreated(applicationName: string): Promise<this> {\n await this.page.waitForSelector(`div[title='${applicationName}'] strong`);\n return this;\n }\n\n async createApplicationAndLinkEnvironment(environmentName: string, applicationName: string): Promise<this> {\n await this.page.locator(`//button[normalize-space()='New application']`).click();\n await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);\n await this.page.locator(\"input[placeholder='Filter environment name...']\").type(environmentName);\n await this.page.locator(`div[title='${environmentName}']`).click();\n await this.page.locator(`//button[normalize-space()='Save']`).click();\n await this.page.locator('i.xl-icon.close-icon').click();\n return this;\n }\n}\n","export class DataRandomGenerator {\n static codePointA = 65;\n static codePointZ = 90;\n\n static getString(): string {\n return Math.random().toString(36).substring(2);\n }\n\n static getNumber(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1) + min);\n }\n\n static getAlphabetsString(length: number): string {\n let alphabets = '';\n for (let i = 0; i < length; i++) {\n alphabets += String.fromCharCode(\n DataRandomGenerator.getNumber(DataRandomGenerator.codePointA, DataRandomGenerator.codePointZ),\n );\n }\n return alphabets;\n }\n}\n","import { expect, Locator, Page } from '@playwright/test';\nimport { WithPage } from './WithPage';\nimport { Util } from './common/util';\nimport { FolderPatternPage } from './folder/folderPatternPage';\n\nexport class FolderPage extends WithPage {\n expandButton: Locator;\n patternPage: FolderPatternPage;\n util: Util;\n\n constructor(page: Page) {\n super(page);\n this.patternPage = new FolderPatternPage(page);\n this.util = new Util(page);\n this.expandButton = this.page.getByRole('button', { name: ' Expand' });\n }\n\n async openFoldersPage(): Promise<this> {\n await this.page.goto('./#/folders');\n await expect(this.page).toHaveTitle('Folders - Digital.ai Release');\n return this;\n }\n\n async backToAllFolders(): Promise<this> {\n await this.page.locator('.icon-back.dot-i').click();\n await expect(this.page).toHaveTitle('Folders - Digital.ai Release');\n await this.page.locator('button.btn-add-folder').isVisible();\n return this;\n }\n\n async createFolder(folderName: string): Promise<this> {\n await this.page.locator('button.btn-add-folder').click();\n await this.page.locator('div.xl-react-component-input-wrapper').type(folderName);\n await this.page.locator('button.xl-react-button.button.primary').click();\n await this.page.locator(`//button[normalize-space()='Add release']`).isVisible();\n return this;\n }\n\n async openFolder(folderName: string): Promise<this> {\n await this.page.locator(`.folder-row-wrapper span:text-is('${folderName}')`).click();\n return this;\n }\n\n async openGroups(): Promise<this> {\n await this.util.openSideNavMenu('Groups');\n await expect(this.page.getByLabel('breadcrumb').getByText('Groups')).toBeVisible();\n return this;\n }\n\n async createGroup(groupName: string): Promise<this> {\n await this.page.locator(\"//button[normalize-space()='New release group']\").click();\n await this.page.locator('#title').type(groupName);\n await this.page.locator(\"button[type='submit']\").click();\n return this;\n }\n\n async selectPlannedStatus(): Promise<this> {\n await this.page.locator('.remaining-tags').click();\n await this.page.locator('.xl-react-link:text-is(\"Clear all\")').click();\n await this.page.locator('.react-tagsinput').click();\n await this.page.locator(`.yt-option[title=Planned]`).click();\n await this.page.locator(\"//span[normalize-space()='Status']\").click();\n return this;\n }\n\n async expectReleaseGroupisDisplayed(title: string): Promise<this> {\n //await this.page.locator(`.fc-list-item-title-wrapper .fc-list-item-title strong:text-is('${title}`).isVisible()\n await this.page.waitForSelector(`.fc-list-item-title-wrapper .fc-list-item-title strong:text-is('${title}')`);\n return this;\n }\n\n async createSubFolder(parentFolder: string, subFolderName: string): Promise<void> {\n await this.expandButton.click();\n await this.page.getByRole('link', { name: parentFolder }).hover();\n await this.clickFolderOptions(parentFolder, 'add');\n await this.page.getByRole('textbox').fill(subFolderName);\n await this.page.getByRole('button', { name: 'Create' }).click();\n await expect(this.page.getByRole('link', { name: subFolderName })).toBeVisible();\n }\n\n async renameFolder(existingFolderName: string, newFolderName: string): Promise<void> {\n await this.expandButton.click();\n await this.page.getByRole('link', { name: existingFolderName }).hover();\n await this.clickFolderOptions(existingFolderName, 'edit');\n await this.page.locator('.folder-row-wrapper input').click();\n await this.page.locator('.folder-row-wrapper input').fill(newFolderName);\n await this.page.keyboard.press('Enter');\n await expect(this.page.getByRole('link', { name: newFolderName })).toBeVisible();\n }\n\n async deleteFolder(folderName: string): Promise<void> {\n await this.expandButton.click();\n await this.page.getByRole('link', { name: folderName }).hover();\n await this.clickFolderOptions(folderName, 'delete');\n await expect(this.page.getByRole('heading', { name: 'Delete folder' }).locator('span')).toBeVisible();\n await expect(\n this.page\n .locator('.xl-react-modal .confirmation-content')\n .getByText(\n 'You are about to delete the folder ' +\n folderName +\n '. Folders nested in ' +\n folderName +\n ' will also be deleted.',\n ),\n ).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.page.getByRole('link', { name: folderName })).not.toBeVisible();\n }\n\n async searchFolderByName(folderName: string): Promise<void> {\n await this.page.getByPlaceholder('Search folder...').click();\n await this.page.getByPlaceholder('Search folder...').clear();\n await this.page.getByPlaceholder('Search folder...').fill(folderName);\n await this.page.getByPlaceholder('Search folder...').press('Enter');\n await expect(this.page.getByRole('link', { name: folderName })).toBeVisible();\n }\n\n async openPatterns(): Promise<FolderPatternPage> {\n await this.util.openSideNavMenu('Patterns');\n await expect(this.page.getByLabel('breadcrumb').getByText('Patterns')).toBeVisible();\n return this.patternPage;\n }\n\n async clickFolderOptions(folderName: string, option: string): Promise<void> {\n await this.page.locator('.folder-row-wrapper', { hasText: folderName }).locator(`.xl-icon.${option}-icon`).click();\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { Util } from '../common/util';\n\nexport class FolderPatternPage extends WithPage {\n util: Util;\n addName: Locator;\n addDescription: Locator;\n constructor(page: Page) {\n super(page);\n this.util = new Util(page);\n this.addName = page.locator('.xl-react-components input[placeholder=\"Add...\"]');\n this.addDescription = page.getByPlaceholder('Set description...');\n }\n\n async clickNewDeliveryPattern(): Promise<void> {\n await this.page.getByTestId('dot-button').click();\n await expect(this.page.getByRole('heading', { name: 'Create delivery pattern' })).toBeVisible();\n }\n\n async setPatternName(patternName: string): Promise<void> {\n await this.addName.click();\n await this.addName.clear();\n await this.addName.fill(patternName);\n }\n\n async setPatternDescription(patternDescription: string): Promise<void> {\n await this.page.getByPlaceholder('Set description...').click();\n await this.page.getByPlaceholder('Set description...').clear();\n await this.page.getByPlaceholder('Set description...').fill(patternDescription);\n }\n\n async enableAutoComplete(): Promise<void> {\n await this.page.getByRole('checkbox').check();\n }\n\n async disableAutoComplete(): Promise<void> {\n await this.page.getByRole('checkbox').uncheck();\n }\n\n async setDuration(month: number, days: number, hours: number): Promise<void> {\n await this.page.getByRole('group', { name: 'Pattern details' }).getByRole('textbox').click();\n await this.page.locator('input[name=\"months\"]').click();\n await this.page.locator('input[name=\"months\"]').fill(month.toString());\n await this.page.locator('input[name=\"days\"]').click();\n await this.page.locator('input[name=\"days\"]').fill(days.toString());\n await this.page.locator('input[name=\"hours\"]').click();\n await this.page.locator('input[name=\"hours\"]').fill(hours.toString());\n }\n\n async createNewPattern(patternName: string, patternDescription: string): Promise<void> {\n await this.clickNewDeliveryPattern();\n await this.setPatternName(patternName);\n await this.setPatternDescription(patternDescription);\n await expect(this.page.locator('#action-toolbar').filter({ hasText: 'Create' })).toBeEnabled();\n await this.page.locator('#action-toolbar').filter({ hasText: 'Create' }).dblclick();\n await expect(this.page.getByLabel('breadcrumb').getByText('Delivery flow')).toBeVisible();\n }\n\n async clickEditPatternIcon(patternName: string): Promise<void> {\n await this.page.locator('.delivery-pattern-row').filter({ hasText: patternName }).locator('.edit').click();\n await expect(this.page.getByLabel('breadcrumb').getByText('Delivery flow')).toBeVisible();\n }\n\n async clickCopyPatternIcon(patternName: string): Promise<void> {\n await this.page.locator('.delivery-pattern-row').filter({ hasText: patternName }).locator('.copy').click();\n await expect(this.page.getByText('Copy delivery pattern')).toBeVisible();\n }\n\n async filterPatternByName(patternName: string): Promise<void> {\n await this.page.getByPlaceholder('Filter by name...').click();\n await this.page.getByPlaceholder('Filter by name...').clear();\n await this.page.getByPlaceholder('Filter by name...').fill(patternName);\n await this.page.getByPlaceholder('Filter by name...').press('Enter');\n await expect(this.page.locator('.delivery-pattern-row').filter({ hasText: patternName })).toBeVisible();\n }\n\n async openProperties(): Promise<Properties> {\n await this.util.openSideNavMenu('Properties');\n return new Properties(this.page);\n }\n\n async back(): Promise<void> {\n await this.page.getByTestId('back-button').click();\n }\n\n async copyPattern(existingPatternName: string, NewPatternName: string): Promise<void> {\n await this.clickCopyPatternIcon(existingPatternName);\n await this.page\n .locator('.confirmation-content .xl-react-component-input-wrapper input[placeholder=\"Add...\"]')\n .click();\n await this.page.locator('.confirmation-content .close-icon').click();\n await this.addName.fill(NewPatternName);\n await this.page.getByRole('button', { name: 'Continue' }).click();\n await expect(this.page.getByLabel('breadcrumb').getByText('Delivery flow')).toBeVisible();\n }\n\n async clickDeletePattern(patternName: string): Promise<void> {\n await this.page.locator('.delivery-pattern-row').filter({ hasText: patternName }).locator('.delete').click();\n await expect(this.page.getByText('Delete delivery pattern', { exact: true })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.page.locator('.delivery-pattern-row').filter({ hasText: patternName })).not.toBeVisible();\n }\n}\nclass Properties extends WithPage {\n addName: Locator;\n addDescription: Locator;\n constructor(page: Page) {\n super(page);\n this.addName = page.locator('.xl-react-components input[placeholder=\"Add...\"]');\n this.addDescription = page.getByPlaceholder('Set description...');\n }\n\n async editName(name: string): Promise<void> {\n await this.addName.click();\n await this.addName.clear();\n await this.addName.fill(name);\n }\n\n async editDescription(description: string): Promise<void> {\n await this.page.getByPlaceholder('Set description...').click();\n await this.page.getByPlaceholder('Set description...').clear();\n await this.page.getByPlaceholder('Set description...').fill(description);\n }\n\n async editDuration(month: number, days: number, hours: number): Promise<void> {\n await this.page.getByRole('group', { name: 'Pattern details' }).getByRole('textbox').click();\n await this.page.locator('input[name=\"months\"]').click();\n await this.page.locator('input[name=\"months\"]').fill(month.toString());\n await this.page.locator('input[name=\"days\"]').click();\n await this.page.locator('input[name=\"days\"]').fill(days.toString());\n await this.page.locator('input[name=\"hours\"]').click();\n await this.page.locator('input[name=\"hours\"]').fill(hours.toString());\n }\n\n async save(): Promise<void> {\n await this.page.getByRole('button', { name: 'Save' }).click();\n expect(await this.page.locator('.saved-text').textContent()).toContain('Last saved on ');\n }\n}\n","import { Page, expect, Locator } from '@playwright/test';\nimport { WithPage } from './WithPage';\nimport { DateUtil } from './common/dateUtil';\n\nexport class GlobalVariable extends WithPage {\n addListValue: Locator;\n listAddButton: Locator;\n addVariableValue: Locator;\n addVariablelabel: Locator;\n constructor(page: Page) {\n super(page);\n this.addListValue = this.page.locator('.variable-selector .xl-components-input-full input');\n this.addVariableValue = this.page.locator('.variable-value .xl-components-input-full input');\n this.addVariablelabel = this.page.locator('.variable-label input');\n this.listAddButton = this.page.getByRole('button', { name: 'Add' });\n }\n\n async addVariableText(valuename: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('StringVariable');\n await this.page.locator('.variable-value').type(valuename);\n await this.submitTheVariable();\n }\n async addVariableListbox(possiblevalue: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('DropDownListBox');\n await this.addListValue.fill(possiblevalue);\n await this.listAddButton.click();\n await this.page.getByRole('combobox').nth(1).selectOption(possiblevalue);\n await this.submitTheVariable();\n }\n async addVariablePassword(possiblevalue: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('PasswordStringVariable');\n await this.page.locator('input[type=\"password\"]').type(possiblevalue);\n await this.submitTheVariable();\n }\n async addVariableCheckbox(): Promise<void> {\n await this.page.getByRole('combobox').selectOption('BooleanVariable');\n await this.page.getByRole('checkbox').check();\n await this.submitTheVariable();\n }\n async addVariableNumber(possiblevalue: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('IntegerVariable');\n await this.page.locator('input[ng-model=\"var.value\"]').fill(possiblevalue);\n await this.submitTheVariable();\n }\n async addVariableList(possiblevalue1: string, possiblevalue2: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('ListStringVariable');\n await this.addVariableValue.fill(possiblevalue1);\n await this.listAddButton.click();\n await this.addVariableValue.fill(possiblevalue2);\n await this.listAddButton.click();\n await this.submitTheVariable();\n }\n async addVariableMultiList(possiblevalue1: string, possiblevalue2: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('MultiSelectListBox');\n await this.addListValue.fill(possiblevalue1);\n await this.listAddButton.click();\n await this.addListValue.fill(possiblevalue2);\n await this.listAddButton.click();\n await this.page.locator('.react-tagsinput').click();\n await this.page.getByText('Select all', { exact: true }).click();\n await this.submitTheVariable();\n }\n async addVariableDate(): Promise<void> {\n await this.page.getByRole('combobox').selectOption('DateVariable');\n await this.page.getByText('Select date').click();\n }\n\n async setDate(date?: string, monthYear?: string): Promise<void> {\n const dateUtil = new DateUtil(this.page);\n await dateUtil.setDate(date, monthYear);\n }\n\n async addVariableKeyValueMap(keys1: string, values1: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('MapStringStringVariable');\n await this.page.getByPlaceholder('key').fill(keys1);\n await this.page.getByPlaceholder('Value').fill(values1);\n await this.listAddButton.click();\n await this.page.locator('.xl-map-string-string-div-buttons .search-icon').click();\n await this.page.getByRole('row', { name: 'Search' }).getByRole('textbox').fill(keys1);\n const detail = await this.page.locator('table.table-condensed span').allInnerTexts();\n await expect(detail[0]).toEqual(keys1);\n await expect(detail[1]).toEqual(values1);\n await this.submitTheVariable();\n }\n async addVariableSet(possiblevalue1: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('SetStringVariable');\n await this.page.locator('.dip-input input').fill(possiblevalue1);\n await this.listAddButton.click();\n await this.submitTheVariable();\n }\n async addNewVariable(variableName: string, labelname: string, description: string): Promise<void> {\n await this.page.getByRole('button', { name: 'New global variable' }).click();\n await this.page.locator(`div.input-group > input`).type(variableName);\n await this.addVariablelabel.fill(labelname);\n await this.page.locator('.variable-description input').fill(description);\n }\n\n async verifyGlobalVariableCreation(variableName: string): Promise<void> {\n await this.page.locator(\"[id='variables-filter']\").fill(variableName);\n await expect(this.page.locator('.variable.ui-sortable-handle').filter({ hasText: variableName })).toBeVisible();\n }\n async submitTheVariable(): Promise<void> {\n const pagesubmit = await this.page.locator('.button.save');\n await pagesubmit.hover();\n await pagesubmit.click();\n }\n async deleteGlobalVariable(variableName: string): Promise<void> {\n await this.page.locator(\"[id='variables-filter']\").fill(variableName);\n await this.page.getByText('Delete').click();\n await expect(this.page.locator('h4.ng-binding')).toContainText(variableName);\n await this.page.getByRole('button', { name: 'Cancel' }).click();\n await this.verifyGlobalVariableCreation(variableName);\n await this.page.getByText('Delete').click();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await this.page.locator('alert.notice.ng-scope').isVisible();\n }\n async editVariable(variableName: string, editedvariabletext: string): Promise<void> {\n await this.page.locator(\"[id='variables-filter']\").fill(variableName);\n await this.page.getByText('Edit').click();\n await this.addVariablelabel.clear();\n await this.addVariablelabel.fill(editedvariabletext);\n await this.page.getByRole('button', { name: 'Save' }).click();\n await expect(\n this.page.locator('.variable.ui-sortable-handle').getByText(editedvariabletext, { exact: true }),\n ).toBeVisible();\n }\n}\n","import { Page } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class HomePage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class PersonalAccessTokenPage extends WithPage {\n async openPersonalAccessTokenPage(): Promise<this> {\n // await this.page.locator(\"button.dot-avatar\").click()\n // await this.page.locator(\"//div[normalize-space()='Access tokens']\").click()\n await this.page.goto('./#/personal-access-token');\n await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release');\n return this;\n }\n\n async addNewToken(tokenName: string): Promise<this> {\n //await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release')\n\n await this.page.locator('#tokenText').fill(tokenName);\n await this.page.locator(\"button[type='submit']\").click();\n return this;\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { UserModal } from './userModal';\nimport { Util } from '../common/util';\n\nexport class UsersPage extends WithPage {\n page: Page;\n modal: UserModal;\n util: Util;\n constructor(page: Page) {\n super(page);\n this.page = page;\n this.modal = new UserModal(page);\n this.util = new Util(page);\n }\n\n async openUsersPage(): Promise<void> {\n this.page.goto('./#/users', { timeout: 1000 });\n }\n\n async toggleLoginPermission(username: string): Promise<void> {\n await this.page\n .getByRole('row', { name: '' + username + '' })\n .getByRole('checkbox')\n .click();\n await expect(this.page.getByRole('row', { name: '' + username + '' }).locator('.Mui-checked')).toBeChecked();\n }\n\n async addUser(): Promise<void> {\n await this.page.locator('.new-user-btn').click();\n }\n\n async createUser(username: string, password: string): Promise<void> {\n await this.modal.setUserName(username);\n await this.modal.setFullName(username);\n await this.modal.setEmail('testuser@company.com');\n await this.modal.setPassword(password);\n await this.modal.setConfirmPassword(password);\n await this.modal.save();\n }\n\n async expectToHaveLoginPermission(username: string): Promise<void> {\n return await expect(this.page.getByRole('row', { name: '' + username + '' }).getByRole('checkbox')).toBeChecked();\n }\n\n async deleteUser(username: string): Promise<void> {\n await this.page\n .getByRole('row', { name: '' + username + '' })\n .locator('i')\n .nth(1)\n .click();\n await this.modal.delete();\n }\n async openRoles(): Promise<void> {\n await this.util.openSideNavMenu('Roles');\n await expect(this.page.getByLabel('breadcrumb').getByText('Roles')).toBeVisible();\n }\n\n async openPermissions(): Promise<void> {\n await this.util.openSideNavMenu('Permissions');\n await expect(this.page.locator('.permissions-table-v2')).toBeVisible();\n }\n\n async openTaskAccess(): Promise<void> {\n await this.util.openSideNavMenu('Task access');\n await expect(this.page.getByLabel('breadcrumb').getByText('Task access')).toBeVisible();\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class UserModal extends WithPage {\n userName: Locator;\n name: Locator;\n email: Locator;\n password: Locator;\n cnfPassword: Locator;\n saveButton: Locator;\n cancelButton: Locator;\n deleteButton: Locator;\n constructor(page: Page) {\n super(page);\n this.userName = page.locator('#username');\n this.name = page.locator('#fullName');\n this.email = page.locator('#email');\n this.password = page.locator('#password');\n this.cnfPassword = page.locator('#confirmPassword');\n this.saveButton = page.getByTestId('save-btn');\n this.cancelButton = page.getByRole('button', { name: 'Cancel' });\n this.deleteButton = page.getByRole('button', { name: 'Delete' });\n }\n\n async setUserName(username: string): Promise<void> {\n return await this.userName.fill(username);\n }\n\n async setFullName(fullName: string): Promise<void> {\n return await this.name.fill(fullName);\n }\n\n async setEmail(email: string): Promise<void> {\n return await this.email.fill(email);\n }\n\n async setPassword(password: string): Promise<void> {\n return await this.password.fill(password);\n }\n\n async setConfirmPassword(cnfPassword: string): Promise<void> {\n return await this.cnfPassword.fill(cnfPassword);\n }\n\n async save(): Promise<void> {\n await this.saveButton.isEnabled();\n await expect(this.saveButton).not.toBeDisabled();\n await this.saveButton.focus();\n await this.saveButton.click();\n }\n\n async cancel(): Promise<void> {\n await this.cancelButton.click();\n }\n\n async delete(): Promise<void> {\n await this.deleteButton.click();\n }\n}\n","import { Locator, Page } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class SettingsMenu extends WithPage {\n settingsIcon: Locator;\n usersAndPermissionMenu: Locator;\n managePluginMenu: Locator;\n constructor(page: Page) {\n super(page);\n this.settingsIcon = this.page.getByRole('button', { name: 'Settings' });\n this.usersAndPermissionMenu = this.page.getByRole('menuitem', { name: 'users icon Users and permissions' });\n this.managePluginMenu = this.page.getByRole('menuitem', { name: 'plugins icon Manage plugins' });\n }\n\n async openUsersAndPermissions(): Promise<void> {\n await this.settingsIcon.click();\n await this.usersAndPermissionMenu.click();\n }\n\n async openManagePlugin(): Promise<void> {\n await this.settingsIcon.click();\n await this.managePluginMenu.click();\n }\n}\n","import { Page } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class TaskDetails extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class ReleaseCalendarPage extends WithPage {\n private dayFormat!: string;\n private yearFormat!: number;\n private monthFormat!: string;\n private yearFormatString!: string;\n\n async openReleaseCalendarPage(): Promise<this> {\n await this.page.goto('./#/calendar');\n //Define date format to verify different calendar views\n const today = new Date();\n let options: Intl.DateTimeFormatOptions = {\n weekday: 'long',\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n };\n this.dayFormat = today.toLocaleDateString('en-US', options); // Saturday, September 17, 2016\n this.yearFormat = today.getFullYear();\n this.yearFormatString = this.yearFormat.toString();\n options = { month: 'long', year: 'numeric' };\n this.monthFormat = today.toLocaleDateString('en-US', options);\n this.monthFormat = this.monthFormat.replace(/(\\w+) (\\d+)/, '$1, $2');\n await expect(this.page).toHaveTitle('Release calendar / Home - Digital.ai Release');\n return this;\n }\n\n async exportCalendar(): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.page.on('download', () => {});\n await this.page.getByRole('button', { name: 'download icon Export calendar' }).click();\n const downloadPromise = this.page.waitForEvent('download');\n await this.page.getByRole('button', { name: 'Export' }).click();\n await downloadPromise;\n }\n\n async cancelCalendarExport(): Promise<number> {\n let downloadCount = 0;\n // Listen to download events\n this.page.on('download', (_download) => {\n downloadCount++;\n });\n await this.page.getByRole('button', { name: 'download icon Export calendar' }).click();\n await this.page.getByRole('button', { name: 'Cancel' }).click();\n return downloadCount;\n }\n\n async verifyDayView(): Promise<void> {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Day' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n //Verify Page has correct day format displayed at the page bottom\n await expect(this.page.getByText(this.dayFormat)).toBeVisible();\n }\n\n async verifyYearView(): Promise<void> {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Year' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n //Verify Page has correct Year format displayed at the page bottom\n await expect(this.page.locator('.tl-footer-label').filter({ hasText: this.yearFormatString })).toHaveText(\n this.yearFormatString,\n );\n }\n\n async verifyMonthView(): Promise<void> {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Month' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n //Verify Page has correct Year format displayed at the page bottom\n await expect(this.page.locator('.tl-footer-label').filter({ hasText: this.monthFormat })).toHaveText(\n this.monthFormat,\n );\n }\n\n async verifyPageContent(title: string): Promise<void> {\n const view_type = ['Day', 'Week', 'Month', 'Year'];\n for (const view of view_type) {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: view }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n //Verify Page has correct Year format displayed at the page bottom\n await expect(this.page.getByText(title)).toBeVisible();\n }\n }\n\n async filterReleaseByTitle(title: string): Promise<void> {\n await this.page.getByPlaceholder('Filter by release title').click();\n await this.page.getByPlaceholder('Filter by release title').fill(title);\n await this.page.getByPlaceholder('Filter by release title').press('Enter');\n //Verify Page has correct Year format displayed at the page bottom\n await this.verifyPageContent(title);\n }\n\n async filterReleaseByTags(tags: string[], release_title: string): Promise<void> {\n await this.page.locator('.tl-filter-release-tags').locator('.react-tagsinput').click();\n for (let tag of tags) {\n tag = tag.toString();\n await this.page.locator('.tl-filter-release-tags').locator('.react-tagsinput-input').fill(tag);\n await this.page.getByTitle(tag).locator('i').click();\n }\n await this.verifyPageContent(release_title);\n }\n\n async filterTaskByTags(tags: string[], task_title: string, release_title: string): Promise<void> {\n await this.page.locator('.tl-filter-task-tags').locator('.react-tagsinput').click();\n for (let tag of tags) {\n tag = tag.toString();\n await this.page.locator('.tl-filter-task-tags').locator('.react-tagsinput-input').fill(tag);\n await this.page.getByTitle(tag).locator('i').click();\n }\n //Make sure task is visible on calnedar page\n await this.verifyPageContent(task_title);\n //Make sure parent release of the selected task is visible on calnedar page\n await this.verifyPageContent(release_title);\n }\n\n async filterReleaseByStatus(release_status: string, release_title: string): Promise<void> {\n if (!(await this.page.locator('.tl-filter-advanced').isVisible())) {\n await this.page.getByRole('button', { name: 'Advanced filters' }).click();\n }\n await this.page.locator('.tl-filter-release-status').locator('.react-tagsinput').click();\n await this.page.getByTitle(release_status).locator('i').first().click();\n await this.verifyPageContent(release_title);\n }\n\n async filterReleaseByRisk(release_risk: string, release_title: string): Promise<void> {\n if (!(await this.page.locator('.tl-filter-advanced').isVisible())) {\n await this.page.getByRole('button', { name: 'Advanced filters' }).click();\n }\n await this.page.locator('.tl-filter-risk-filter').getByRole('combobox').click();\n await this.page.getByRole('option', { name: release_risk }).click();\n await this.verifyPageContent(release_title);\n }\n\n async filterFlaggedRelease(release_title: string): Promise<void> {\n if (!(await this.page.locator('.tl-filter-advanced').isVisible())) {\n await this.page.getByRole('button', { name: 'Advanced filters' }).click();\n }\n if (\n await this.page.locator('.tl-filter-flag-only.btn.btn-flat.btn-fixed.button-toggle-filter.active').isVisible()\n ) {\n await this.page.getByRole('button', { name: ' Flagged' }).click();\n }\n await this.verifyPageContent(release_title);\n }\n\n async viewRelease(release_title: string, release_id: string): Promise<void> {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Day' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n await this.page.getByText(release_title).click();\n await this.page.locator('.release-modal-container').locator('.xl-icon.release-icon').click();\n const releaseurl = `/#/releases/${release_id}`;\n const currentURL = await this.page.url();\n // Check if the release name present in redirected URL\n expect(currentURL).toContain(releaseurl);\n }\n\n async viewDependency(source_release: string, dest_release: string): Promise<void> {\n const source_text = source_release + 'dependencies';\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Day' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n await this.page.getByText(source_release).click();\n await this.page.locator('.release-modal-container').locator('.xl-icon.cluster-dependencies-icon').click();\n await expect(this.page.locator('.tl-drawer-navigation-header')).toHaveText(source_text);\n await expect(this.page.locator('.tl-drawer-dependency-body-title-text')).toHaveText(dest_release);\n }\n\n async downloadIcsCalendar(release_title: string): Promise<number> {\n let downloadCount = 0;\n // Listen to download events\n this.page.on('download', (_download) => {\n downloadCount++;\n });\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Day' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n await this.page.getByText(release_title).click();\n await this.page.locator('.release-modal-container').locator('.xl-icon.calendar-icon').click();\n return downloadCount;\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class ReleaseGroupPage extends WithPage {\n private dayFormat!: string;\n private yearFormat!: number;\n private monthFormat!: string;\n private yearFormatString!: string;\n\n async setStatus(status: string): Promise<void> {\n await this.page.locator('.react-tagsinput').click({ force: true });\n await this.page.getByText('Clear all').click();\n await this.page.locator('.react-tagsinput').click({ force: true });\n if (status === 'Select all') {\n await this.page.getByText(status).click();\n } else {\n await this.page.getByTitle(status).locator('i').first().click();\n }\n }\n\n async openReleaseGroup(title: string): Promise<void> {\n await this.page.locator('xlr-release-group-row').filter({ hasText: title }).getByRole('link').click();\n await this.page.getByTitle(title).click();\n await expect(this.page).toHaveURL(/.*ReleaseGroup/);\n }\n\n async expectReleaseGroupStatus(status: string): Promise<void> {\n await expect(this.page.locator('.release-status')).toContainText(status);\n }\n\n async expectReleaseGroupDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).toBeVisible();\n }\n\n async expectReleaseGroupNotDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).not.toBeVisible();\n }\n\n async searchReleaseGroupByTitle(title: string): Promise<void> {\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).click();\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).fill(title);\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).press('Enter');\n }\n\n async deleteReleaseGroup(title: string): Promise<void> {\n await this.page.locator('.fc-list-item-line').filter({ hasText: title }).locator('.fc-item-delete').click();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n }\n\n async clickReleaseGroupEdit(title: string): Promise<void> {\n await this.page.locator('.fc-list-item-line').filter({ hasText: title }).locator('.fc-item-update').click();\n }\n\n async enterReleaseGroupDetails(new_title: string): Promise<void> {\n await this.page.locator('.modal-body').locator('#title').fill(new_title);\n }\n\n async clickSaveButton(): Promise<void> {\n await this.page.locator('.modal-footer').getByRole('button', { name: 'Save' }).click();\n }\n\n async clickCancelButton(): Promise<void> {\n await this.page.locator('.modal-footer').getByRole('button', { name: 'Cancel' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class ReleaseGroupTimelinePage extends WithPage {\n async expectReleaseDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).toBeVisible();\n }\n\n async expectReleaseNotDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).not.toBeVisible({ timeout: 10000 });\n }\n\n async expectPhaseDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).toBeVisible();\n }\n\n async openContextMenu(title: string): Promise<void> {\n await this.page.locator('.timeline-row-name').filter({ hasText: title }).locator('.options-icon').click();\n }\n\n async removeFromReleaseGroup(): Promise<void> {\n await this.page.getByRole('menuitem', { name: 'Remove from group' }).locator('a').click();\n await this.page.getByRole('button', { name: 'Remove' }).click();\n }\n\n async expectNumberOfReleases(num_of_release: number): Promise<void> {\n const elementCount = await this.page.locator('.timeline-row-name-release').count();\n expect(elementCount).toBe(num_of_release);\n }\n\n async openAddReleaseList(): Promise<void> {\n await this.page.getByRole('button', { name: 'Add release' }).click();\n }\n\n async filterReleases(title: string): Promise<void> {\n await this.page.getByPlaceholder('Search for a release...').click();\n await this.page.getByPlaceholder('Search for a release...').fill(title);\n await this.page.waitForTimeout(5000);\n await this.page.getByPlaceholder('Search for a release...').press('Enter');\n }\n\n async expectNumberOfReleasesOnModal(num_of_release: number): Promise<void> {\n const elementCount = await this.page.locator('.release-modal-line').count();\n expect(elementCount).toBe(num_of_release);\n }\n\n async selectAllReleaseCheckbox(): Promise<void> {\n await this.page.getByLabel('Select all').check();\n }\n\n async addReleasesToGroup(): Promise<void> {\n await this.page.getByRole('button', { name: 'Add' }).click();\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { TaskDrawer } from '../task-drawer/taskDrawer';\n\nexport class TaskListPage extends WithPage {\n taskDrawer: TaskDrawer;\n commentBox: Locator;\n\n constructor(page: Page) {\n super(page);\n this.taskDrawer = new TaskDrawer(page);\n this.commentBox = this.page.locator(`.input-block-level`);\n }\n\n async openTask(taskName: string): Promise<void> {\n await this.filterTaskByTitle(taskName);\n await this.page.getByText(taskName).first().click();\n }\n\n async skip(taskName: string, comment: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).locator('span.skip').click();\n await this.commentBox.click();\n await this.commentBox.fill(comment);\n await this.page.getByRole('button', { name: 'Skip', exact: true }).click();\n }\n\n async fail(taskName: string, comment: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).locator('span.fail').click();\n await this.commentBox.click();\n await this.commentBox.fill(comment);\n await this.page.getByRole('button', { name: 'Fail', exact: true }).click();\n }\n\n async waitForTaskFailed(taskName: string): Promise<void> {\n await expect(this.page.locator(`.row.task-inner`, { hasText: taskName }).getByText('Failed')).toBeVisible();\n }\n\n async waitForTaskInProgress(taskName: string): Promise<void> {\n await expect(this.page.locator(`.row.task-inner`, { hasText: taskName }).getByText('In progress')).toBeVisible();\n }\n\n async openTaskInReleaseView(taskName: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).locator('a.view-in-release').click();\n }\n\n async openCalendarViaTaskDueDate(taskName: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).locator(`.calendar-link a`).click();\n }\n\n async openTaskDrawer(taskName: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).getByText(taskName).click();\n }\n\n async filterTaskByTitle(taskname: string): Promise<void> {\n await this.page.locator('.searchFilter').click();\n await this.page.locator('.searchFilter').fill(taskname);\n await this.page.locator('.searchFilter').press('Enter');\n await expect(this.page.locator('//div[@data-task-title]').filter({ hasText: taskname }).first()).toBeVisible();\n }\n\n async filterTasksByTag(tag: string, taskTitleForValidation: string): Promise<void> {\n await this.page.locator('.toggle-search-filter').click();\n await this.page.locator('.tag-input').fill(tag);\n await this.page.locator('.tag-input').press('Enter');\n //TODO: Validation can be changed based on actual test case implementation\n await expect(\n this.page.locator('//div[@data-task-title]').filter({ hasText: taskTitleForValidation }),\n ).toBeVisible();\n }\n\n async filterTasksByReleaseTitle(releaseTitle: string): Promise<void> {\n await this.page.locator('.toggle-search-filter').click();\n await this.page.locator('.release-input').fill(releaseTitle);\n await this.page.locator('.release-input').press('Enter');\n await expect(this.page.locator('.group-title').filter({ hasText: releaseTitle })).toBeVisible();\n }\n\n async openSingleTask(taskId: string, showDetails = false): Promise<void> {\n await this.page.goto(`./#/tasks/${taskId}?showDetails=${showDetails}`);\n }\n\n async expectReleaseLinksDisplayed(releaseTitle: string, displayed = true): Promise<void> {\n if (displayed) {\n await expect(this.page.getByRole('link', { name: '' + releaseTitle + '' })).toBeVisible();\n await expect(this.page.locator('.view-in-release')).toBeVisible();\n } else {\n await expect(this.page.getByRole('link', { name: '' + releaseTitle + '' })).not.toBeVisible();\n await expect(this.page.locator('.view-in-release')).not.toBeVisible();\n }\n }\n\n async openTaskList(): Promise<void> {\n await this.page.goto('./#/tasks');\n }\n\n async clickOnAssigneeButton(title: string): Promise<void> {\n await this.page.locator(`.btn-group-filter.btn-group button.btn.btn-flat[title=\"${title}\"]`).click();\n }\n\n async expectTaskNotDisplayed(taskTitle: string): Promise<void> {\n await expect(this.page.locator(`.row.task-inner`).filter({ hasText: taskTitle }).getByText(taskTitle)).toHaveCount(\n 0,\n );\n }\n\n async clickOnStatusField(): Promise<void> {\n await this.page.locator('.ci-filter-status.ng-isolate-scope').click();\n }\n\n async clickOnStatus(statusNames: string[]): Promise<void> {\n await this.clickOnStatusClearAll();\n await this.clickOnStatusField();\n for (let i = 0; i < statusNames.length; i++) {\n await this.page.locator(`i.xl-icon.icon-s.checkbox[data='${statusNames[i]}']`).click();\n }\n // Clicking outside to close the grid dropdown\n await this.clickOnTasksLabel();\n }\n\n async clickOnStatusClearAll(): Promise<void> {\n await this.clickOnStatusField();\n await this.page.locator('a.xl-react-link', { hasText: 'Clear all' }).click();\n await this.clickOnTasksLabel();\n }\n\n async clickOnStatusSelectAll(): Promise<void> {\n await this.clickOnStatusField();\n await this.page.locator('a.xl-react-link', { hasText: 'Select all' }).click();\n await this.clickOnTasksLabel();\n }\n\n async assignTaskToMe(title: string): Promise<void> {\n await this.page.locator(`.task-line`).filter({ hasText: title }).locator(`.assign-to-me`).click();\n await this.page.locator('.modal:visible >> text=\"Assign to me\"').click();\n }\n\n async expectTaskAssignedToMe(title: string): Promise<void> {\n await this.expectTaskAssignedTo(title, 'me');\n }\n\n async expectTaskAssignedTo(title: string, user: string): Promise<void> {\n await expect(this.page.locator(`.task-line:has-text(\"${title}\") >> text=\"${user}\"`).first()).toHaveCount(1);\n }\n\n async expectTaskTitle(taskTitle: string): Promise<void> {\n expect(await this.page.locator('#tasks0').innerText()).toContain(taskTitle);\n }\n\n async clickOnTasksLabel(): Promise<void> {\n await this.page.getByLabel('breadcrumb').getByText('Tasks').click();\n }\n\n async expectGroupView(expected = true): Promise<void> {\n if (expected) {\n await expect(this.page.locator('#group-tasks-by-release')).toBeChecked();\n await expect(this.page.locator('#task-list-grouped-view')).toBeVisible();\n await expect(this.page.locator('#task-ungrouped-view')).not.toBeVisible();\n } else {\n await expect(this.page.locator('#group-tasks-by-release')).not.toBeChecked();\n await expect(this.page.locator('#task-list-grouped-view')).not.toBeVisible();\n await expect(this.page.locator('#task-ungrouped-view')).toBeVisible();\n }\n }\n\n async changeGroupView(): Promise<void> {\n await this.page.locator('#group-tasks-by-release').click();\n }\n}\n","import { Page, expect, Locator } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { TaskDrawer } from '../task-drawer/taskDrawer';\nimport { TemplatePropertiesPage } from './templatePropertiesPage';\nimport { TemplateCreatePage } from './templateCreatePage';\nimport { TemplateTriggerPage } from './templateTriggerPage';\nimport { Util } from '../common/util';\n\nexport class TemplatePage extends WithPage {\n taskDrawer: TaskDrawer;\n phaseTitle: Locator;\n properties: TemplatePropertiesPage;\n createTemplatePage: TemplateCreatePage;\n triggers: TemplateTriggerPage;\n util: Util;\n\n constructor(page: Page) {\n super(page);\n this.taskDrawer = new TaskDrawer(page);\n this.phaseTitle = page.locator('.phase .phase-title');\n this.properties = new TemplatePropertiesPage(page);\n this.createTemplatePage = new TemplateCreatePage(page);\n this.triggers = new TemplateTriggerPage(page);\n this.util = new Util(page);\n }\n\n private async openTemplateMenu(menuItem: string): Promise<void> {\n await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }).click();\n }\n\n async openTaskDrawer(taskName: string): Promise<TaskDrawer> {\n await this.page.getByText(taskName, { exact: true }).click();\n return this.taskDrawer;\n }\n\n async openTaskDrawerFromTableView(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.name-cell-title').getByText(taskName, { exact: true }).click();\n return this.taskDrawer;\n }\n\n async openTaskDrawerFromGrantt(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.gantt_tree_content').getByText(taskName, { exact: true }).dblclick();\n return this.taskDrawer;\n }\n\n async openProperties(): Promise<void> {\n await this.util.openSideNavMenu('Properties');\n await expect(this.page.getByLabel('breadcrumb').getByText('Properties')).toBeVisible();\n }\n\n async openVariables(): Promise<void> {\n await this.util.openSideNavMenu('Variables');\n await expect(this.page.getByLabel('breadcrumb').getByText('Variables')).toBeVisible();\n }\n\n async openRelationships(): Promise<void> {\n await this.util.openSideNavMenu('Relationships');\n await expect(this.page.getByLabel('breadcrumb').getByText('Relationships')).toBeVisible();\n }\n\n async openTeamsPermissions(): Promise<void> {\n await this.util.openSideNavMenu('Teams & Permissions');\n await expect(this.page.getByLabel('breadcrumb').getByText('Teams & Permissions')).toBeVisible();\n }\n\n async openDashboard(): Promise<void> {\n await this.util.openSideNavMenu('Dashboard');\n await expect(this.page.getByLabel('breadcrumb').getByText('Dashboard')).toBeVisible();\n }\n\n async openActivityLogs(): Promise<void> {\n await this.util.openSideNavMenu('Activity logs');\n await expect(this.page.getByLabel('breadcrumb').getByText('Activity logs')).toBeVisible();\n }\n\n async openTriggers(): Promise<void> {\n await this.openTemplateMenu('Triggers');\n await expect(this.page.getByLabel('breadcrumb').getByText('Triggers')).toBeVisible();\n }\n\n async backToTemplate(): Promise<void> {\n await this.page.locator('.icon-back').click();\n await expect(this.page.getByLabel('breadcrumb').getByText('Templates')).toBeVisible();\n }\n\n async expectTemplateLabelToBePresent(): Promise<void> {\n await expect(this.page.getByTestId('template-workflow-pill').getByText('Template')).toBeVisible();\n }\n\n async expectSubPage(menuItem: string, toBePresent: boolean): Promise<void> {\n if (toBePresent)\n await expect(this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true })).toBeVisible();\n else\n await expect(\n this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }),\n ).not.toBeVisible();\n }\n\n async openFlowView(): Promise<void> {\n await this.util.openSideNavMenu('Flow');\n await expect(this.page.locator('#release-content')).toBeVisible();\n }\n\n async openTableView(): Promise<void> {\n await this.util.openSideNavMenu('Table');\n await expect(this.page.locator('.release-grid-container')).toBeVisible();\n }\n\n async openPlannerView(): Promise<void> {\n await this.util.openSideNavMenu('Planner');\n await expect(this.page.locator('.gantt-container')).toBeVisible();\n }\n\n async openCodeView(): Promise<void> {\n await this.util.openSideNavMenu('Code');\n await expect(this.page.getByLabel('breadcrumb').getByText('Code')).toBeVisible();\n }\n\n async expandGanttFolder(): Promise<void> {\n const icExpandTreeview1 = this.page.locator('.gantt_tree_icon.gantt_open');\n for (const element of await icExpandTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.expandGanttFolder();\n }\n }\n }\n\n async addNewPhase(phaseName?: string): Promise<void> {\n await this.page.getByTestId('add-phase-btn').click();\n if (phaseName) {\n await this.phaseTitle.getByText('New Phase').click();\n await this.phaseTitle.getByRole('textbox').clear();\n await this.phaseTitle.getByRole('textbox').fill(phaseName);\n await this.page.keyboard.press('Enter');\n await expect(this.phaseTitle.filter({ hasText: phaseName })).toBeVisible();\n }\n }\n\n async renamePhase(oldPhaseName: string, newPhaseName: string): Promise<void> {\n await this.phaseTitle.getByText(oldPhaseName).click();\n await this.phaseTitle.filter({ hasText: oldPhaseName }).locator('.editable').clear();\n await this.phaseTitle.filter({ hasText: oldPhaseName }).locator('.editable').fill(newPhaseName);\n await this.page.keyboard.press('Enter');\n await expect(this.phaseTitle.filter({ hasText: newPhaseName })).toBeVisible();\n }\n\n getPhase(phaseName: string): Phase {\n return new Phase(this.page, phaseName);\n }\n}\nclass Phase extends WithPage {\n private readonly phaseLocator: Locator;\n\n constructor(page: Page, phaseName: string) {\n super(page);\n this.phaseLocator = page.locator('.phase', { hasText: phaseName });\n }\n\n async setTitle(title: string): Promise<void> {\n await this.phaseLocator.locator('.phase-header .display').click();\n await this.phaseLocator.locator('.phase-header input').clear();\n await this.phaseLocator.locator('.phase-header input').fill(title);\n await this.phaseLocator.locator('.phase-header input').blur();\n }\n\n async expectTaskBorderWithColor(taskName: string, color: string): Promise<void> {\n await expect(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS('border-top-color', color);\n }\n\n /**\n *\n * @param taskTitle Title of the task\n * @param taskType : Type of the task\n * @param taskTypeSelector : Selector of the task\n */\n\n async addTaskInPhase(taskTitle: string, taskGroup: string, taskType: string): Promise<void> {\n await this.phaseLocator.getByText('Add task').click();\n await this.phaseLocator.getByLabel('Open', { exact: true }).click();\n await this.phaseLocator.getByPlaceholder('Start typing to filter task').fill(taskGroup);\n await this.page.getByTestId(taskType).click();\n await this.phaseLocator.locator('#task-title').fill(taskTitle);\n await this.phaseLocator.getByTestId('save-select-task-btn').click();\n await expect(this.phaseLocator.getByText(taskTitle)).toBeVisible();\n }\n\n async getNumberOfTasks(): Promise<number> {\n return await this.phaseLocator.locator('.task').count();\n }\n\n async expectToHaveNoneditableTitle(phaseTitle: string): Promise<void> {\n await expect(this.phaseLocator.locator('.phase-title > span')).toContainText(phaseTitle);\n }\n\n async expectToHaveTitle(phaseTitle: string): Promise<void> {\n await expect(this.phaseLocator.locator('.phase-title')).toContainText(phaseTitle);\n }\n\n async deleteTaskInPhase(taskName: string): Promise<void> {\n await this.page.locator('.task').filter({ hasText: taskName }).locator('.xl-icon.options-icon').click();\n await this.page.locator('.remove-task-button').click();\n await expect(this.page.getByRole('heading', { name: 'Delete Task' })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.phaseLocator.locator('li').filter({ hasText: taskName })).not.toBeVisible();\n }\n\n async deletePhase(phaseName: string): Promise<void> {\n await this.page.locator('.phase-header').filter({ hasText: phaseName }).locator('.actions').hover();\n await this.page.locator('.phase-header').filter({ hasText: phaseName }).locator('.delete-icon').click();\n await expect(this.page.getByRole('heading', { name: 'Delete Phase' })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.page.locator('.phase-header').filter({ hasText: phaseName })).not.toBeVisible();\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport moment from 'moment';\n\nexport class TemplatePropertiesPage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async getAttachmentsListCount(): Promise<number> {\n return await this.page.locator('.attachments tr').count();\n }\n\n async uploadFile(filePath: string): Promise<void> {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.page.locator('input[type=\"file\"]').click();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n async expectWithAttachment(filename: string): Promise<void> {\n await expect(this.page.locator('.attachments tr td a').filter({ hasText: filename })).toBeVisible();\n }\n\n async expectWithNoAttachment(filename: string): Promise<void> {\n const test = await this.page.locator('.attachments').isVisible();\n if (test) {\n await expect(this.page.locator('.attachments tr td a').filter({ hasText: filename })).not.toBeVisible();\n }\n }\n\n async downloadFile(filename: string): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const downloadPromise1 = this.page.waitForEvent('download');\n await this.page.getByText(filename).click();\n const download = await downloadPromise1;\n // Wait for the download process to complete and save the downloaded file in given path.\n await download.saveAs('./core/xlr-ui/build/playwright/' + download.suggestedFilename());\n expect(download.suggestedFilename()).toBe(filename);\n }\n\n async deleteAttachment(fileName: string): Promise<void> {\n await this.page.getByRole('row', { name: fileName }).locator('span').click();\n await this.page.getByText('Remove').click();\n }\n\n async save(): Promise<void> {\n await this.page.getByRole('button', { name: 'Save' }).click({ timeout: 8000 });\n await expect(this.page.locator('.form-footer .last-saved')).toBeVisible();\n }\n\n async reset(): Promise<void> {\n await this.page.getByRole('button', { name: 'Reset' }).waitFor();\n await this.page.getByRole('button', { name: 'Reset' }).click();\n }\n\n async removeDueDate(): Promise<void> {\n await this.page.locator('.due-date .close-icon').click();\n }\n\n async setScheduledStartDate(date: number, monthYear: string): Promise<void> {\n await this.page.locator(`.scheduled-start-date .date`).click();\n const prev = this.page.locator('.datepicker-days .prev');\n const next = this.page.locator('.datepicker-days .next');\n const monYear = this.page.locator('.datepicker-days .datepicker-switch');\n\n const thisMonth = moment(monthYear, 'MMMM YYYY').isBefore();\n\n while ((await monYear.textContent()) != monthYear) {\n if (thisMonth) {\n await prev.click();\n } else {\n await next.click();\n }\n }\n await this.page\n .getByRole('cell', { name: '' + date + '' })\n .first()\n .click();\n }\n\n async setDuration(days?: string, hours?: string, mins?: string): Promise<void> {\n await this.page.locator('.duration-editor').click();\n if (typeof days !== 'undefined') {\n await this.page.locator('.days').fill(days);\n }\n if (typeof hours !== 'undefined') {\n await this.page.locator('.hours').fill(hours);\n }\n if (typeof mins !== 'undefined') {\n await this.page.locator('.minutes').fill(mins);\n }\n }\n\n async expectScheduledStartDateToBe(date: string): Promise<void> {\n expect(await this.page.locator(`.scheduled-start-date .date input`).getAttribute('value')).toBe(date);\n }\n\n async expectDueDateToBe(date: string): Promise<void> {\n expect(await this.page.locator('.due-date .date-editor .date > .light-text').getAttribute('value')).toContain(date);\n }\n\n async expectedDueDateTime(time: string): Promise<void> {\n expect(await this.page.locator('.due-date .date-editor .time-picker-holder input').getAttribute('value')).toContain(\n time,\n );\n }\n\n async expectDurationToBe(duration: string): Promise<void> {\n expect(await this.page.locator('.duration-editor').textContent()).toBe(duration);\n }\n\n async setUsername(username: string): Promise<void> {\n await this.page.locator('.script-username').click();\n await this.page.locator('user-input-with-variable').getByLabel('*').fill(username);\n await this.page.locator('user-input-with-variable').press('Enter');\n }\n\n async setPassword(password: string): Promise<void> {\n await this.page.locator('.field > .display').click();\n await this.page.locator('input[name=\"scriptUserPassword\"]').fill(password);\n await this.page.locator('input[name=\"scriptUserPassword\"]').press('Enter');\n }\n\n async expectScriptUsernameToBe(username: string): Promise<void> {\n expect(await this.page.locator('.script-username').textContent()).toContain(username);\n }\n\n async expectScriptUserPasswordToBe(password: string): Promise<void> {\n expect(await this.page.locator('span[name=\"scriptUserPassword\"]').textContent()).toContain(password);\n }\n}\n","import { Page } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class TemplateCreatePage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async setName(name: string): Promise<void> {\n await this.page.locator('#release-form-title').fill(name);\n }\n\n async setDescription(description: string): Promise<void> {\n await this.page.getByText('Set description...').hover();\n await this.page.locator('.display').filter({ hasText: 'Set description' }).locator('.edit-icon').click();\n await this.page.locator('textarea').click();\n await this.page.locator('textarea').clear();\n await this.page.locator('textarea').fill(description);\n await this.page.getByText('Save', { exact: true }).click();\n }\n\n async create(): Promise<void> {\n await this.page.getByRole('button', { name: 'Create' }).click();\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class TemplateTriggerPage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async expectAllowConcurrentReleasesFromTrigger(expectedValue: boolean): Promise<void> {\n if (expectedValue) {\n await this.page.locator('.col-xs-2 .trigger-item-state').textContent({ timeout: 3000 });\n expect(await this.page.locator('.col-xs-2 .trigger-item-state').textContent()).toContain('Enabled');\n } else {\n await this.page.locator('.col-xs-2 .trigger-item-state').textContent({ timeout: 3000 });\n expect(await this.page.locator('.col-xs-2 .trigger-item-state').textContent()).toContain('Disabled');\n }\n }\n\n async setAllowConcurrentReleasesFromTriggerAndSubmit(checked: boolean): Promise<void> {\n const result = await this.page.locator('.col-xs-2 .trigger-item-state').textContent({ timeout: 3000 });\n if ((result === 'Enabled' && checked === false) || (result == 'Disabled' && checked === true)) {\n await this.page.locator('form[name=\"releaseTriggerOptions\"] label[for=\"cb\"]').click();\n }\n }\n\n async expectTriggersVisible(amount: number): Promise<void> {\n await expect(this.page.locator('.xlr-trigger-row .trigger-row-content')).toHaveCount(amount);\n }\n\n async expectNoNewTriggerButtonShown(): Promise<void> {\n await expect(this.page.locator('.trigger-header a.button.primary')).not.toBeVisible();\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class TemplateListPage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async openTemplatesList(filter: string): Promise<void> {\n let url = '/templates';\n if (filter) {\n url += `?has_filter&filter=${filter}`;\n }\n await this.page.goto(url);\n }\n\n async searchBy(criteria: string): Promise<void> {\n await this.page.locator('.searchFilter').clear();\n await this.page.locator('.searchFilter').fill(criteria);\n }\n\n async copy(originTitle: string, targetTitle: string): Promise<void> {\n await this.page.locator('.title').filter({ hasText: originTitle }).locator('.copy').click();\n await this.page.getByLabel('Template name').clear();\n await this.page.getByLabel('Template name').fill(targetTitle);\n await this.page.getByLabel('Description').clear();\n await this.page.getByLabel('Description').fill('description');\n await this.page.getByRole('button', { name: 'Continue' }).click();\n await expect(this.page.locator('.dot-chip').filter({ hasText: 'TEMPLATE' })).toBeVisible();\n }\n\n async move(templateName: string, targetFolder: string): Promise<void> {\n await this.page.locator('.title').filter({ hasText: templateName }).locator('.move').click();\n await expect(this.page.getByText('Move template to')).toBeVisible();\n await this.page.getByRole('button', { name: 'Expand' }).click();\n await this.page.getByPlaceholder('Search folder...').click();\n await this.page.getByPlaceholder('Search folder...').fill(targetFolder);\n await this.page.getByRole('button', { name: targetFolder }).click();\n await this.page.getByRole('button', { name: 'Move' }).click();\n await expect(this.page.getByText('Add', { exact: true })).toBeVisible();\n await expect(this.page.getByText('Remove')).toBeVisible();\n await this.page.getByRole('button', { name: 'Move' }).click();\n }\n\n async metaInformation(templateName: string, validationMsg?: string): Promise<void> {\n await this.page.locator('.title').filter({ hasText: templateName }).locator('.template-context-menu').click();\n await this.page.getByRole('menuitem', { name: 'Meta information' }).locator('a').click();\n await expect(this.page.getByRole('heading', { name: 'Meta information - ' + templateName })).toBeVisible();\n if (validationMsg) {\n await expect(this.page.getByText(validationMsg)).toBeVisible();\n }\n await expect(this.page.getByRole('button', { name: 'Close' })).toBeVisible();\n }\n\n async expectTemplateVisible(title: string, expected = true): Promise<void> {\n if (expected) {\n await this.page.locator('.template').filter({ hasText: title }).waitFor();\n expect(this.page.locator('.template').filter({ hasText: title })).toBeVisible();\n } else {\n await this.page.locator('.template').filter({ hasText: title }).waitFor();\n expect(this.page.locator('.template').filter({ hasText: title })).not.toBeVisible();\n }\n }\n\n async delete(title: string): Promise<void> {\n await this.searchBy(title);\n await this.page.locator('.title').filter({ hasText: title }).locator('.delete').waitFor();\n await this.page.locator('.title').filter({ hasText: title }).locator('.delete').click();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.page.locator('.title').filter({ hasText: title })).not.toBeVisible();\n }\n\n async clickCreateNewTemplate(): Promise<void> {\n await this.page.getByTestId('dot-button').click();\n await this.page.getByRole('menuitem', { name: 'Create new template' }).click();\n }\n\n async openTemplateByName(templateName: string): Promise<void> {\n await this.filterByTitle(templateName);\n await this.page.locator(`.template`).filter({ hasText: templateName }).locator(`.raised-link`).waitFor();\n await this.page.locator(`.template`).filter({ hasText: templateName }).locator(`.raised-link`).click();\n }\n\n async clickNewReleaseIcon(templateName: string): Promise<void> {\n await this.page\n .locator('xlr-template-row-component')\n .filter({ hasText: templateName })\n .locator('.link .add-icon')\n .click();\n await expect(this.page.getByRole('heading', { name: 'Create new release' })).toBeVisible();\n }\n\n async filterByTitle(templateName: string): Promise<void> {\n await this.page.getByPlaceholder('Filter by title...', { exact: true }).click();\n await this.page.getByPlaceholder('Filter by title...', { exact: true }).fill(templateName);\n await this.page.getByPlaceholder('Filter by title...', { exact: true }).press('Enter');\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class LoginPage extends WithPage {\n /**\n * Login with username and password\n * @param userName\n * @param password\n */\n async login(userName: string, password: string): Promise<void> {\n await this.page.goto('./#/login');\n await expect(this.page).toHaveTitle('Digital.ai Release');\n await this.page.getByPlaceholder('User').fill(userName, { timeout: 1000 });\n await this.page.getByPlaceholder('Password').fill(password, { timeout: 10000 });\n await this.page.getByRole('button', { name: 'Log in' }).click({ timeout: 10000 });\n await this.page.waitForTimeout(1000);\n await this.closePendoModalWindow();\n }\n\n /**\n * Logout as authenticated user\n */\n async logout(): Promise<void> {\n await this.page.locator('button.dot-avatar').click();\n await this.page.getByText('Log out', { exact: true }).click();\n }\n\n /**\n * Expect login to be restricted for a user\n */\n async expectLoginDisallowed(): Promise<void> {\n const val = await this.page.textContent('.error-content span[ng-show=\"loginInfo.failedStatus == 403\"]');\n expect(val).toContain(\"You do not have 'login' permission.\");\n }\n\n /**\n * Expect the respective user is logged In\n * @param username\n */\n async expectToBeLogged(username: string): Promise<void> {\n const val = await this.page.locator('top-toolbar .avatar-wrapper span.dot-tooltip').getAttribute('aria-label');\n expect(val).toContain(username);\n }\n\n async closePendoModalWindow(): Promise<void> {\n await this.page.waitForTimeout(1000);\n if ((await this.page.locator('._pendo-close-guide').count()) > 0) {\n await this.page.locator('._pendo-close-guide').click();\n }\n }\n}\n","import isUndefined from 'lodash/isUndefined';\nimport each from 'lodash/each';\nimport forEach from 'lodash/forEach';\nimport defaults from 'lodash/defaults';\nimport toPairs from 'lodash/toPairs';\n\nimport { Container, Dashboard, Phase, Release, Task, Tile, Variable, VariableValueProvider } from '../types';\n\nexport const initReleaseDefaults = (function () {\n const RELEASE_TYPE = 'xlrelease.Release';\n const PHASE_TYPE = 'xlrelease.Phase';\n const TEAM_TYPE = 'xlrelease.Team';\n const TASK_TYPE = 'xlrelease.Task';\n const COMMENT_TYPE = 'xlrelease.Comment';\n const CONDITION_TYPE = 'xlrelease.GateCondition';\n const DEPENDENCY_TYPE = 'xlrelease.Dependency';\n const LINK_TYPE = 'xlrelease.Link';\n const ATTACHMENT_TYPE = 'xlrelease.Attachment';\n const DASHBOARD_TYPE = 'xlrelease.Dashboard';\n const _TRIGGER_TYPE = 'xlrelease.ReleaseTrigger';\n const JIRA_TYPE = 'jira.CreateIssue';\n const DEFAULT_TASK_OWNER = 'Itchy';\n\n const processTasks = (task: Task, container: Container, index: number): void => {\n if (isUndefined(task.type)) task.type = TASK_TYPE;\n task.id = task.id || `${container.id}/Task${index}`;\n if (isUndefined(task.owner) && task.type !== JIRA_TYPE) task.owner = DEFAULT_TASK_OWNER;\n if (task.owner === null) delete task.owner;\n\n each(task.conditions, function (condition, idx) {\n condition.type = CONDITION_TYPE;\n condition.id = `${task.id}/GateCondition${idx}`;\n });\n each(task.dependencies, function (dependency, idx) {\n dependency.type = DEPENDENCY_TYPE;\n dependency.id = `${task.id}/Dependency${idx}`;\n });\n each(task.links, function (link, idx) {\n link.type = LINK_TYPE;\n link.id = `${task.id}/Link${idx}`;\n });\n each(task.comments, function (comment, idx) {\n comment.type = COMMENT_TYPE;\n comment.id = `${task.id}/Comment${idx}`;\n });\n each(task.tasks, function (subTask, idx) {\n processTasks(subTask, task, idx);\n });\n each(task.templateVariables, function (variable, idx) {\n defaults(variable, getVariableEntity(variable.value, variable.key, task.id, idx));\n });\n each(task.attachments, function (attachment, idx) {\n attachment.type = ATTACHMENT_TYPE;\n attachment.id = `${task.id}/Attachment${idx}`;\n });\n if (task.pythonScript) {\n const pythonScript = task.pythonScript;\n pythonScript.id = `${task.id}/PythonScript`;\n pythonScript.customScriptTask = task.id;\n }\n };\n\n const processPhases = (phase: Phase, release: Release, index: number): void => {\n phase.type = PHASE_TYPE;\n phase.id = `${release.id}/Phase${index}`;\n\n forEach(phase.tasks, (task, idx): void => {\n processTasks(task, phase, idx);\n });\n };\n\n const getVariableEntity = (\n value: string,\n key: string,\n containerId: string,\n index: number,\n password?: boolean,\n // eslint-disable-next-line max-params\n ): Variable => {\n const keyNoSyntax = key.replace('${', '').replace('}', '');\n return {\n id: `${containerId}/Variable${index}`,\n key: keyNoSyntax,\n requiresValue: true,\n showOnReleaseStart: true,\n type: password ? 'xlrelease.PasswordStringVariable' : 'xlrelease.StringVariable',\n value: value,\n };\n };\n\n const getValueProviderConfigurationEntity = function (containerId: string): VariableValueProvider {\n return {\n id: `${containerId}/valueProvider`,\n variable: containerId,\n };\n };\n\n const getDashboardExtension = (dashboard: Dashboard, releaseId: string): Dashboard => {\n const dashboardExtension: Dashboard = {\n id: `${releaseId}/summary`,\n type: DASHBOARD_TYPE,\n tiles: [],\n };\n if (dashboard.tiles) {\n forEach(dashboard.tiles, function (tile, index) {\n dashboardExtension.tiles.push(getTileEntity(tile, `${releaseId}/summary`, index));\n });\n }\n return dashboardExtension;\n };\n\n function getTileEntity(tile: Tile, containerId: string, index: number): Tile {\n tile.id = tile.id || `${containerId}/Tile${index}`;\n return tile;\n }\n\n return function (release: Release) {\n release.type = RELEASE_TYPE;\n if (release.id.indexOf('Applications/') === -1) {\n release.id = `Applications/${release.id}`;\n }\n if (release.startDate) {\n release.queryableStartDate = release.startDate;\n } else if (release.scheduledStartDate) {\n release.queryableStartDate = release.scheduledStartDate;\n }\n if (release.endDate) {\n release.queryableEndDate = release.endDate;\n } else if (release.dueDate) {\n release.queryableEndDate = release.dueDate;\n }\n if (isUndefined(release.owner)) release.owner = 'Itchy'; // default release manager\n\n forEach(release.phases, function (phase, index) {\n processPhases(phase, release, index);\n });\n forEach(release.teams, function (team, index) {\n team.type = TEAM_TYPE;\n team.id = `${release.id}/Team${index}`;\n });\n forEach(release.attachments, function (attachment, index) {\n attachment.type = ATTACHMENT_TYPE;\n attachment.id = `${release.id}/Attachment${index}`;\n });\n forEach(release.variables, function (variable: Variable, index) {\n defaults(variable, getVariableEntity(variable.value, variable.key, release.id, index));\n if (variable.valueProvider) {\n defaults(variable.valueProvider, getValueProviderConfigurationEntity(variable.id));\n }\n });\n forEach(toPairs(release.variableValues), function (keyValue, index) {\n if (!release.variables) release.variables = [];\n release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1000 + index));\n release.variableValues = undefined;\n });\n forEach(toPairs(release.passwordVariableValues), function (keyValue, index) {\n if (!release.variables) release.variables = [];\n release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1500 + index, true));\n release.passwordVariableValues = undefined;\n });\n\n if (release.summary) {\n release.extensions = [getDashboardExtension(release.summary, release.id)];\n release.summary = undefined;\n }\n };\n})();\n"],"names":[],"version":3,"file":"module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["apps/release/index.ts","apps/release/fixtures/index.ts","apps/release/pages/index.ts","apps/release/pages/releases/ReleasePage.ts","apps/release/pages/TriggersPage.ts","apps/release/pages/ReleasesListPage.ts","apps/release/pages/WithPage.ts","apps/release/pages/releases/releaseCreatePage.ts","apps/release/pages/releases/ReleaseVariablesPage.ts","apps/release/pages/helper/index.ts","apps/release/pages/task-drawer/taskDrawer.ts","apps/release/pages/task-drawer/taskConfig.ts","apps/release/pages/task-drawer/taskCondition.ts","apps/release/pages/task-drawer/taskOverview.ts","apps/release/pages/task-drawer/taskActivity.ts","apps/release/pages/task-drawer/taskAttachments.ts","apps/release/pages/releases/releasePropertiesPage.ts","apps/release/pages/common/dateUtil.ts","apps/release/pages/common/util.ts","apps/release/pages/ApplicationsPage.ts","apps/release/pages/common/dataRandomGenerator.ts","apps/release/pages/FolderPage.ts","apps/release/pages/folder/folderDeliveryPage.ts","apps/release/pages/folder/folderGroupPage.ts","apps/release/pages/folder/folderPatternPage.ts","apps/release/pages/globalVariablePage.ts","apps/release/pages/homePage.ts","apps/release/pages/headerPage.ts","apps/release/pages/managePluginsPage.ts","apps/release/pages/PersonalAccessTokenPage.ts","apps/release/pages/personalSettingsPage.ts","apps/release/pages/users/usersPage.ts","apps/release/pages/users/userModal.ts","apps/release/pages/settingsMenu.ts","apps/release/pages/taskDetails.ts","apps/release/pages/ReleaseCalendarPage.ts","apps/release/pages/ReleaseGroupPage.ts","apps/release/pages/ReleaseGroupTimelinePage.ts","apps/release/pages/tasks/taskListPage.ts","apps/release/pages/templates/templatePage.ts","apps/release/pages/templates/templatePropertiesPage.ts","apps/release/pages/templates/templateCreatePage.ts","apps/release/pages/templates/templateTriggerPage.ts","apps/release/pages/templateListPage.ts","apps/release/pages/login-page.ts","apps/release/fixtures/helper.ts"],"sourcesContent":["export { test } from './fixtures';\n","import { test as base, expect, Page, APIResponse } from '@playwright/test';\nimport { execFile } from 'child_process';\nimport { APIRequestContext } from 'playwright-core';\nimport isNil from 'lodash/isNil';\nimport { Navigation } from '../pages';\nimport { LoginPage } from '../pages/login-page';\nimport { initReleaseDefaults } from './helper';\nimport * as process from 'process';\nimport {\n FixtureActivityLog,\n FixtureConfiguration,\n FixtureFeature,\n FixturePermissions,\n FixtureRelease,\n FixtureRoles,\n FixtureTrigger,\n Folder,\n Release,\n Variable,\n ReleaseGroup,\n} from '../types';\n\nconst JIRA_ISSUE_API_URL = 'https://digitalai.atlassian.net/rest/api/2/issue';\n\nconst adminHeaders = {\n Authorization: 'Basic YWRtaW46YWRtaW4=',\n Cookie: 'XSRF-TOKEN=1;',\n 'X-XSRF-TOKEN': '1',\n};\n\ntype ReleaseFixtures = {\n fixtures: Fixtures;\n loginPage: LoginPage;\n navigation: Navigation;\n};\n\nexport const test = base.extend<ReleaseFixtures>({\n fixtures: async ({ request, page }, use) => {\n const fixtures = new Fixtures(request, page);\n await use(fixtures);\n return fixtures;\n },\n loginPage: async ({ page }, use) => {\n const loginPage = new LoginPage(page);\n await use(loginPage);\n return loginPage;\n },\n navigation: async ({ page }, use) => {\n const navigationPage = new Navigation(page);\n await use(navigationPage);\n return navigationPage;\n },\n});\n\nclass Fixtures {\n private readonly request: APIRequestContext;\n private readonly page: Page;\n\n private archivedReleaseIds: Array<string> = [];\n private releaseIds: Array<string> = [];\n private triggerIds: Array<string> = [];\n private configurationIds: Array<string> = [];\n private globalVariableIds: Array<string> = [];\n private folderIds: Array<string> = [];\n private usernames: Array<string> = [];\n private userProfiles: Array<string> = [];\n\n constructor(request: APIRequestContext, page: Page) {\n this.request = request;\n this.page = page;\n }\n\n release(release: FixtureRelease): Promise<APIResponse> {\n this.initDefaults(release);\n this.releaseIds.push(release.id);\n return this.deleteRelease(release.id)\n .then(() => this.deleteArchivedRelease(release.id))\n .then(() => this.doPost('fixtures/release', release));\n }\n\n archivedRelease(release: FixtureRelease): Promise<APIResponse> {\n this.initDefaults(release);\n this.archivedReleaseIds.push(release.id);\n return this.doPost('fixtures/archived', release);\n }\n\n configuration(ci: FixtureConfiguration): Promise<APIResponse> {\n this.configurationIds.push(ci.id);\n return this.doPost('fixtures/shared', [ci]);\n }\n\n getParentId(id: string): string {\n return id.substring(0, id.lastIndexOf('/'));\n }\n\n async folder(folder: Folder): Promise<APIResponse> {\n const parentId = this.getParentId(folder.id);\n folder.type = 'xlrelease.Folder';\n\n //ToDo: Add system teams\n const teams = folder.teams;\n delete folder.teams;\n //ToDo: Add Children\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const children = folder.children || [];\n delete folder.children;\n\n if (teams) return this.doPost(`api/v1/folders/${folder.id}/teams`, teams);\n\n return this.doPost(`api/v1/folders/${parentId}`, folder);\n }\n\n createFolder(folderJson: Folder): Promise<APIResponse> {\n folderJson.type = 'xlrelease.Folder';\n return this.doPost(`fixtures/folders`, [folderJson]);\n }\n\n trigger(trigger: FixtureTrigger): Promise<APIResponse> {\n this.triggerIds.push(trigger.id);\n return this.doPost('fixtures/trigger', trigger);\n }\n\n roles(rolePrincipals: FixtureRoles): Promise<APIResponse> {\n return this.doPost('fixtures/roles/principals', rolePrincipals);\n }\n\n permissions(rolePermissions: FixturePermissions): Promise<APIResponse> {\n return this.doPost('fixtures/roles/permissions/global', rolePermissions);\n }\n\n updateUserProfile(username: string, profile: any): Promise<APIResponse> {\n profile.id = username;\n profile.type = 'xlrelease.UserProfile';\n profile.canonicalId = username.toLowerCase();\n if (this.userProfiles.indexOf(profile.canonicalId) === -1) {\n this.userProfiles.push(profile.canonicalId);\n }\n return this.doPut('fixtures/userProfile', profile);\n }\n\n deleteRole(roleName: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/role/${roleName}`);\n }\n\n deleteArchivedRelease(id: string): Promise<APIResponse> {\n const releaseId = id.includes('Applications/') ? id : `Applications/${id}`;\n return this.doDelete('fixtures/cis', [\n {\n id: releaseId,\n type: 'xlrelease.Release',\n },\n ]);\n }\n\n deleteRelease(id: string): Promise<APIResponse> {\n const releaseId = id.includes('Applications/') ? id : `Applications/${id}`;\n return this.doDelete(`fixtures/${releaseId}`);\n }\n\n deleteUser(username: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/user/${username}`);\n }\n\n deleteUserProfile(userProfile: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/userProfile/${userProfile}`);\n }\n\n deleteTrigger(id: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/trigger/${id}`);\n }\n\n deleteConfiguration(id: string): Promise<APIResponse> {\n return this.doDelete(`fixtures/shared`, [id]);\n }\n\n deleteFolder(folderId: string): Promise<APIResponse> {\n return this.doDelete(`api/v1/folders/${folderId}`);\n }\n\n activityLogs(id: string, logs: Array<FixtureActivityLog>): Promise<APIResponse> {\n return this.doPost(`fixtures/activityLogs/${id}`, logs);\n }\n\n globalVariable(variable: Variable): Promise<APIResponse> {\n variable.id = variable.id || `Configuration/variables/global/Variable_${variable.key}`;\n this.globalVariableIds.push(variable.id);\n variable.requiresValue = false;\n variable.showOnReleaseStart = false;\n return this.doPost('api/v1/config/Configuration/variables/global', variable);\n }\n\n async cleanAll(): Promise<void> {\n for (const username of this.usernames) {\n await this.deleteUser(username);\n }\n for (const userProfile of this.userProfiles) {\n await this.deleteUserProfile(userProfile);\n }\n for (const triggerId of this.triggerIds) {\n await this.deleteTrigger(triggerId);\n }\n for (const releaseId of this.releaseIds.reverse()) {\n await this.deleteRelease(releaseId);\n }\n for (const confId of this.configurationIds) {\n await this.deleteConfiguration(confId);\n }\n for (const folderId of this.folderIds.reverse()) {\n await this.deleteFolder(folderId);\n }\n this.folderIds = [];\n this.releaseIds = [];\n this.triggerIds = [];\n this.configurationIds = [];\n this.usernames = [];\n this.userProfiles = [];\n }\n\n async addJiraTask(): Promise<string> {\n const data = {\n fields: {\n project: { key: 'RIT' },\n summary: 'Test Task',\n description: 'Test task description',\n issuetype: { name: 'Task' },\n },\n };\n const headers = {\n Authorization: `Basic ${btoa('xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7')}`,\n Origin: 'https://digitalai.atlassian.net/',\n };\n const response = await this.request.post(JIRA_ISSUE_API_URL, { data, headers });\n const json = await response.json();\n return json.key;\n }\n\n async addUser(username: string, password: string): Promise<void> {\n this.usernames.push(username);\n await this.doPost('fixtures/user', { username, password });\n }\n\n async addUserProfile(username: string, profile?: any): Promise<void> {\n if (!profile) {\n profile = {};\n }\n profile.id = username;\n profile.type = 'xlrelease.UserProfile';\n profile.canonicalId = username.toLowerCase();\n this.userProfiles.push(profile.canonicalId);\n await this.doPost('fixtures/userProfile', profile);\n }\n\n async expectJiraTaskStatus(taskId: string, expectedStatus: string): Promise<void> {\n const headers = {\n Authorization: `Basic ${btoa('xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7')}`,\n Origin: 'https://digitalai.atlassian.net/',\n };\n const response = await this.request.get(`${JIRA_ISSUE_API_URL}/${taskId}`, { headers });\n const json = await response.json();\n const status = json.fields.status.name;\n expect(status).toBe(expectedStatus);\n }\n\n async expectJiraTaskSummary(taskId: string, expectedSummary: string): Promise<void> {\n const headers = {\n Authorization: `Basic ${btoa('xlr-jira-testuser@xebialabs.com:zgsXK6c3oLVkJxrWVJQy9DB7')}`,\n Origin: 'https://digitalai.atlassian.net/',\n };\n const response = await this.request.get(`${JIRA_ISSUE_API_URL}/${taskId}`, { headers });\n const json = await response.json();\n const summary = json.fields.summary;\n expect(summary).toBe(expectedSummary);\n }\n\n async expectContainingAttachments(releaseId: string, tempFile: string): Promise<void> {\n if (releaseId.indexOf('Applications/') === -1) {\n releaseId = 'Applications/' + releaseId;\n }\n await expect(async () => {\n const resp = await this.doPost(`fixtures/expectContainingAttachments/${releaseId}`, {\n name: tempFile,\n expectedContent: tempFile,\n });\n expect(resp).toBe(true);\n }).toPass();\n }\n\n async waitForReleaseStarted(releaseTitle: string): Promise<void> {\n await expect(async () => {\n const resp = await this.doPost('releases/search', {\n inProgress: true,\n paused: true,\n failing: true,\n failed: true,\n title: releaseTitle,\n });\n const page = await resp.json();\n await expect(page.cis.length).toBeGreaterThan(0);\n }).toPass();\n }\n\n async waitForFirstPoll(triggerId: string): Promise<void> {\n await expect(async () => {\n const resp = await this.doGet(`api/v1/triggers/${triggerId}`);\n const trigger = await resp.json();\n await expect(isNil(trigger.triggerState)).toBe(false);\n }).toPass();\n }\n\n exec(path: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n execFile(path, (error) => {\n if (error === null) {\n return resolve();\n } else {\n return reject();\n }\n });\n });\n }\n\n getFakeApiUrl(): string {\n return this.getEnvVariable('ENV_FAKE_API') || 'http://localhost:5517';\n }\n\n getEnvVariable(name: string): string | undefined {\n return process.env[name];\n }\n\n async archiveRelease(releaseId: string): Promise<APIResponse> {\n return this.doGet(`fixtures/archive/${releaseId}`);\n }\n\n async preArchiveRelease(releaseId: string): Promise<APIResponse> {\n return this.doGet(`fixtures/preArchive/${releaseId}`);\n }\n\n async setFeatures(features: Array<FixtureFeature>): Promise<APIResponse> {\n return this.doPut('settings/features', features);\n }\n\n async enableTaskDrawer(enabled: boolean): Promise<APIResponse> {\n return this.setFeatures([\n { id: 'Configuration/features/xlrelease.TaskDrawer', type: 'xlrelease.TaskDrawer', enabled: enabled },\n ]);\n }\n\n async createReleaseGroup(releaseGroup: ReleaseGroup): Promise<APIResponse> {\n return this.doPost('fixtures/release-groups', releaseGroup);\n }\n\n private doPost(url: string, body: unknown): Promise<APIResponse> {\n return this.request.post(url, { data: body, headers: adminHeaders });\n }\n\n private doPut(url: string, body: unknown): Promise<APIResponse> {\n return this.request.put(url, { data: body, headers: adminHeaders });\n }\n\n private doGet(url: string): Promise<APIResponse> {\n return this.request.get(url, { headers: adminHeaders });\n }\n\n private doDelete(url: string, body?: unknown): Promise<APIResponse> {\n return this.request.delete(url, { data: body, headers: adminHeaders });\n }\n\n private initDefaults(ci: FixtureRelease): void {\n initReleaseDefaults(ci as Release);\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { ReleasePage } from './releases/ReleasePage';\nimport { ApplicationsPage } from './ApplicationsPage';\nimport { DataRandomGenerator } from './common/dataRandomGenerator';\nimport { DateUtil } from './common/dateUtil';\nimport { FolderPage } from './FolderPage';\nimport { GlobalVariable } from './globalVariablePage';\nimport { HomePage } from './homePage';\nimport { HeaderPage } from './headerPage';\nimport { ManagePluginsPage } from './managePluginsPage';\nimport { PersonalAccessTokenPage } from './PersonalAccessTokenPage';\nimport { PersonalSettingsPage } from './personalSettingsPage';\nimport { UsersPage } from './users/usersPage';\nimport { SettingsMenu } from './settingsMenu';\nimport { TaskDetails } from './taskDetails';\nimport { ReleaseCalendarPage } from './ReleaseCalendarPage';\nimport { ReleaseGroupPage } from './ReleaseGroupPage';\nimport { ReleaseGroupTimelinePage } from './ReleaseGroupTimelinePage';\nimport { ReleasesListPage } from './ReleasesListPage';\nimport { TaskListPage } from './tasks/taskListPage';\nimport { TemplatePage } from './templates/templatePage';\nimport { TemplateListPage } from './templateListPage';\nimport { Util } from './common/util';\n\nexport class Navigation {\n private readonly page: Page;\n dataRandomGenerator: DataRandomGenerator;\n dateUtil: DateUtil;\n folderPage: FolderPage;\n globalvariable: GlobalVariable;\n homePage: HomePage;\n header: HeaderPage;\n managePluginsPage: ManagePluginsPage;\n releasePage: ReleasePage;\n settingsMenu: SettingsMenu;\n usersPage: UsersPage;\n applicationPage: ApplicationsPage;\n taskDetailsPage: TaskDetails;\n taskListPage: TaskListPage;\n templatePage: TemplatePage;\n templateListPage: TemplateListPage;\n personalSettingsPage: PersonalSettingsPage;\n releaseCalendarPage: ReleaseCalendarPage;\n releaseGroupPage: ReleaseGroupPage;\n releaseGroupTimelinePage: ReleaseGroupTimelinePage;\n releaseListPage: ReleasesListPage;\n util: Util;\n\n constructor(page: Page) {\n this.page = page;\n this.dataRandomGenerator = new DataRandomGenerator();\n this.dateUtil = new DateUtil(page);\n this.folderPage = new FolderPage(page);\n this.globalvariable = new GlobalVariable(page);\n this.homePage = new HomePage(page);\n this.header = new HeaderPage(page);\n this.managePluginsPage = new ManagePluginsPage(page);\n this.releasePage = new ReleasePage(page);\n this.settingsMenu = new SettingsMenu(page);\n this.usersPage = new UsersPage(page);\n this.applicationPage = new ApplicationsPage(page);\n this.taskDetailsPage = new TaskDetails(page);\n this.taskListPage = new TaskListPage(page);\n this.templatePage = new TemplatePage(page);\n this.templateListPage = new TemplateListPage(page);\n this.personalSettingsPage = new PersonalSettingsPage(page);\n this.releaseCalendarPage = new ReleaseCalendarPage(page);\n this.releaseGroupPage = new ReleaseGroupPage(page);\n this.releaseGroupTimelinePage = new ReleaseGroupTimelinePage(page);\n this.releaseListPage = new ReleasesListPage(page);\n this.util = new Util(page);\n }\n\n async openTemplate(id: string): Promise<ReleasePage> {\n return this.openReleaseOrTemplate(id, false);\n }\n\n async openRelease(id: string): Promise<ReleasePage> {\n return this.openReleaseOrTemplate(id, true);\n }\n\n async openApplicationsPage(): Promise<ApplicationsPage> {\n return new ApplicationsPage(this.page).goToApplicationsPage();\n }\n\n async openPersonalAccessTokenPage(): Promise<PersonalAccessTokenPage> {\n return new PersonalAccessTokenPage(this.page).openPersonalAccessTokenPage();\n }\n\n async gotoFolderPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Folders', { exact: true }).click();\n }\n\n async gotoTaskPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Tasks', { exact: true }).click();\n }\n\n async gotoReleasePage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Releases', { exact: true }).click();\n }\n\n async gotoWorkflowCatalogPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Workflow catalog', { exact: true }).click();\n }\n\n async gotoWorkflowsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Workflows', { exact: true }).click();\n }\n\n async gotoGroupsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Groups', { exact: true }).click();\n }\n\n async gotoReleaseCalenderPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Release calendar', { exact: true }).click();\n }\n\n async gotoDeliveriesPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Deliveries', { exact: true }).click();\n }\n\n async gotoTriggersPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Triggers', { exact: true }).click();\n }\n\n async gotoDigitalAnalyticsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Digital.ai Analytics', { exact: true }).click();\n }\n\n async gotoReportsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Reports', { exact: true }).click();\n }\n\n async gotoTemplatesPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Templates', { exact: true }).click();\n }\n\n async gotoEnvironmentsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Environments', { exact: true }).click();\n }\n\n async gotoEnvironmentsCalenderPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Environments calendar', { exact: true }).click();\n }\n\n async gotoGobalVariablesPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Global variables', { exact: true }).click();\n }\n async gotoConnectionsPage(): Promise<void> {\n await this.page.locator('ul.side-nav li').getByText('Connections', { exact: true }).click();\n }\n private async openReleaseOrTemplate(id: string, release: boolean): Promise<ReleasePage> {\n const url = release ? 'releases' : 'templates';\n await this.page.goto(`./#/${url}/${id}`);\n await this.page.waitForSelector('#release');\n return new ReleasePage(this.page);\n }\n\n async collapseSideView(): Promise<void> {\n await this.page.getByLabel('Collapse Q').click();\n await expect(this.page.getByLabel('Collapse Q')).not.toBeVisible();\n }\n\n async expandSideView(): Promise<void> {\n await this.page.getByLabel('Expand Q').click();\n await expect(this.page.getByLabel('Expand Q')).not.toBeVisible();\n }\n}\n","import { Page, Locator, expect } from '@playwright/test';\nimport { TriggersPage } from '../TriggersPage';\nimport { WithPage } from '../WithPage';\nimport { ReleaseVariablesPage } from './ReleaseVariablesPage';\nimport { TaskDrawer } from '../task-drawer/taskDrawer';\nimport { ReleasePropertiesPage } from './releasePropertiesPage';\nimport { DateUtil } from '../common/dateUtil';\nimport { Util } from '../common/util';\n\nexport class ReleasePage extends WithPage {\n taskDrawer: TaskDrawer;\n phaseTitle: Locator;\n properties: ReleasePropertiesPage;\n variables: ReleaseVariablesPage;\n util: Util;\n\n constructor(page: Page) {\n super(page);\n this.taskDrawer = new TaskDrawer(page);\n this.phaseTitle = this.page.locator('.phase .phase-title');\n this.properties = new ReleasePropertiesPage(page);\n this.variables = new ReleaseVariablesPage(page);\n this.util = new Util(page);\n }\n\n async openTriggers(): Promise<TriggersPage> {\n await this.openSubPage('Triggers');\n return new TriggersPage(this.page);\n }\n\n async abort(comment = 'Abort for testing'): Promise<void> {\n await this.page.locator('action-toolbar button', { hasText: 'Abort' }).click();\n await this.page.locator('.modal textarea').fill(comment);\n await this.page.locator('.modal .continue').click();\n }\n\n getPhase(phaseName: string): Phase {\n return new Phase(this.page, phaseName);\n }\n\n async expectNotFlagged(): Promise<void> {\n await expect(this.page.locator('.flag-none-icon')).toBeHidden();\n }\n\n async expectFlagOnTaskCard(): Promise<void> {\n await expect(this.page.locator('.risk-flag-icon')).toBeVisible();\n }\n\n async refresh(): Promise<void> {\n await this.page.reload();\n await this.page.waitForSelector('#release');\n }\n\n async start(): Promise<void> {\n await this.page.getByTestId('start-btn').click();\n await this.page.getByRole('button', { name: 'Start' }).click();\n }\n\n async waitForCompletion(timeout: number): Promise<void> {\n await this.page.locator('#release.completed').waitFor({ timeout });\n }\n\n async waitForTaskCompleted(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.completed').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskCompletedInAdvance(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.completed_in_advance').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskInProgress(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.in_progress').getByText(taskTitle, { exact: true })).toBeVisible();\n }\n\n async waitForTaskFailed(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.failed').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n async waitForTaskSkipped(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.skipped').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskSkippedInAdvance(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.skipped_in_advance').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskAborted(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.aborted').getByText(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n async waitForStatusLine(statusLine: string): Promise<void> {\n await expect(this.page.locator('.task .status-line').getByText(statusLine, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskStarted(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.in_progress').getByTitle(taskTitle, { exact: true })).toBeVisible({\n timeout: 10000,\n });\n }\n\n async waitForTaskPlanned(title: string): Promise<void> {\n await expect(this.page.locator(`.task:has-text('${title}').planned`)).toBeVisible();\n }\n\n async expectTaskCompletedInAdvance(taskTitle: string): Promise<void> {\n await expect(\n this.page.locator('#release-content .completed_in_advance .task-title').filter({ hasText: taskTitle }),\n ).toBeVisible();\n }\n\n async expectTaskPending(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.pending').getByText(taskTitle, { exact: true })).toBeVisible();\n }\n\n async expectCurrentTaskToContain(taskTitle: string): Promise<void> {\n await expect(this.page.locator('.task.active .task-title').getByText(taskTitle, { exact: true })).toBeVisible();\n }\n\n async openManualTaskDetails(title: string): Promise<void> {\n await this.page.locator(`text=${title}`).click({ force: true });\n await expect(this.page.locator('div').filter({ hasText: title }).first()).toBeVisible();\n }\n\n async reopenTask(comment: string): Promise<void> {\n await this.page\n .locator('div')\n .filter({ hasText: /^Reopen$/ })\n .click();\n await this.page.getByTestId('task-action-comment').click();\n await this.page.getByTestId('task-action-comment').fill(comment);\n await this.page.getByTestId('dot-button').click();\n }\n\n async openTaskDrawer(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.task-header').getByText(taskName, { exact: true }).click();\n return this.taskDrawer;\n }\n\n async openTaskDrawerFromTableView(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.name-cell-title').getByText(taskName, { exact: true }).click();\n return this.taskDrawer;\n }\n\n async openTaskDrawerFromGrantt(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.gantt_tree_content').getByText(taskName, { exact: true }).dblclick();\n return this.taskDrawer;\n }\n\n async openVariables(): Promise<void> {\n await this.util.openSideNavMenu('Variables');\n await expect(this.page.getByLabel('breadcrumb').getByText('Variables')).toBeVisible();\n }\n\n async openProperties(): Promise<void> {\n await this.util.openSideNavMenu('Properties');\n await expect(this.page.getByLabel('breadcrumb').getByText('Properties')).toBeVisible();\n }\n\n async openReleaseFlow(): Promise<void> {\n await this.util.openSideNavMenu('Flow');\n await expect(this.page.getByLabel('breadcrumb').getByText('Flow')).toBeVisible();\n }\n\n async openRelationships(): Promise<void> {\n await this.util.openSideNavMenu('Relationships');\n await expect(this.page.getByLabel('breadcrumb').getByText('Relationships')).toBeVisible();\n }\n\n async openTeamsPermissions(): Promise<void> {\n await this.util.openSideNavMenu('Teams & Permissions');\n await expect(this.page.getByLabel('breadcrumb').getByText('Teams & Permissions')).toBeVisible();\n }\n\n async openDashboard(): Promise<void> {\n await this.util.openSideNavMenu('Dashboard');\n await expect(this.page.getByLabel('breadcrumb').getByText('Dashboard')).toBeVisible();\n }\n\n async openActivityLogs(): Promise<void> {\n await this.util.openSideNavMenu('Activity logs');\n await expect(this.page.getByLabel('breadcrumb').getByText('Activity logs')).toBeVisible();\n }\n\n private async openReleaseMenu(menuItem: string): Promise<void> {\n await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }).click();\n }\n\n private async openSubPage(subpage: string): Promise<void> {\n await this.page.locator('ul.side-nav li', { hasText: subpage }).click();\n }\n\n async openTask(taskName: string): Promise<void> {\n await this.page.getByTitle(taskName, { exact: true }).click();\n }\n\n async collapseAllTaskView(): Promise<void> {\n const icCollapseTreeview1 = this.page.locator('div.pull-left.expander.ng-scope i.xl-icon.arrow-down-icon');\n for (const element of await icCollapseTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.collapseAllTaskView();\n }\n }\n }\n\n async expandAllTaskView(): Promise<void> {\n const icExpandTreeview1 = this.page.locator('div.pull-left.expander.ng-scope i.xl-icon.arrow-right-icon');\n for (const element of await icExpandTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.expandAllTaskView();\n }\n }\n }\n\n async expectTemplateLabelNotToBePresent(): Promise<void> {\n await expect(this.page.locator('.dot-chip').filter({ hasText: 'TEMPLATE' })).not.toBeVisible();\n }\n\n async openTableView(): Promise<void> {\n await this.util.openSideNavMenu('Table');\n await expect(this.page.locator('.release-grid-container')).toBeVisible();\n }\n\n async openPlannerView(): Promise<void> {\n await this.util.openSideNavMenu('Planner');\n await expect(this.page.locator('.gantt-container')).toBeVisible();\n }\n\n async expandGanttFolder(): Promise<void> {\n const icExpandTreeview1 = this.page.locator('.gantt_tree_icon.gantt_open');\n for (const element of await icExpandTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.expandGanttFolder();\n }\n }\n }\n\n async backToRelease(): Promise<void> {\n await this.page.locator('.icon-back').click();\n }\n\n async expectTitleToBeInBreadcrumbLink(title: string): Promise<void> {\n await expect(this.page.locator('.dot-breadcrumbs a', { hasText: title })).toBeVisible();\n }\n\n async expectHasPhase(title: string): Promise<void> {\n await expect(this.page.locator(`#release-content .phase-title`, { hasText: title })).toBeVisible();\n }\n\n async addNewPhase(phaseName?: string): Promise<void> {\n await this.page.getByTestId('add-phase-btn').click();\n if (phaseName) {\n await this.phaseTitle.getByText('New Phase').click();\n await this.phaseTitle.getByRole('textbox').clear();\n await this.phaseTitle.getByRole('textbox').fill(phaseName);\n await this.page.keyboard.press('Enter');\n await expect(this.phaseTitle.filter({ hasText: phaseName })).toBeVisible();\n }\n }\n\n async renamePhase(oldPhaseName: string, newPhaseName: string): Promise<void> {\n await this.phaseTitle.getByText(oldPhaseName).click();\n await this.phaseTitle.filter({ hasText: oldPhaseName }).locator('.editable').clear();\n await this.phaseTitle.filter({ hasText: oldPhaseName }).locator('.editable').fill(newPhaseName);\n await this.page.keyboard.press('Enter');\n await expect(this.phaseTitle.filter({ hasText: newPhaseName })).toBeVisible();\n }\n\n async exportRelease(): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.page.on('download', () => {});\n await this.page.getByTestId('template-export-btn').click();\n const downloadPromise = this.page.waitForEvent('download');\n await this.page.getByRole('link', { name: 'Audit report (Excel)' }).click();\n await downloadPromise;\n }\n}\n\nclass Phase extends WithPage {\n private readonly phaseLocator: Locator;\n commentBox: Locator;\n confirm: Locator;\n contextMenuButton: Locator;\n dateUtil: DateUtil;\n\n constructor(page: Page, phaseName: string) {\n super(page);\n this.phaseLocator = page.locator('.phase', { hasText: phaseName });\n this.commentBox = this.page.locator(`.input-block-level`);\n this.confirm = this.page.getByTestId('dot-button');\n this.contextMenuButton = this.page.locator('#context-menu-container li');\n this.dateUtil = new DateUtil(page);\n }\n\n async setTitle(title: string): Promise<void> {\n await this.phaseLocator.locator('.phase-header .display').click();\n await this.phaseLocator.locator('.phase-header input').clear();\n await this.phaseLocator.locator('.phase-header input').fill(title);\n await this.phaseLocator.locator('.phase-header input').blur();\n }\n\n async isMenuItemEnabled(menuName: string, taskTitle: string): Promise<void> {\n await this.openContextMenuForTask(taskTitle);\n await expect(this.contextMenuButton.filter({ hasText: menuName })).not.toHaveClass(/disabled/);\n await expect(this.contextMenuButton.filter({ hasText: menuName }).locator('a')).not.toBeDisabled();\n await this.closeContextMenu();\n }\n\n async isMenuItemDisabled(menuName: string, taskTitle: string): Promise<void> {\n await this.openContextMenuForTask(taskTitle);\n await expect(this.contextMenuButton.filter({ hasText: menuName })).toHaveClass(/disabled/);\n await expect(this.contextMenuButton.filter({ hasText: menuName }).locator('a')).toBeDisabled();\n await this.closeContextMenu();\n }\n\n async expectMenuItemIsNotVisible(menuName: string, taskTitle: string): Promise<void> {\n await this.openContextMenuForTask(taskTitle);\n await expect(this.page.locator('#context-menu-container li').filter({ hasText: menuName })).not.toBeVisible();\n await this.closeContextMenu();\n }\n\n async expectMenuItemIsVisible(menuName: string, taskTitle: string): Promise<void> {\n await this.openContextMenuForTask(taskTitle);\n await expect(this.page.locator('#context-menu-container li').filter({ hasText: menuName })).toBeVisible();\n await this.closeContextMenu();\n }\n\n async closeContextMenu(): Promise<void> {\n await this.page.locator('#release-header').click();\n }\n\n async expectTaskBorderWithColor(taskName: string, color: string): Promise<void> {\n await expect(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS('border-top-color', color);\n }\n\n async addTaskInPhase(taskTitle: string, taskGroup: string, taskType: string): Promise<void> {\n await this.phaseLocator.getByText('Add task').click();\n await this.page.locator('#task-selector').hover();\n await this.page.locator('button[aria-label=\"Clear\"]').click();\n await this.page.locator('#task-selector').fill(taskGroup);\n await this.page.getByTestId(taskType).click();\n await this.page.locator('.icon-close').click();\n await this.page.locator('#task-title').fill(taskTitle);\n await this.page.getByTestId('save-select-task-btn').click();\n await expect(this.phaseLocator.getByText(taskTitle)).toBeVisible();\n }\n\n async getNumberOfTasks(): Promise<number> {\n return await this.phaseLocator.locator('.task').count();\n }\n\n async expectToHaveNoneditableTitle(phaseTitle: string): Promise<void> {\n await expect(this.phaseLocator.locator('.phase-title > span')).toContainText(phaseTitle);\n }\n\n async expectToHaveTitle(phaseTitle: string): Promise<void> {\n await expect(this.phaseLocator.locator('.phase-title')).toContainText(phaseTitle);\n }\n\n async openContextMenuForTask(taskTitle: string): Promise<void> {\n await this.phaseLocator.locator('.task').filter({ hasText: taskTitle }).locator('.context-menu-button').click();\n }\n\n async skipFromContextMenu(comment: string, taskTitle: string): Promise<void> {\n await this.openContextMenuForTask(taskTitle);\n await this.page.locator('.dropdown-menu li').getByText('Skip').click();\n await this.commentBox.fill(comment);\n await this.page.getByRole('button', { name: 'Skip', exact: true }).click();\n }\n\n async expectTemplateLabelNotToBePresent(): Promise<void> {\n await expect(this.page.locator('.dot-chip').filter({ hasText: 'TEMPLATE' })).not.toBeVisible();\n }\n\n async openPhaseDetails(): Promise<void> {\n await this.phaseLocator.locator('.phase-details').click();\n }\n\n async close(): Promise<void> {\n await this.page.locator(\"button[type='button'] i[class='xl-icon close-icon']\").click();\n }\n\n async expectStartDateToBeDisplayed(): Promise<void> {\n await expect(this.page.locator('.modal .start-date')).toBeVisible();\n }\n\n async expectDueDateToBeDisplayed(): Promise<void> {\n await expect(this.page.locator('.modal .due-date')).toBeVisible();\n }\n\n async expectEndDateToBeDisplayed(): Promise<void> {\n await expect(this.page.locator('.modal .end-date')).toBeVisible();\n }\n\n async setTitleFromPhaseDetails(title: string): Promise<void> {\n await this.page.locator('h4.phase-title').click();\n await this.page.locator('h4.phase-title input').fill(title);\n await this.page.locator('h4.phase-title input').press('Enter');\n await expect(this.page.locator('h4.phase-title')).toContainText(title);\n }\n\n async setDueDateFromPhaseDetails(date?: string, monthYear?: string): Promise<void> {\n await this.dateUtil.openDatePicker('.modal .due-date .date-editor');\n await this.dateUtil.setDate(date, monthYear);\n }\n\n async setScheduledStartDateFromPhaseDetails(date?: string, monthYear?: string): Promise<void> {\n await this.dateUtil.openDatePicker('.modal .scheduled-start-date .date-editor');\n await this.dateUtil.setDate(date, monthYear);\n }\n\n async expectDurationToBe(duration: string): Promise<void> {\n await this.dateUtil.expectDurationToBe(duration);\n }\n\n async setDurationFromPhaseDetails(days?: string, hours?: string, mins?: string): Promise<void> {\n await this.dateUtil.setDuration(days, hours, mins);\n }\n\n async expectDueTimeToBe(format: string, date: Date | string): Promise<void> {\n await this.dateUtil.expectTimeToBe('.modal .due-date .time-picker-holder input', format, date);\n }\n\n async deleteTaskInPhase(taskName: string): Promise<void> {\n await this.page.locator('.task').filter({ hasText: taskName }).locator('.xl-icon.options-icon').click();\n await this.page.locator('.remove-task-button').click();\n await expect(this.page.getByRole('heading', { name: 'Delete Task' })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.phaseLocator.locator('li').filter({ hasText: taskName })).not.toBeVisible();\n }\n\n async deletePhase(phaseName: string): Promise<void> {\n await this.phaseLocator.locator('.phase-header').filter({ hasText: phaseName }).locator('.actions').hover();\n await this.phaseLocator.locator('.phase-header').filter({ hasText: phaseName }).locator('.delete-icon').click();\n await expect(this.page.getByRole('heading', { name: 'Delete Phase' })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.phaseLocator.locator('.phase-header').filter({ hasText: phaseName })).not.toBeVisible();\n }\n}\n","import { expect } from '@playwright/test';\nimport { ReleasesListPage } from './ReleasesListPage';\nimport { WithPage } from './WithPage';\n\nexport class TriggersPage extends WithPage {\n async openRelatedReleasesOf(title: string): Promise<ReleasesListPage> {\n await this.openContextMenu(title);\n await this.page.locator('.popover-content xlr-context-menu a', { hasText: 'View releases' }).click();\n return new ReleasesListPage(this.page);\n }\n\n private async openContextMenu(title: string): Promise<void> {\n await expect(async () => {\n await this.page.locator('.trigger-row-content', { hasText: title }).locator('.context-menu-button').click();\n await expect(this.page.locator('.popover-content')).toBeVisible();\n }).toPass();\n }\n}\n","import { expect, Page } from '@playwright/test';\nimport { ReleasePage } from './releases/ReleasePage';\nimport { WithPage } from './WithPage';\nimport { ReleaseCreatePage } from './releases/releaseCreatePage';\n\nexport class ReleasesListPage extends WithPage {\n releaseCreatePage: ReleaseCreatePage;\n constructor(page: Page) {\n super(page);\n this.releaseCreatePage = new ReleaseCreatePage(page);\n }\n\n async expectNumberOfReleases(releaseTitle: string, amount: number): Promise<void> {\n await this.filterReleaseByTitle(releaseTitle);\n if (amount === 1) {\n await expect(this.page.locator('.release').getByText(releaseTitle)).toBeVisible({ timeout: 5000 });\n } else {\n await expect(this.page.locator('.release').getByText(releaseTitle).count()).toBe(amount);\n }\n }\n\n async filterReleaseByAllStatus(): Promise<void> {\n await this.page.locator('.ci-status .remaining-tags').getByText('more').click();\n await this.page.locator('.ci-status .xl-react-link').getByText('Select all').click();\n }\n\n async openReleaseByName(releaseTitle: string): Promise<ReleasePage> {\n await this.page.locator('.release-line .row-wrapper .release-title-wrapper a', { hasText: releaseTitle }).click();\n return new ReleasePage(this.page);\n }\n\n async filterReleaseByTitle(releaseTitle: string): Promise<void> {\n await this.page.locator('.toggle-search-filter').click();\n await this.page.locator('.searchFilter').fill(releaseTitle);\n await this.page.locator('.searchFilter').press('Enter');\n await expect(this.page.locator('.release').getByText(releaseTitle)).toBeVisible();\n }\n\n async createNewRelease(releaseName: string, description: string): Promise<void> {\n await this.releaseCreatePage.setName(releaseName);\n await this.releaseCreatePage.setDescription(description);\n await this.releaseCreatePage.create();\n await expect(this.page.getByLabel('breadcrumb').getByText('Flow')).toBeVisible();\n }\n\n async gotoListView(): Promise<void> {\n await this.page.getByRole('tab', { name: 'release icon List' }).click();\n await expect(this.page.locator('.release-list')).toBeVisible();\n }\n\n async gotoCalendarView(): Promise<void> {\n await this.page.getByRole('tab', { name: 'calendar icon Calendar' }).click();\n await expect(this.page.locator('.tl-viewport')).toBeVisible();\n }\n}\n","import { Page } from '@playwright/test';\n\nexport class WithPage {\n protected readonly page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n}\n","import { Page } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class ReleaseCreatePage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async setName(releaseName: string): Promise<void> {\n await this.page.locator('#release-form-title').click();\n await this.page.locator('#release-form-title').fill(releaseName);\n }\n\n async setDescription(description: string): Promise<void> {\n await this.page.locator('.release-description').hover();\n await this.page.locator('.display').filter({ hasText: 'Set description' }).locator('.edit-icon').click();\n await this.page.locator('textarea').click();\n await this.page.locator('textarea').clear();\n await this.page.locator('textarea').fill(description);\n await this.page.getByText('Save', { exact: true }).click();\n }\n\n async create(): Promise<void> {\n await this.page.getByRole('button', { name: 'Create' }).waitFor({ state: 'visible' });\n await this.page.getByRole('button', { name: 'Create' }).click();\n }\n}\n","import { expect, Locator } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { waitForOneOf } from '../helper';\n\ntype ExpectWithLocator = (l: Locator) => void;\n\nexport class ReleaseVariablesPage extends WithPage {\n async openVariable(variableKey: string): Promise<ReleaseVariableModal> {\n await this.page.locator(`.variables-list .variable`).getByText(variableKey).click();\n return new ReleaseVariableModal(this.page);\n }\n}\n\nclass ReleaseVariableModal extends WithPage {\n private async expectValue(locators: Locator[], expectFn: ExpectWithLocator[]): Promise<void> {\n const [index, locator] = await waitForOneOf(locators);\n await expectFn[index](locator);\n }\n\n async expectValueToBe(value: string): Promise<void> {\n await this.expectValue(\n [\n this.page.locator('#modal .variable-value input'),\n this.page.locator('#modal .variable-value .field-readonly'),\n this.page.locator('#modal .variable-value .xl-map-string-string'),\n ],\n [(l) => expect(l).toHaveValue(value), (l) => expect(l).toHaveText(value), (l) => expect(l).toHaveText(value)],\n );\n }\n\n async expectValueToContain(value: string): Promise<void> {\n await this.expectValue(\n [\n this.page.locator('#modal .variable-value input'),\n this.page.locator('#modal .variable-value .field-readonly'),\n this.page.locator('#modal .variable-value .xl-map-string-string'),\n ],\n [\n (l) => expect(l.inputValue()).toContain(value),\n (l) => expect(l).toContainText(value),\n (l) => expect(l).toContainText(value),\n ],\n );\n }\n\n async close(): Promise<void> {\n await this.page.locator('#modal .modal-header button.close').click();\n }\n}\n","import { Locator } from '@playwright/test';\n\ntype WaitForRes = [locatorIndex: number, locator: Locator];\nexport async function waitForOneOf(locators: Locator[]): Promise<WaitForRes> {\n const res = await Promise.all([\n ...locators.map(async (locator, index): Promise<WaitForRes> => {\n let timedOut = false;\n await locator.waitFor({ state: 'visible', timeout: 2000 }).catch(() => (timedOut = true));\n return [timedOut ? -1 : index, locator];\n }),\n ]);\n const resolvedLocator = res.find((r) => r[0] !== -1);\n if (!resolvedLocator) {\n console.warn('waitForOneOf', res);\n throw new Error('no locator visible before timeout');\n }\n return resolvedLocator;\n}\n","import { ConfigRail } from './taskConfig';\nimport { WithPage } from '../WithPage';\nimport { Locator, Page } from '@playwright/test';\nimport { ConditionRail } from './taskCondition';\nimport { OverviewRail } from './taskOverview';\nimport { ActivityRail } from './taskActivity';\nimport { AttachmentRail } from './taskAttachments';\nimport { expect } from '@playwright/test';\n\ntype Rail = 'Overview' | 'Activity' | 'Config' | 'Scheduling' | 'Conditions' | 'Attributes' | 'Attach' | 'Tags';\n\nexport class TaskDrawer extends WithPage {\n activity: ActivityRail;\n attachment: AttachmentRail;\n config: ConfigRail;\n condition: ConditionRail;\n taskDrawerLocator: Locator;\n retryButton: Locator;\n cancelButton: Locator;\n commentBox: Locator;\n confirm: Locator;\n overview: OverviewRail;\n skipMenu: Locator;\n failMenu: Locator;\n openMenu: Locator;\n completeButton: Locator;\n\n constructor(page: Page) {\n super(page);\n this.taskDrawerLocator = this.page.locator('task-drawer .dot-drawer');\n this.retryButton = this.page.getByRole('button', { name: 'Retry' });\n this.cancelButton = this.page.getByTestId('task-action-cancel');\n this.commentBox = this.page.getByTestId('task-action-comment');\n this.confirm = this.page.getByTestId('dot-button');\n this.activity = new ActivityRail(page);\n this.attachment = new AttachmentRail(page);\n this.config = new ConfigRail(page);\n this.condition = new ConditionRail(page);\n this.overview = new OverviewRail(page);\n this.skipMenu = this.page.getByRole('menuitem', { name: 'Skip' });\n this.failMenu = this.page.getByRole('menuitem', { name: 'Fail' });\n this.openMenu = this.page.getByRole('button', { name: 'arrow-down icon', exact: true });\n this.completeButton = this.page.getByRole('button', { name: 'Complete' });\n }\n\n async openOverviewRail(): Promise<void> {\n await this.openRail('Overview');\n }\n\n async openActivityRail(): Promise<void> {\n await this.openRail('Activity');\n }\n\n async openSchedulingRail(): Promise<void> {\n await this.openRail('Scheduling');\n }\n\n async openConditionRail(): Promise<void> {\n await this.openRail('Conditions');\n }\n\n async openAttributesRail(): Promise<void> {\n await this.openRail('Attributes');\n }\n\n async openAttachRail(): Promise<void> {\n await this.openRail('Attach');\n }\n\n async openTagsRail(): Promise<void> {\n await this.openRail('Tags');\n }\n\n async openRail(rail: Rail): Promise<void> {\n await this.taskDrawerLocator.locator('.task-navigation-rail').getByText(rail).click();\n }\n\n async close(): Promise<void> {\n await this.taskDrawerLocator.locator('.task-drawer-header').getByTestId('close-btn').click();\n }\n\n async retryTask(comment: string): Promise<void> {\n await this.page.waitForTimeout(1000);\n await this.retryButton.click();\n await this.commentBox.fill(comment);\n await this.confirm.click();\n }\n\n async skipTask(comment: string): Promise<void> {\n await this.openMenu.click();\n await this.skipMenu.click();\n await this.commentBox.fill(comment);\n await this.confirm.click();\n }\n\n async failTask(comment: string): Promise<void> {\n await this.openMenu.click();\n await this.failMenu.click();\n await this.commentBox.fill(comment);\n await this.confirm.click();\n }\n\n async completeTask(comment: string): Promise<void> {\n await this.completeButton.click();\n await this.commentBox.fill(comment);\n await this.confirm.click();\n }\n\n async expectTaskTitle(taskTitle: string): Promise<void> {\n expect(await this.page.locator('.task-drawer .task-title-input .dot-view-mode-typography').innerText()).toContain(\n taskTitle,\n );\n }\n\n async expectTypeToContain(taskType: string): Promise<void> {\n expect(await this.page.locator('.task-drawer .task-type').innerText()).toContain(taskType);\n }\n\n async clickExpand(): Promise<void> {\n await this.page.getByRole('tooltip', { name: 'Expand' }).getByTestId('expand-btn').click();\n await expect(this.page.getByRole('tooltip', { name: 'Shrink' }).getByTestId('expand-btn')).toBeVisible();\n }\n\n async clickShrink(): Promise<void> {\n await this.page.getByRole('tooltip', { name: 'Shrink' }).getByTestId('expand-btn').click();\n await expect(this.page.getByRole('tooltip', { name: 'Expand' }).getByTestId('expand-btn')).toBeVisible();\n }\n\n async expectAssignedTo(username: string): Promise<void> {\n await expect(this.page.getByRole('button', { name: username })).toBeVisible();\n }\n\n async expectStartNowButtonToBeVisible(): Promise<void> {\n await expect(this.page.getByTestId('single-action-button')).toBeVisible();\n }\n\n async startNow(comment: string): Promise<void> {\n await this.page.getByTestId('single-action-button').click();\n await this.page.getByTestId('task-action-comment').fill(comment);\n await this.page.getByTestId('dot-button').click();\n await expect(this.page.getByTestId('single-action-button')).not.toBeVisible();\n }\n\n async expectCommentsToContain(text: string): Promise<void> {\n await expect(this.page.locator('.task-comment-body .markdown-wrapper p')).toContainText(text);\n }\n\n async switchWaitForScheduledDate(): Promise<void> {\n await this.page.locator('.wait-for-start input').click();\n }\n\n async expectWaitForScheduledDateToBeChecked(): Promise<void> {\n await expect(this.page.locator('.wait-for-start input')).toBeChecked();\n }\n\n async expectWaitForScheduledDateToBeUnchecked(): Promise<void> {\n await expect(this.page.locator('.wait-for-start input')).not.toBeChecked();\n }\n\n // Other locators are flaky and it can be replaced if we get locator change in the frontend\n async clickOnStartDate(): Promise<void> {\n await this.page.getByTestId('month-and-year').first().click();\n }\n\n async removeStartDate(): Promise<void> {\n await this.page.getByRole('button', { name: 'Set by user' }).locator('.MuiChip-deleteIcon').click();\n }\n\n async setStartDate(date: string): Promise<void> {\n await this.clickOnStartDate();\n await this.page.locator('.MuiPickersDay-root', { hasText: date }).click();\n }\n\n async assignToMe(userName: string, existingUsername: string): Promise<void> {\n await this.page.getByRole('button', { name: existingUsername }).click();\n await this.page.getByTestId(`render-option-${userName}`).click();\n }\n\n async setFlag(flagName: string, flagComment: string): Promise<void> {\n await this.page.getByTestId('flag-btn').click();\n await this.page.getByLabel(flagName).click();\n await this.page.getByPlaceholder('Set message').click();\n await this.page.getByPlaceholder('Set message').fill(flagComment);\n await this.page.getByPlaceholder('Set message').press('Enter');\n await expect(this.page.getByRole('button', { name: `flag icon ${flagComment}` })).toBeVisible();\n }\n\n async expectFlaggedWith(flagName: string, flagComment: string): Promise<void> {\n await this.page.getByRole('button', { name: 'flag icon' }).click();\n const regexPattern = new RegExp(`${flagComment}.*${flagName}`, 'i');\n await expect(this.page.getByText(regexPattern)).toBeVisible();\n }\n\n async expectStartDateToBeDisplayed(): Promise<void> {\n await expect(this.page.getByTestId('start-date-title')).toHaveCount(1);\n }\n\n async expectEndDateToBeDisplayed(): Promise<void> {\n await expect(this.page.getByTestId('end-date-title')).toHaveCount(1);\n }\n\n async expectStartDateAndEndDateToBeDisplayed(): Promise<void> {\n await expect(this.page.getByTestId('month-and-year')).toHaveCount(2);\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class ConfigRail extends WithPage {\n railLocator: Locator;\n\n constructor(page: Page) {\n super(page);\n this.railLocator = this.page.locator('task-drawer .dot-drawer .task-config');\n }\n\n async openInputProperties(): Promise<void> {\n await this.railLocator.locator('.task-config-header').getByText('Input properties').click();\n }\n\n async openOutputProperties(): Promise<void> {\n await this.railLocator.locator('.task-config-header').getByText('Output properties').click();\n }\n\n async getValueFromCi(propertyName: string): Promise<string> {\n return this.railLocator.locator(`input[id=\"${propertyName}\"]`).inputValue();\n }\n\n async getAllOptionsFromCi(propertyName: string): Promise<string[]> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n return this.railLocator.locator(`.dot-popper ul li`).allInnerTexts();\n }\n\n async setValueFromCi(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).clear();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n await this.railLocator.locator(`.dot-popper ul li`, { hasText: value }).click();\n }\n\n async getValueFromString(propertyName: string): Promise<string | null> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n return this.railLocator.locator(`input[id=\"${propertyName}\"]`).inputValue();\n }\n\n async setValueFromString(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setValueFromLargeString(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n await this.railLocator.locator(`textarea[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setValueFromPassword(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setAndCreateVariable(propertyName: string, variableName: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).clear();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(variableName);\n await this.railLocator.locator(`.dot-popper button`, { hasText: variableName }).click();\n }\n\n async setVariable(propertyName: string, variableName: string): Promise<void> {\n return this.setValueFromCi(propertyName, variableName);\n }\n\n async expectValueFromString(propertyName: string, propertyValue: string): Promise<void> {\n return await expect(this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`)).toHaveText(\n propertyValue,\n );\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class ConditionRail extends WithPage {\n railLocator: Locator;\n preconditionToggle: Locator;\n textEditor: Locator;\n saveButton: Locator;\n\n constructor(page: Page) {\n super(page);\n this.railLocator = this.page.locator('task-drawer .dot-drawer .task-conditions');\n this.preconditionToggle = page.getByLabel('Enable precondition');\n this.textEditor = page.getByRole('textbox');\n this.saveButton = page.getByTestId('save-btn');\n }\n\n async enablePrecondition(): Promise<void> {\n expect(await this.preconditionToggle.isChecked()).toBe(false);\n await this.preconditionToggle.check();\n }\n\n async disablePrecondition(): Promise<void> {\n expect(await this.preconditionToggle.isChecked()).toBe(true);\n await this.preconditionToggle.uncheck();\n }\n\n async setPrecondition(script: string): Promise<void> {\n await this.enablePrecondition();\n await this.textEditor.fill(script);\n await this.saveButton.dblclick();\n await this.page.waitForTimeout(1000);\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class OverviewRail extends WithPage {\n railLocator: Locator;\n dependency: Dependency;\n constructor(page: Page) {\n super(page);\n this.railLocator = this.page.locator('task-drawer .dot-drawer .task-drawer-content');\n this.dependency = new Dependency(page);\n }\n\n async openInputProperties(): Promise<void> {\n await this.railLocator.locator('.task-config-header').getByText('Input properties').click();\n }\n\n async openOutputProperties(): Promise<void> {\n await this.railLocator.locator('.task-config-header').getByText('Output properties').click();\n }\n\n async getValueFromCi(propertyName: string): Promise<string> {\n return this.railLocator.locator(`input[id=\"${propertyName}\"]`).inputValue();\n }\n\n async getAllOptionsFromCi(propertyName: string): Promise<string[]> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n return this.railLocator.locator(`.dot-popper ul li`).allInnerTexts();\n }\n\n async setValueFromCi(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).clear();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n await this.railLocator.locator(`.dot-popper ul li`, { hasText: value }).click();\n }\n\n async getValueFromString(propertyName: string): Promise<string | null> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n return this.railLocator.locator(`input[id=\"${propertyName}\"]`).inputValue();\n }\n\n async setValueFromString(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setValueFromLargeString(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`).focus();\n await this.railLocator.locator(`textarea[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setValueFromPassword(propertyName: string, value: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(value);\n }\n\n async setAndCreateVariable(propertyName: string, variableName: string): Promise<void> {\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).clear();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).click();\n await this.railLocator.locator(`input[id=\"${propertyName}\"]`).fill(variableName);\n await this.railLocator.locator(`.dot-popper button`, { hasText: variableName }).click();\n }\n\n async setVariable(propertyName: string, variableName: string): Promise<void> {\n return this.setValueFromCi(propertyName, variableName);\n }\n\n async expectValueFromString(propertyName: string, propertyValue: string): Promise<void> {\n return await expect(this.railLocator.locator(`.input-scalar-fake-input[id=\"${propertyName}\"]`)).toHaveText(\n propertyValue,\n );\n }\n\n async setValueFromMap(propertyName: string, key: string, value: string): Promise<void> {\n await this.railLocator.locator(`.input-with-map[data-test-id=\"${propertyName}\"] button.add-new-button`).click();\n await this.railLocator\n .locator(`.input-with-map[data-test-id=\"${propertyName}\"] input[id=\"new-row-key-input\"]`)\n .fill(key);\n await this.railLocator\n .locator(`.input-with-map[data-test-id=\"${propertyName}\"] input[id=\"new-row-value-input\"]`)\n .fill(value);\n await this.railLocator\n .locator(`.input-with-map[data-test-id=\"${propertyName}\"] button.map-row-save-button`)\n .click();\n }\n\n async setScript(script: string): Promise<void> {\n await this.page.locator('.code-editor textarea.ace_text-input').clear();\n await this.page.locator('.code-editor textarea.ace_text-input').fill(script);\n await this.page.locator('.code-editor .header button:has-text(\"Save\")').click();\n }\n\n async expectScriptToContain(script: string): Promise<void> {\n await expect(this.page.locator('.code-editor .ace_content')).toContainText(script);\n }\n\n async enterScriptForAutoComplete(script: string): Promise<void> {\n await this.page.locator('.code-editor textarea.ace_text-input').clear();\n await this.page.locator('.code-editor textarea.ace_text-input').fill(script);\n await this.page.locator('.code-editor textarea.ace_text-input').press('.');\n }\n\n async openScriptEditorInSeparateWindow(): Promise<void> {\n await this.page.getByTestId('fullscreen-enter-btn').click();\n expect(this.page.locator('#dialogTitle')).toBeVisible();\n }\n\n async closeFullscreenScriptWindowWithESC(): Promise<void> {\n await this.page.locator('#dialogTitle').press('Escape');\n expect(this.page.locator('#dialogTitle')).not.toBeVisible();\n }\n\n async closeFullscreenScriptWindow(): Promise<void> {\n await this.page.getByTestId('fullscreen-exit-btn').click();\n expect(this.page.locator('#dialogTitle')).not.toBeVisible();\n }\n\n async abort(comment: string): Promise<void> {\n await this.page.getByTestId('single-action-button').click();\n await this.page.getByTestId('task-action-comment').click();\n await this.page.getByTestId('task-action-comment').fill(comment);\n await this.page.getByTestId('dot-button').click();\n }\n\n async expectDependenciesDisplayed(dependencies: any[]): Promise<void> {\n await this.railLocator.locator('.gate-task-dependencies').waitFor();\n for (let i = 0; i < dependencies.length; i++) {\n await expect(this.page.locator('.dependency').filter({ hasText: dependencies[i] })).toBeVisible();\n }\n }\n\n async expectCanDeleteDependency(title: string, canDelete = true): Promise<void> {\n const depOptionsIcon = this.page\n .locator('.dependency')\n .filter({ has: this.page.getByRole('link', { name: title, exact: true }) })\n .locator('.icon-options');\n if (canDelete) {\n await depOptionsIcon.isVisible();\n await depOptionsIcon.click();\n await expect(this.railLocator.getByRole('menuitem', { name: 'Remove' })).toBeVisible();\n } else {\n await expect(depOptionsIcon).not.toBeVisible();\n }\n }\n\n async getDependencyCount(): Promise<number> {\n await expect(this.railLocator.locator('.gate-task-dependencies')).toBeVisible();\n const count = await this.railLocator.locator('.gate-task-dependencies .dependency').count();\n return count;\n }\n\n async addDependency(): Promise<void> {\n await expect(this.railLocator.locator('.add-dependency-btn')).toBeVisible();\n await this.railLocator.locator('.add-dependency-btn').click();\n }\n\n async expectDependencyText(dependencies: string): Promise<void> {\n await expect(this.railLocator.locator('.gate-task-dependencies')).toBeVisible();\n await expect(this.page.locator(`.gate-task-dependencies`).getByLabel(dependencies).first()).toBeVisible();\n }\n\n async clickEditDependency(dependencies: string): Promise<void> {\n const depOptionsIcon = this.page\n .locator('.dependency')\n .filter({ has: this.page.getByLabel(dependencies) })\n .first()\n .locator('.actions');\n await depOptionsIcon.isVisible();\n await depOptionsIcon.click();\n const frame = this.page.getByTestId('undefined-menu');\n if (await frame.isVisible()) {\n await this.railLocator.getByRole('menuitem', { name: 'Edit' }).click();\n } else {\n await depOptionsIcon.click();\n await this.railLocator.getByRole('menuitem', { name: 'Edit' }).click();\n }\n }\n}\n\nexport class Dependency extends WithPage {\n private readonly dependencyLocator: Locator;\n private release: Locator;\n private phase: Locator;\n private task: Locator;\n\n constructor(page: Page) {\n super(page);\n this.dependencyLocator = page.locator('.gate-task-dependencies .dependency-selector-component');\n this.release = this.dependencyLocator.locator('#release-dependency');\n this.phase = this.dependencyLocator.locator('#phase-dependency');\n this.task = this.dependencyLocator.locator('#task-dependency');\n }\n\n async getRelease(): Promise<any> {\n await this.release.isVisible();\n const releaseValue = await this.release.getAttribute('value');\n return releaseValue;\n }\n\n async getPhase(): Promise<any> {\n await this.phase.isVisible();\n const phaseValue = await this.phase.getAttribute('value');\n return phaseValue;\n }\n\n async getTask(): Promise<any> {\n await this.task.isVisible();\n const taskValue = await this.task.getAttribute('value');\n return taskValue;\n }\n\n async setRelease(releaseTitle: string): Promise<void> {\n await this.release.click();\n await this.release.fill(releaseTitle);\n await this.page.getByRole('option', { name: releaseTitle }).waitFor();\n await this.page.getByRole('option', { name: releaseTitle }).click();\n }\n\n async save(): Promise<void> {\n await expect(this.dependencyLocator.getByTestId('save-button')).toBeVisible();\n await this.dependencyLocator.getByTestId('save-button').click();\n }\n\n async setPhase(phaseTitle: string): Promise<void> {\n await this.phase.click();\n await this.phase.fill('');\n const count = await this.page.getByRole('option', { name: phaseTitle }).count();\n if (count > 0) {\n await this.page.getByRole('option', { name: phaseTitle }).click();\n } else {\n await this.page.locator('.phase-dependency').getByLabel('Open').click();\n await this.page.getByRole('option', { name: phaseTitle }).click();\n }\n }\n\n async setTask(taskTitle: string): Promise<void> {\n await this.task.click();\n await this.task.fill('');\n await this.page.getByRole('option', { name: taskTitle }).click();\n }\n\n async clearPhase(): Promise<void> {\n await this.phase.clear();\n }\n\n async expectVariableModeEnabled(mode: boolean): Promise<void> {\n await expect(this.dependencyLocator.getByLabel('input-variable')).toBeVisible();\n const variablemode = await this.dependencyLocator.getByLabel('input-variable').getAttribute('aria-pressed');\n expect(variablemode).toBe('' + mode + '');\n }\n\n async clickVariable(): Promise<void> {\n await this.dependencyLocator.getByLabel('input-variable').waitFor();\n await this.dependencyLocator.getByLabel('input-variable').click();\n }\n\n //TODO: getAttribute('value') is not working as expected. Need to be fixed with better alternative.\n async expectMinimumOptions(options: any[]): Promise<void> {\n await this.dependencyLocator.getByPlaceholder('Please select a variable of').click();\n for (let i = 0; i < options.length; i++) {\n const option = await this.dependencyLocator.locator('#mui-30-option-' + i).getAttribute('value');\n expect(options[i]).toContain(option);\n }\n }\n\n async enterNewVariable(variablename: string): Promise<void> {\n await this.page.getByLabel('Please select a variable of').click();\n await this.page.getByLabel('Please select a variable of').fill(variablename);\n await this.page.getByTestId('dot-action-item-btn').click();\n }\n\n async selectVariable(variablename: string): Promise<void> {\n await this.page.getByLabel('Please select a variable of').click();\n await this.page.getByRole('option', { name: variablename }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class ActivityRail extends WithPage {\n async expectCommentToContain(text: string): Promise<void> {\n await expect(this.page.locator('.task-comment .markdown-wrapper p')).toContainText(text);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class AttachmentRail extends WithPage {\n async expectWithAttachment(filename: string): Promise<void> {\n const test = this.page.locator('.task-attachments-grid .file-item-text');\n await test.isVisible();\n await expect(test).toContainText(filename);\n }\n\n async getAttachmentsListCount(): Promise<number> {\n return await this.page.locator('.file-upload-list div').count();\n }\n\n async uploadFile(filePath: string): Promise<void> {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.page.getByRole('button', { name: 'Select file(s)' }).click();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n async downloadFile(filename: string): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.page.on('download', () => {});\n const downloadPromise = this.page.waitForEvent('download');\n await this.page\n .locator('li')\n .filter({ hasText: '' + filename + '' })\n .click();\n await downloadPromise;\n }\n\n async deleteAttachment(fileName: string): Promise<void> {\n await this.page.locator('li').filter({ hasText: fileName }).click();\n await this.page.getByLabel('delete file').click();\n await this.page.getByRole('button', { name: 'Delete' }).waitFor({ state: 'visible' });\n await this.page.getByRole('button', { name: 'Delete' }).click();\n }\n\n async expectWithNoAttachment(tempFile: string): Promise<void> {\n const test = await this.page.locator('.task-attachments-grid .file-item-text').count();\n if (test > 0) {\n await expect(this.page.locator('.task-attachments-grid .file-item-text')).not.toContainText(tempFile);\n } else {\n await expect(this.page.locator('.task-attachments-grid .file-item-text')).not.toBeVisible();\n }\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport moment from 'moment';\n\nexport class ReleasePropertiesPage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async editReleaseName(name: string): Promise<void> {\n await this.page.locator('#release-form-title').clear();\n await this.page.locator('#release-form-title').fill(name);\n }\n\n async setDescription(description: string): Promise<void> {\n await this.page.locator('.display > .xl-icon').first().click();\n await this.page.locator('textarea').click();\n await this.page.locator('textarea').clear();\n await this.page.locator('textarea').fill(description);\n await this.page.getByText('Save').first().click();\n }\n\n async setScriptUsername(username: string): Promise<void> {\n await this.page.getByPlaceholder('Set user...').waitFor();\n await this.page.getByPlaceholder('Set user...').click();\n await this.page.locator('input[name=\"\"]').fill(username, { timeout: 2000 });\n }\n\n async setScriptUserPassword(password: string): Promise<void> {\n await this.page.locator('span[name=\"scriptUserPassword\"]').waitFor();\n await this.page.locator('span[name=\"scriptUserPassword\"]').click();\n await this.page.locator('input[name=\"scriptUserPassword\"]').fill(password, { timeout: 2000 });\n }\n\n async save(): Promise<void> {\n await this.page.getByRole('button', { name: 'Save' }).waitFor();\n await this.page.getByRole('button', { name: 'Save' }).click();\n await expect(this.page.locator('.form-footer .last-saved')).toBeVisible();\n }\n\n async reset(): Promise<void> {\n await this.page.getByRole('button', { name: 'Reset' }).waitFor();\n await this.page.getByRole('button', { name: 'Reset' }).click();\n }\n\n async expectWithAttachment(filename: string): Promise<void> {\n await expect(this.page.locator('.attachments tr td a').filter({ hasText: filename })).toBeVisible();\n }\n\n async getAttachmentsListCount(): Promise<number> {\n return await this.page.locator('.attachments tr').count();\n }\n\n async uploadFile(filePath: string): Promise<void> {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.page.locator('input[type=\"file\"]').click();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n async expectWithNoAttachment(filename: string): Promise<void> {\n const test = await this.page.locator('.attachments').isVisible();\n if (test) {\n await expect(this.page.locator('.attachments tr td a').filter({ hasText: filename })).not.toBeVisible();\n }\n }\n\n async downloadFile(filename: string): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const downloadPromise1 = this.page.waitForEvent('download');\n await this.page.getByText(filename).click();\n const download = await downloadPromise1;\n // Wait for the download process to complete and save the downloaded file in given path.\n await download.saveAs('./core/xlr-ui/build/playwright/' + download.suggestedFilename());\n expect(download.suggestedFilename()).toBe(filename);\n }\n\n async deleteAttachment(fileName: string): Promise<void> {\n await this.page.getByRole('row', { name: fileName }).locator('span').click();\n await this.page.getByText('Remove').click();\n }\n\n async expectVariableDisplayed(variable: string, present: boolean): Promise<void> {\n if (present)\n await expect(this.page.locator(`#release-properties .form-group`, { hasText: variable })).toHaveCount(1);\n else await expect(this.page.locator(`#release-properties .form-group`, { hasText: variable })).toHaveCount(0);\n }\n\n async setScheduledStartDate(date?: string, monthYear?: string): Promise<void> {\n await this.page.locator(`.scheduled-start-date .date`).click();\n const prev = this.page.locator('.datepicker-days .prev');\n const next = this.page.locator('.datepicker-days .next');\n const monYear = this.page.locator('.datepicker-days .datepicker-switch');\n\n const thisMonth = moment(monthYear, 'MMMM YYYY').isBefore();\n\n while ((await monYear.textContent()) != monthYear) {\n if (thisMonth) {\n await prev.click();\n } else {\n await next.click();\n }\n }\n await this.page\n .getByRole('cell', { name: '' + date + '' })\n .first()\n .click();\n }\n\n async setScheduledStartTime(hrs?: string, mins?: string, meridian?: string): Promise<void> {\n await this.page.locator('.scheduled-start-date .time-picker-holder').click();\n if (typeof hrs !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-hour').click();\n await this.page.locator('.bootstrap-timepicker-hour').clear();\n await this.page.locator('.bootstrap-timepicker-hour').fill(hrs);\n }\n if (typeof mins !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-minute').click();\n await this.page.locator('.bootstrap-timepicker-minute').clear();\n await this.page.locator('.bootstrap-timepicker-minute').fill(mins);\n }\n if (typeof meridian !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-meridian').click();\n await this.page.locator('.bootstrap-timepicker-meridian').clear();\n await this.page.locator('.bootstrap-timepicker-meridian').fill(meridian);\n }\n await this.page.keyboard.press('Escape');\n }\n\n async setDuration(days?: string, hours?: string, mins?: string): Promise<void> {\n await this.page.locator('.duration-editor').click();\n if (typeof days !== 'undefined') {\n await this.page.locator('.days').click();\n await this.page.locator('.days').clear();\n await this.page.locator('.days').fill(days);\n }\n if (typeof hours !== 'undefined') {\n await this.page.locator('.hours').click();\n await this.page.locator('.hours').clear();\n await this.page.locator('.hours').fill(hours);\n }\n if (typeof mins !== 'undefined') {\n await this.page.locator('.minutes').click();\n await this.page.locator('.minutes').clear();\n await this.page.locator('.minutes').fill(mins);\n }\n await this.page.keyboard.press('Escape');\n }\n\n async expectScheduledStartDateToBe(date: string): Promise<void> {\n expect(await this.page.locator(`.scheduled-start-date .date input`).getAttribute('value')).toContain(date);\n }\n\n async expectScheduledStartTimeToBe(date: string): Promise<void> {\n expect(await this.page.locator(`.scheduled-start-date .time input`).getAttribute('value')).toContain(date);\n }\n\n async expectDueDateToBe(date: string): Promise<void> {\n expect(await this.page.locator('.due-date .date input').getAttribute('value')).toContain(date);\n }\n\n async expectedDueDateTime(time: string): Promise<void> {\n expect(await this.page.locator('.due-date .time input').getAttribute('value')).toContain(time);\n }\n\n async expectDurationToBe(duration: string): Promise<void> {\n expect(await this.page.locator('.duration-editor').textContent()).toBe(duration);\n }\n\n async setDueDate(hrs?: string, min?: string, meridian?: string): Promise<void> {\n await this.page.locator('.due-date .time-picker-holder').click();\n if (typeof hrs !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-hour').click();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-hour').clear();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-hour').fill(hrs);\n }\n if (typeof min !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-minute').click();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-minute').clear();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-minute').fill(min);\n }\n if (typeof meridian !== 'undefined') {\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-meridian').click();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-meridian').clear();\n await this.page.locator('.bootstrap-timepicker-widget .bootstrap-timepicker-meridian').fill(meridian);\n }\n await this.page.keyboard.press('Escape');\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport moment from 'moment';\n\nexport class DateUtil extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async openDatePicker(selector: string): Promise<void> {\n await this.page.locator(`${selector} .date`).click();\n }\n\n /**\n * Setting date, month and year from calendar picker\n */\n async setDate(date?: string, monthYear?: string): Promise<void> {\n const prev = this.page.locator('.datepicker-days .prev');\n const next = this.page.locator('.datepicker-days .next');\n const monYear = this.page.locator('.datepicker-days .datepicker-switch');\n\n const thisMonth = moment(monthYear, 'MMMM YYYY').isBefore();\n while ((await monYear.textContent()) != monthYear) {\n if (thisMonth) {\n await prev.click();\n } else {\n await next.click();\n }\n }\n await this.page\n .getByRole('cell', { name: '' + date + '' })\n .first()\n .click();\n }\n\n async expectDurationToBe(duration: string): Promise<void> {\n expect(await this.page.locator('.duration-editor').textContent()).toBe(duration);\n }\n\n async setDuration(days?: string, hours?: string, mins?: string): Promise<void> {\n await this.page.locator('.duration-editor').click();\n if (typeof days !== 'undefined') {\n await this.page.locator('.days').fill(days);\n }\n if (typeof hours !== 'undefined') {\n await this.page.locator('.hours').fill(hours);\n }\n if (typeof mins !== 'undefined') {\n await this.page.locator('.minutes').fill(mins);\n }\n await this.page.keyboard.press('Enter');\n }\n\n async expectTimeToBe(selector: string, format: string, date: Date | string): Promise<void> {\n if (typeof date === 'string') {\n date = new Date(date);\n }\n const formattedDate = moment(date).format(format);\n const input = this.page.locator(`${selector}`);\n await expect(input).toBeVisible();\n const value = await input.inputValue();\n expect(value).toBe(formattedDate);\n }\n\n /**\n *\n * @returns Getting current month and year in the format \"MonthName YYYY\"\n */\n async getCurrentMonthYear(): Promise<string> {\n const monthNames = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n const d = new Date();\n const month = monthNames[d.getMonth()];\n const year = d.getFullYear();\n return `${month} ${year}`;\n }\n\n /**\n *\n * @returns Getting current date in the format \"dd MonthName YYYY\"\n */\n async getCurrentDate(): Promise<string> {\n const d = new Date();\n const date = d.getDate();\n const monthYear = await this.getCurrentMonthYear();\n return `${date} ${monthYear}`;\n }\n\n /**\n *\n * @param days Number of days to add to current date within the current month\n * @returns\n */\n async getFutureDate(days: number): Promise<string> {\n const d = new Date();\n d.setDate(d.getDate() + days);\n const date = d.getDate();\n const monthYear = await this.getCurrentMonthYear();\n return `${date} ${monthYear}`;\n }\n}\n","import * as fs from 'fs';\nimport path from 'path';\nimport { WithPage } from '../WithPage';\nimport { Locator, Page, expect } from '@playwright/test';\n\nexport class Util extends WithPage {\n tempDir: string;\n content: string;\n closeIcon: Locator;\n\n constructor(page: Page) {\n super(page);\n this.tempDir = '';\n this.content = '';\n this.closeIcon = this.page.locator('.xl-icon.close-icon');\n }\n\n async createTempFile(fileName: path.ParsedPath | string, testInfo: any): Promise<void> {\n const content = fileName.toString();\n const tempDir = testInfo.outputPath(fileName.toString());\n fs.promises.writeFile(tempDir, content, 'utf8');\n }\n\n async expandAllFolders(): Promise<void> {\n const icExpandTreeview1 = this.page.locator('.rstm-toggle-icon.xl-icon.arrow-right-icon');\n for (const element of await icExpandTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.expandAllFolders();\n }\n }\n await expect(icExpandTreeview1).not.toBeVisible();\n }\n\n async openSideNavMenu(menuItem: string): Promise<void> {\n await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }).scrollIntoViewIfNeeded();\n await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }).click();\n }\n\n async openNestedMenuItem(nestedMenuItem: string): Promise<void> {\n await this.page.locator('.MuiList-root li').getByText(nestedMenuItem, { exact: true }).scrollIntoViewIfNeeded();\n await this.page.locator('.MuiList-root li').getByText(nestedMenuItem, { exact: true }).click();\n }\n\n async clickCloseIcon(): Promise<void> {\n await this.closeIcon.click();\n }\n\n async clickOnStatusField(): Promise<void> {\n await this.page.locator('.ci-filter-status.ng-isolate-scope').click();\n }\n\n async clickOnStatus(statusNames: string[]): Promise<void> {\n await this.clickOnStatusClearAll();\n await this.clickOnStatusField();\n for (let i = 0; i < statusNames.length; i++) {\n await this.page.locator(`i.xl-icon.icon-s.checkbox[data='${statusNames[i]}']`).click();\n }\n // Clicking outside to close the grid dropdown\n await this.page.getByText('Status').click();\n }\n\n async clickOnStatusClearAll(): Promise<void> {\n await this.clickOnStatusField();\n await this.page.locator('a.xl-react-link', { hasText: 'Clear all' }).click();\n await this.page.getByText('Status').click();\n }\n\n async clickOnStatusSelectAll(): Promise<void> {\n await this.clickOnStatusField();\n await this.page.locator('a.xl-react-link', { hasText: 'Select all' }).click();\n await this.page.getByText('Status').click();\n }\n\n async setOrderBy(orderBy: string): Promise<void> {\n await this.page.locator('.order-by-filter .btn:first-child').click();\n await this.page.locator(`.order-by-filter .bootstrap-link:has-text('${orderBy}')`).click();\n }\n\n async setSearchFilter(filterText: string): Promise<void> {\n await this.page.locator('.searchFilter').fill(filterText);\n }\n\n async clearSearchFilter(): Promise<void> {\n await this.page.locator('.searchFilter').clear();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class ApplicationsPage extends WithPage {\n async goToApplicationsPage(): Promise<this> {\n await this.page.goto('./#/applications');\n await expect(this.page).toHaveTitle('Applications - Digital.ai Release');\n return this;\n }\n\n async addNewApplication(applicationName: string): Promise<this> {\n await this.page.locator(`//button[normalize-space()='New application']`).click();\n await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);\n await this.page.locator(`//button[normalize-space()='Save']`).click();\n return this;\n }\n\n async verifyApplicationisCreated(applicationName: string): Promise<this> {\n await this.page.waitForSelector(`div[title='${applicationName}'] strong`);\n return this;\n }\n\n async createApplicationAndLinkEnvironment(environmentName: string, applicationName: string): Promise<this> {\n await this.page.locator(`//button[normalize-space()='New application']`).click();\n await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);\n await this.page.locator(\"input[placeholder='Filter environment name...']\").type(environmentName);\n await this.page.locator(`div[title='${environmentName}']`).click();\n await this.page.locator(`//button[normalize-space()='Save']`).click();\n await this.page.locator('i.xl-icon.close-icon').click();\n return this;\n }\n}\n","export class DataRandomGenerator {\n static codePointA = 65;\n static codePointZ = 90;\n\n static getString(): string {\n return Math.random().toString(36).substring(2);\n }\n\n static getNumber(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1) + min);\n }\n\n static getAlphabetsString(length: number): string {\n let alphabets = '';\n for (let i = 0; i < length; i++) {\n alphabets += String.fromCharCode(\n DataRandomGenerator.getNumber(DataRandomGenerator.codePointA, DataRandomGenerator.codePointZ),\n );\n }\n return alphabets;\n }\n}\n","import { expect, Locator, Page } from '@playwright/test';\nimport { FolderDeliveryPage } from './folder/folderDeliveryPage';\nimport { FolderGroupsPage } from './folder/folderGroupPage';\nimport { FolderPatternPage } from './folder/folderPatternPage';\nimport { Util } from './common/util';\nimport { WithPage } from './WithPage';\n\nexport class FolderPage extends WithPage {\n deliveryPage: FolderDeliveryPage;\n expandButton: Locator;\n patternPage: FolderPatternPage;\n folderGroupsPage: FolderGroupsPage;\n util: Util;\n\n constructor(page: Page) {\n super(page);\n this.deliveryPage = new FolderDeliveryPage(page);\n this.expandButton = this.page.getByRole('button', { name: ' Expand' });\n this.folderGroupsPage = new FolderGroupsPage(page);\n this.patternPage = new FolderPatternPage(page);\n this.util = new Util(page);\n }\n\n async openFoldersPage(): Promise<this> {\n await this.page.goto('./#/folders');\n await expect(this.page).toHaveTitle('Folders - Digital.ai Release');\n return this;\n }\n\n async backToAllFolders(): Promise<this> {\n await this.page.locator('.icon-back.dot-i').click();\n await expect(this.page).toHaveTitle('Folders - Digital.ai Release');\n await this.page.locator('button.btn-add-folder').isVisible();\n return this;\n }\n\n async createFolder(folderName: string): Promise<this> {\n await this.page.getByRole('button', { name: ' Add folder' }).click();\n await expect(this.page.getByText('Create a new folder in root')).toBeVisible();\n await this.page.getByRole('textbox').fill(folderName);\n await this.page.getByRole('button', { name: 'Create' }).click();\n await expect(this.page.getByRole('link', { name: folderName })).toBeVisible();\n return this;\n }\n\n async openFolder(folderName: string): Promise<this> {\n await this.page.getByTitle(folderName).waitFor({ timeout: 500 });\n await this.page.getByTitle(folderName).click();\n await expect(this.page.locator('.MuiBreadcrumbs-li').getByRole('link', { name: `${folderName}` })).toBeVisible();\n return this;\n }\n\n async openGroups(): Promise<FolderGroupsPage> {\n await this.util.openSideNavMenu('Groups');\n await expect(this.page.getByLabel('breadcrumb').getByText('Groups')).toBeVisible();\n return this.folderGroupsPage;\n }\n\n async createGroup(groupName: string): Promise<this> {\n await this.page.locator(\"//button[normalize-space()='New release group']\").click();\n await this.page.locator('#title').type(groupName);\n await this.page.locator(\"button[type='submit']\").click();\n return this;\n }\n\n async selectPlannedStatus(): Promise<this> {\n await this.page.locator('.remaining-tags').click();\n await this.page.locator('.xl-react-link:text-is(\"Clear all\")').click();\n await this.page.locator('.react-tagsinput').click();\n await this.page.locator(`.yt-option[title=Planned]`).click();\n await this.page.locator(\"//span[normalize-space()='Status']\").click();\n return this;\n }\n\n async expectReleaseGroupisDisplayed(title: string): Promise<this> {\n //await this.page.locator(`.fc-list-item-title-wrapper .fc-list-item-title strong:text-is('${title}`).isVisible()\n await this.page.waitForSelector(`.fc-list-item-title-wrapper .fc-list-item-title strong:text-is('${title}')`);\n return this;\n }\n\n async createSubFolder(parentFolder: string, subFolderName: string): Promise<void> {\n await this.clickExpandButton();\n await this.page.getByRole('link', { name: parentFolder }).hover();\n await this.clickFolderOptions(parentFolder, 'add');\n await this.page.getByRole('textbox').fill(subFolderName);\n await this.page.getByRole('button', { name: 'Create' }).click();\n await expect(this.page.getByRole('link', { name: subFolderName })).toBeVisible();\n }\n\n async renameFolder(existingFolderName: string, newFolderName: string): Promise<void> {\n await this.clickExpandButton();\n await this.page.getByRole('link', { name: existingFolderName }).hover();\n await this.clickFolderOptions(existingFolderName, 'edit');\n await this.page.locator('.folder-row-wrapper input').click();\n await this.page.locator('.folder-row-wrapper input').fill(newFolderName);\n await this.page.keyboard.press('Enter');\n await expect(this.page.getByRole('link', { name: newFolderName })).toBeVisible();\n }\n\n async deleteFolder(folderName: string): Promise<void> {\n await this.clickExpandButton();\n await this.page.getByRole('link', { name: folderName }).hover();\n await this.clickFolderOptions(folderName, 'delete');\n await expect(this.page.getByRole('heading', { name: 'Delete folder' }).locator('span')).toBeVisible();\n await expect(\n this.page\n .locator('.xl-react-modal .confirmation-content')\n .getByText(\n 'You are about to delete the folder ' +\n folderName +\n '. Folders nested in ' +\n folderName +\n ' will also be deleted.',\n ),\n ).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.page.getByRole('link', { name: folderName })).not.toBeVisible();\n }\n\n async searchFolderByName(folderName: string): Promise<void> {\n await this.page.getByPlaceholder('Search folder...').click();\n await this.page.getByPlaceholder('Search folder...').clear();\n await this.page.getByPlaceholder('Search folder...').fill(folderName);\n await this.page.getByPlaceholder('Search folder...').press('Enter');\n await expect(this.page.getByRole('link', { name: folderName })).toBeVisible();\n }\n\n async openPatterns(): Promise<FolderPatternPage> {\n await this.util.openSideNavMenu('Deliveries');\n await this.util.openNestedMenuItem('Patterns');\n await expect(this.page.getByLabel('breadcrumb').getByText('Patterns')).toBeVisible();\n return this.patternPage;\n }\n\n async clickFolderOptions(folderName: string, option: string): Promise<void> {\n await this.page.locator('.folder-row-wrapper', { hasText: folderName }).locator(`.xl-icon.${option}-icon`).click();\n }\n\n async clickExpandButton(): Promise<void> {\n if (await this.expandButton.isEnabled()) {\n await this.expandButton.click();\n }\n }\n\n async openDeliveriesOverview(): Promise<FolderDeliveryPage> {\n await this.util.openSideNavMenu('Deliveries');\n await this.util.openNestedMenuItem('Deliveries overview');\n await expect(this.page.getByLabel('breadcrumb').getByText('Deliveries')).toBeVisible();\n return this.deliveryPage;\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { Util } from '../common/util';\n\nexport class FolderDeliveryPage extends WithPage {\n util: Util;\n addName: Locator;\n addDescription: Locator;\n searchForDelivery: Locator;\n constructor(page: Page) {\n super(page);\n this.util = new Util(page);\n this.addName = page.locator('.xl-react-components input[placeholder=\"Add...\"]');\n this.addDescription = page.getByPlaceholder('Set description...');\n this.searchForDelivery = page.getByPlaceholder('Search for deliveries...', { exact: true });\n }\n\n async filterDeliveryByName(deliveryName: string): Promise<void> {\n await this.searchForDelivery.click();\n await this.searchForDelivery.clear();\n await this.searchForDelivery.fill(deliveryName);\n await this.searchForDelivery.press('Enter');\n await expect(\n this.page.locator('xlr-delivery-row').filter({ hasText: deliveryName }).getByRole('link').first(),\n ).toBeVisible();\n }\n\n async editDelivery(deliveryName: string, newDeliveryName: string): Promise<void> {\n await this.page\n .locator('xlr-delivery-row')\n .filter({ hasText: deliveryName })\n .locator('.fc-list-item-actions .edit-icon')\n .click();\n await this.util.openSideNavMenu('Properties');\n await this.addName.click();\n await this.addName.clear();\n await this.addName.fill(newDeliveryName);\n await this.page.getByRole('button', { name: 'Save' }).click();\n expect(await this.page.locator('.saved-text').textContent()).toContain('Last saved on ');\n }\n\n async deleteDelivery(deliveryName: string): Promise<void> {\n await this.page\n .locator('xlr-delivery-row')\n .filter({ hasText: deliveryName })\n .locator('.fc-list-item-actions .delete-icon')\n .click();\n await expect(this.page.getByText('Delete release delivery', { exact: true })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(\n this.page.locator('.success').filter({ hasText: 'Deleted release delivery successfully' }),\n ).toBeVisible();\n }\n}\n","import { Page, expect, Locator } from '@playwright/test';\nimport { Util } from '../common/util';\nimport { WithPage } from '../WithPage';\nimport { DateUtil } from '../common/dateUtil';\n\nexport class FolderGroupsPage extends WithPage {\n util: Util;\n newReleaseGroupButton: Locator;\n dateUtil: DateUtil;\n dateMonth: Date;\n\n constructor(page: Page) {\n super(page);\n this.dateUtil = new DateUtil(page);\n this.util = new Util(page);\n this.newReleaseGroupButton = page.getByTestId('dot-button');\n this.dateMonth = new Date();\n }\n\n async createGroup(groupName: string, startDate?: string, endDate?: string): Promise<void> {\n await this.newReleaseGroupButton.click();\n await expect(this.page.getByText('Create new release group')).toBeVisible();\n await this.enterGroupName(groupName);\n const monthYear = await this.dateUtil.getCurrentMonthYear();\n if (startDate) await this.enterStartDate(startDate, monthYear);\n if (endDate) await this.enterEndDate(endDate, monthYear);\n await this.clickCreate();\n await this.expectSuccessMessageOnReleaseGroupCreation();\n }\n\n async addReleaseToGroup(releaseName: string): Promise<void> {\n await expect(this.page.locator('.action-toolbar-actions button').filter({ hasText: 'Add release' })).toBeEnabled();\n await this.page.locator('.action-toolbar-actions button').filter({ hasText: 'Add release' }).click({ force: true });\n await this.page.getByPlaceholder('Search for a release...').click();\n await this.page.getByPlaceholder('Search for a release...').fill(releaseName);\n await this.page.keyboard.press('Enter');\n await this.page\n .locator('release-list-modal-release-row')\n .filter({ hasText: releaseName })\n .getByRole('checkbox')\n .check();\n await this.page.getByRole('button', { name: 'Add' }).click();\n await this.expectSuccessMessageOnAddingReleaseToGroup();\n await expect(this.page.getByRole('link', { name: releaseName })).toBeVisible();\n }\n\n async editReleaseGroupName(newGroupName: string): Promise<void> {\n await this.page.locator('#title').click();\n await this.page.locator('#title').clear();\n await this.page.locator('#title').fill(newGroupName);\n }\n\n async enterGroupName(groupName: string): Promise<void> {\n await this.page.locator('#title').click();\n await this.page.locator('#title').fill(groupName);\n }\n\n async enterStartDate(date: string, monthYear: string): Promise<void> {\n await this.page.locator('.form-group').filter({ hasText: 'start date' }).locator('.date input').click();\n await this.dateUtil.setDate(date, monthYear);\n }\n\n async enterEndDate(date: string, monthYear: string): Promise<void> {\n await this.page.locator('.form-group').filter({ hasText: 'end date' }).locator('.date input').click();\n await this.dateUtil.setDate(date, monthYear);\n }\n\n async clickCreate(): Promise<void> {\n await this.page.getByRole('button', { name: 'Create' }).click();\n }\n\n async expectSuccessMessageOnReleaseGroupCreation(): Promise<void> {\n await expect(this.page.getByLabel('success')).toBeVisible();\n await expect(this.page.locator('.success').filter({ hasText: 'Created release group successfully' })).toBeVisible();\n }\n\n async expectSuccessMessageOnAddingReleaseToGroup(): Promise<void> {\n await expect(this.page.getByLabel('success')).toBeVisible();\n await expect(\n this.page.locator('.success').filter({ hasText: 'Added release to release group successfully' }),\n ).toBeVisible();\n }\n\n async expectSuccessMessageOnUpdatingGroup(): Promise<void> {\n await expect(this.page.getByLabel('success')).toBeVisible();\n await expect(this.page.locator('.success').filter({ hasText: 'Updated release group successfully' })).toBeVisible();\n }\n\n async searchReleaseGroupByTitle(title: string): Promise<void> {\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).click();\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).fill(title);\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).press('Enter');\n await expect(this.page.locator('.fc-list-item-title')).toContainText(title);\n }\n\n async deleteReleaseGroup(title: string): Promise<void> {\n await this.page.locator('.fc-list-item-line').filter({ hasText: title }).locator('.fc-item-delete').click();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n }\n\n async clickReleaseGroupEdit(title: string): Promise<void> {\n await this.page.locator('.fc-list-item-line').filter({ hasText: title }).locator('.fc-item-update').click();\n }\n\n async clickSave(): Promise<void> {\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n async clickCancel(): Promise<void> {\n await this.page.getByRole('button', { name: 'Cancel' }).click();\n }\n\n async clickOnStatusField(): Promise<void> {\n await this.page.locator('.ci-filter-status.ng-isolate-scope').click();\n }\n\n async statusFilter(statusNames: string[]): Promise<void> {\n await this.clickOnStatusClearAll();\n await this.clickOnStatusField();\n for (let i = 0; i < statusNames.length; i++) {\n await this.page.locator(`i.xl-icon.icon-s.checkbox[data='${statusNames[i]}']`).click();\n }\n }\n\n async clickOnStatusClearAll(): Promise<void> {\n await this.clickOnStatusField();\n await this.page.locator('a.xl-react-link', { hasText: 'Clear all' }).click();\n }\n\n async clickOnStatusSelectAll(): Promise<void> {\n await this.clickOnStatusField();\n await this.page.locator('a.xl-react-link', { hasText: 'Select all' }).click();\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { Util } from '../common/util';\n\nexport class FolderPatternPage extends WithPage {\n util: Util;\n addName: Locator;\n addDescription: Locator;\n constructor(page: Page) {\n super(page);\n this.util = new Util(page);\n this.addName = page.locator('.xl-react-components input[placeholder=\"Add...\"]');\n this.addDescription = page.getByPlaceholder('Set description...');\n }\n\n async clickNewDeliveryPattern(): Promise<void> {\n await this.page.getByTestId('dot-button').click();\n await expect(this.page.getByRole('heading', { name: 'Create delivery pattern' })).toBeVisible();\n }\n\n async setPatternName(patternName: string): Promise<void> {\n await this.addName.click();\n await this.addName.clear();\n await this.addName.fill(patternName);\n }\n\n async setPatternDescription(patternDescription: string): Promise<void> {\n await this.page.getByPlaceholder('Set description...').click();\n await this.page.getByPlaceholder('Set description...').clear();\n await this.page.getByPlaceholder('Set description...').fill(patternDescription);\n }\n\n async enableAutoComplete(): Promise<void> {\n await this.page.getByRole('checkbox').check();\n }\n\n async disableAutoComplete(): Promise<void> {\n await this.page.getByRole('checkbox').uncheck();\n }\n\n async setDuration(month: number, days: number, hours: number): Promise<void> {\n await this.page.getByRole('group', { name: 'Pattern details' }).getByRole('textbox').click();\n await this.page.locator('input[name=\"months\"]').click();\n await this.page.locator('input[name=\"months\"]').fill(month.toString());\n await this.page.locator('input[name=\"days\"]').click();\n await this.page.locator('input[name=\"days\"]').fill(days.toString());\n await this.page.locator('input[name=\"hours\"]').click();\n await this.page.locator('input[name=\"hours\"]').fill(hours.toString());\n }\n\n async createNewPattern(patternName: string, patternDescription: string): Promise<void> {\n await this.clickNewDeliveryPattern();\n await this.setPatternName(patternName);\n await this.setPatternDescription(patternDescription);\n await expect(this.page.locator('.action-toolbar-actions button').filter({ hasText: 'Create' })).toBeEnabled();\n await this.page.locator('.action-toolbar-actions button').filter({ hasText: 'Create' }).click({ force: true });\n await expect(this.page.getByLabel('breadcrumb').getByText('Delivery flow')).toBeVisible();\n }\n\n async clickEditPatternIcon(patternName: string): Promise<void> {\n await this.page.locator('.delivery-pattern-row').filter({ hasText: patternName }).locator('.edit').click();\n await expect(this.page.getByLabel('breadcrumb').getByText('Delivery flow')).toBeVisible();\n }\n\n async clickCopyPatternIcon(patternName: string): Promise<void> {\n await this.page.locator('.delivery-pattern-row').filter({ hasText: patternName }).locator('.copy').click();\n await expect(this.page.getByText('Copy delivery pattern')).toBeVisible();\n }\n\n async filterPatternByName(patternName: string): Promise<void> {\n await this.page.getByPlaceholder('Filter by name...').click();\n await this.page.getByPlaceholder('Filter by name...').clear();\n await this.page.getByPlaceholder('Filter by name...').fill(patternName);\n await this.page.getByPlaceholder('Filter by name...').press('Enter');\n await expect(this.page.locator('.delivery-pattern-row').filter({ hasText: patternName })).toBeVisible();\n }\n\n async openProperties(): Promise<Properties> {\n await this.util.openSideNavMenu('Properties');\n return new Properties(this.page);\n }\n\n async back(): Promise<void> {\n await this.page.getByTestId('back-button').click();\n }\n\n async copyPattern(existingPatternName: string, NewPatternName: string): Promise<void> {\n await this.clickCopyPatternIcon(existingPatternName);\n await this.page.locator('.xl-icon.close-icon').first().click();\n await this.addName.fill(NewPatternName);\n await this.page.getByRole('button', { name: 'Continue' }).click();\n await expect(this.page.getByLabel('breadcrumb').getByText('Delivery flow')).toBeVisible();\n }\n\n async clickDeletePattern(patternName: string): Promise<void> {\n await this.page.locator('.delivery-pattern-row').filter({ hasText: patternName }).locator('.delete').click();\n await expect(this.page.getByText('Delete delivery pattern', { exact: true })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.page.locator('.delivery-pattern-row').filter({ hasText: patternName })).not.toBeVisible();\n }\n\n async createNewDelivery(deliveryName: string, deliveryDes?: string, setAutoComplete?: true): Promise<void> {\n await this.page.getByTestId('dot-button').click();\n await this.addName.fill(deliveryName);\n await this.addDescription.click();\n if (deliveryDes) await this.addDescription.fill(deliveryDes);\n else await this.addDescription.fill('Description');\n if (setAutoComplete) await this.page.getByRole('checkbox').check();\n await expect(this.page.locator('.action-toolbar-actions button').filter({ hasText: 'Create' })).toBeEnabled();\n await this.page.locator('.action-toolbar-actions button').filter({ hasText: 'Create' }).click({ force: true });\n await expect(this.page.locator('.MuiBreadcrumbs-li').getByRole('link', { name: `${deliveryName}` })).toBeVisible();\n }\n}\nclass Properties extends WithPage {\n addName: Locator;\n addDescription: Locator;\n constructor(page: Page) {\n super(page);\n this.addName = page.locator('.xl-react-components input[placeholder=\"Add...\"]');\n this.addDescription = page.getByPlaceholder('Set description...');\n }\n\n async editName(name: string): Promise<void> {\n await this.addName.click();\n await this.addName.clear();\n await this.addName.fill(name);\n }\n\n async editDescription(description: string): Promise<void> {\n await this.page.getByPlaceholder('Set description...').click();\n await this.page.getByPlaceholder('Set description...').clear();\n await this.page.getByPlaceholder('Set description...').fill(description);\n }\n\n async editDuration(month: number, days: number, hours: number): Promise<void> {\n await this.page.getByRole('group', { name: 'Pattern details' }).getByRole('textbox').click();\n await this.page.locator('input[name=\"months\"]').click();\n await this.page.locator('input[name=\"months\"]').fill(month.toString());\n await this.page.locator('input[name=\"days\"]').click();\n await this.page.locator('input[name=\"days\"]').fill(days.toString());\n await this.page.locator('input[name=\"hours\"]').click();\n await this.page.locator('input[name=\"hours\"]').fill(hours.toString());\n }\n\n async save(): Promise<void> {\n await this.page.getByRole('button', { name: 'Save' }).click();\n expect(await this.page.locator('.saved-text').textContent()).toContain('Last saved on ');\n }\n}\n","import { Page, expect, Locator } from '@playwright/test';\nimport { WithPage } from './WithPage';\nimport { DateUtil } from './common/dateUtil';\n\nexport class GlobalVariable extends WithPage {\n addListValue: Locator;\n listAddButton: Locator;\n addVariableValue: Locator;\n addVariablelabel: Locator;\n constructor(page: Page) {\n super(page);\n this.addListValue = this.page.locator('.variable-selector .xl-components-input-full input');\n this.addVariableValue = this.page.locator('.variable-value .xl-components-input-full input');\n this.addVariablelabel = this.page.locator('.variable-label input');\n this.listAddButton = this.page.getByRole('button', { name: 'Add' });\n }\n\n async addVariableText(valuename: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('StringVariable');\n await this.page.locator('.variable-value').type(valuename);\n await this.submitTheVariable();\n }\n async addVariableListbox(possiblevalue: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('DropDownListBox');\n await this.addListValue.fill(possiblevalue);\n await this.listAddButton.click();\n await this.page.getByRole('combobox').nth(1).selectOption(possiblevalue);\n await this.submitTheVariable();\n }\n async addVariablePassword(possiblevalue: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('PasswordStringVariable');\n await this.page.locator('input[type=\"password\"]').type(possiblevalue);\n await this.submitTheVariable();\n }\n async addVariableCheckbox(): Promise<void> {\n await this.page.getByRole('combobox').selectOption('BooleanVariable');\n await this.page.getByRole('checkbox').check();\n await this.submitTheVariable();\n }\n async addVariableNumber(possiblevalue: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('IntegerVariable');\n await this.page.locator('input[ng-model=\"var.value\"]').fill(possiblevalue);\n await this.submitTheVariable();\n }\n async addVariableList(possiblevalue1: string, possiblevalue2: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('ListStringVariable');\n await this.addVariableValue.fill(possiblevalue1);\n await this.listAddButton.click();\n await this.addVariableValue.fill(possiblevalue2);\n await this.listAddButton.click();\n await this.submitTheVariable();\n }\n async addVariableMultiList(possiblevalue1: string, possiblevalue2: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('MultiSelectListBox');\n await this.addListValue.fill(possiblevalue1);\n await this.listAddButton.click();\n await this.addListValue.fill(possiblevalue2);\n await this.listAddButton.click();\n await this.page.locator('.react-tagsinput').click();\n await this.page.getByText('Select all', { exact: true }).click();\n await this.submitTheVariable();\n }\n async addVariableDate(): Promise<void> {\n await this.page.getByRole('combobox').selectOption('DateVariable');\n await this.page.getByText('Select date').click();\n }\n\n async setDate(date?: string, monthYear?: string): Promise<void> {\n const dateUtil = new DateUtil(this.page);\n await dateUtil.setDate(date, monthYear);\n }\n\n async addVariableKeyValueMap(keys1: string, values1: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('MapStringStringVariable');\n await this.page.getByPlaceholder('key').fill(keys1);\n await this.page.getByPlaceholder('Value').fill(values1);\n await this.listAddButton.click();\n await this.page.locator('.xl-map-string-string-div-buttons .search-icon').click();\n await this.page.getByRole('row', { name: 'Search' }).getByRole('textbox').fill(keys1);\n const detail = await this.page.locator('table.table-condensed span').allInnerTexts();\n await expect(detail[0]).toEqual(keys1);\n await expect(detail[1]).toEqual(values1);\n await this.submitTheVariable();\n }\n async addVariableSet(possiblevalue1: string): Promise<void> {\n await this.page.getByRole('combobox').selectOption('SetStringVariable');\n await this.page.locator('.dip-input input').fill(possiblevalue1);\n await this.listAddButton.click();\n await this.submitTheVariable();\n }\n async addNewVariable(variableName: string, labelname: string, description: string): Promise<void> {\n await this.page.getByRole('button', { name: 'New global variable' }).click();\n await this.page.locator(`div.input-group > input`).type(variableName);\n await this.addVariablelabel.fill(labelname);\n await this.page.locator('.variable-description input').fill(description);\n }\n\n async verifyGlobalVariableCreation(variableName: string): Promise<void> {\n await this.page.locator(\"[id='variables-filter']\").fill(variableName);\n await expect(this.page.locator('.variable.ui-sortable-handle').filter({ hasText: variableName })).toBeVisible();\n }\n async submitTheVariable(): Promise<void> {\n const pagesubmit = await this.page.locator('.button.save');\n await pagesubmit.hover();\n await pagesubmit.click();\n }\n async deleteGlobalVariable(variableName: string): Promise<void> {\n await this.page.locator(\"[id='variables-filter']\").fill(variableName);\n await this.page.getByText('Delete').click();\n await expect(this.page.locator('h4.ng-binding')).toContainText(variableName);\n await this.page.getByRole('button', { name: 'Cancel' }).click();\n await this.verifyGlobalVariableCreation(variableName);\n await this.page.getByText('Delete').click();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await this.page.locator('alert.notice.ng-scope').isVisible();\n }\n async editVariable(variableName: string, editedvariabletext: string): Promise<void> {\n await this.page.locator(\"[id='variables-filter']\").fill(variableName);\n await this.page.getByText('Edit').click();\n await this.addVariablelabel.clear();\n await this.addVariablelabel.fill(editedvariabletext);\n await this.page.getByRole('button', { name: 'Save' }).click();\n await expect(\n this.page.locator('.variable.ui-sortable-handle').getByText(editedvariabletext, { exact: true }),\n ).toBeVisible();\n }\n}\n","import { Page } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class HomePage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\nimport { Util } from './common/util';\n\nexport class HeaderPage extends WithPage {\n announcementIcon: Locator;\n settingsIcon: Locator;\n aboutMenu: Locator;\n util: Util;\n\n constructor(page: Page) {\n super(page);\n this.announcementIcon = this.page.getByLabel('Open Resource Center');\n this.settingsIcon = this.page.locator('i[aria-label=\"settings-admin-opaque icon\"]');\n this.aboutMenu = this.page.getByText('About Digital.ai Release');\n this.util = new Util(page);\n }\n\n async verifyVersionNumber(versionNumber: string): Promise<void> {\n const year = new Date().getFullYear();\n await this.settingsIcon.click();\n await this.aboutMenu.click();\n await expect(this.page.getByText('Version ' + versionNumber)).toBeVisible();\n await expect(this.page.getByRole('img', { name: 'Release' })).toBeVisible();\n await expect(this.page.getByText(`ⓒ ${year} Digital.ai Software,`)).toBeVisible();\n await this.util.clickCloseIcon();\n }\n\n async verifyProductAnnouncements(): Promise<void> {\n await expect(this.announcementIcon).toBeVisible();\n await this.announcementIcon.click();\n expect(await this.page.locator('#pendo-guide-container').innerText()).toContain('Product updates');\n }\n\n async clickHelpIcon(): Promise<void> {\n await this.page.getByTestId('right-side-nav').getByRole('button', { name: 'Help' }).click();\n }\n\n async verifyOnlineDocumentation(): Promise<void> {\n const versionNumber = await this.getVersionNumber();\n await this.clickHelpIcon();\n const page2Promise = this.page.waitForEvent('popup');\n await expect(this.page.getByText('Online documentation')).toBeVisible();\n await this.page.getByText('Online documentation').click();\n const page2 = await page2Promise;\n expect(page2.url()).toContain(\n 'https://docs.digital.ai/bundle/devops-release-version-v.' +\n versionNumber.substring(8, 12) +\n '/page/release/how-to/get-started-with-xl-release.html',\n );\n await this.page.bringToFront();\n }\n\n async verifySupportRequest(): Promise<void> {\n await expect(this.page.getByRole('menuitem', { name: 'Submit a support request' })).toBeVisible();\n const page2Promise = this.page.waitForEvent('popup');\n await this.page.getByRole('menuitem', { name: 'Submit a support request' }).click();\n const page2 = await page2Promise;\n expect(page2.url()).toContain('https://support.digital.ai/hc/en-us/');\n await this.page.bringToFront();\n }\n\n async verifySuggestAFeature(): Promise<void> {\n await expect(this.page.getByText('Suggest a feature')).toBeVisible();\n const page2Promise = this.page.waitForEvent('popup');\n await this.page.getByText('Suggest a feature').click();\n const page2 = await page2Promise;\n expect(page2.url()).toContain('https://ideas.digital.ai/devops');\n await this.page.bringToFront();\n }\n\n async verifyDigitalAiWebsite(): Promise<void> {\n await expect(this.page.getByText('Digital.ai website')).toBeVisible();\n const page2Promise = this.page.waitForEvent('popup');\n await this.page.getByText('Digital.ai website').click();\n const page2 = await page2Promise;\n expect(page2.url()).toContain('https://digital.ai/');\n await this.page.bringToFront();\n }\n\n async clickAvatarIcon(username: string): Promise<void> {\n await this.page.getByLabel(username, { exact: true }).click();\n }\n\n async verifyUser(userFullName: string): Promise<void> {\n await this.page.getByText(userFullName).click();\n await expect(this.page.getByRole('heading', { name: 'Personal settings for admin' })).toBeVisible();\n }\n\n async clickAccessTokens(): Promise<void> {\n await this.page.getByText('Access tokens').click();\n await expect(this.page.getByLabel('breadcrumb').getByText('Access tokens')).toBeVisible();\n }\n\n async getVersionNumber(): Promise<string> {\n await this.settingsIcon.click();\n await this.aboutMenu.click();\n const versionNumber = await this.page.locator('.version-text').innerText();\n await this.util.clickCloseIcon();\n return versionNumber;\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\nimport { Util } from './common/util';\n\nexport class ManagePluginsPage extends WithPage {\n util: Util;\n constructor(page: Page) {\n super(page);\n this.util = new Util(page);\n }\n\n async openPluginGallery(): Promise<void> {\n await this.util.openSideNavMenu('Plugin gallery');\n await expect(this.page.getByLabel('breadcrumb').getByText('Plugin gallery')).toBeVisible();\n }\n\n async openInstalledPlugins(): Promise<void> {\n await this.util.openSideNavMenu('Installed plugins');\n await expect(this.page.getByLabel('breadcrumb').getByText('Installed plugins')).toBeVisible();\n }\n\n async searchForPlugins(searchText: string): Promise<void> {\n await this.page.getByPlaceholder('Search for plugin').fill(searchText);\n expect(await this.page.locator('.PluginTile__title-and-version___1HsNr span').count()).toBeGreaterThan(0);\n }\n\n async refreshPluginList(): Promise<void> {\n await expect(this.page.getByTestId('plugin-refresh-btn')).toBeVisible();\n await this.page.getByTestId('plugin-refresh-btn').click();\n }\n\n async clickInstallNow(pluginName: string): Promise<void> {\n await this.page\n .locator('div')\n .filter({ hasText: 'Install now' + pluginName })\n .getByRole('button')\n .click();\n }\n\n async expectRestartInfo(): Promise<void> {\n await expect(this.page.getByLabel('info')).toContainText(\n 'Restart Digital.ai Release to finish installing the plugin.',\n );\n }\n\n async expectNewPluginInstallationInfo(pluginName: string): Promise<void> {\n await expect(this.page.getByText('New plugin installedPlugin')).toBeVisible();\n await expect(this.page.getByLabel('info').locator('div')).toContainText(\n 'New plugin installedPlugin release-' +\n pluginName.toLowerCase() +\n '-integration has been installed, click here to reload the changes or refresh your browser',\n );\n }\n\n async clickUpload(): Promise<void> {\n await this.page.getByTestId('dot-button').click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class PersonalAccessTokenPage extends WithPage {\n async openPersonalAccessTokenPage(): Promise<this> {\n // await this.page.locator(\"button.dot-avatar\").click()\n // await this.page.locator(\"//div[normalize-space()='Access tokens']\").click()\n await this.page.goto('./#/personal-access-token');\n await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release');\n return this;\n }\n\n async addNewToken(tokenName: string): Promise<this> {\n //await expect(this.page).toHaveTitle('Access tokens / Personal settings - Digital.ai Release')\n\n await this.page.locator('#tokenText').fill(tokenName);\n await this.page.locator(\"button[type='submit']\").click();\n return this;\n }\n}\n","import { Util } from './common/util';\nimport { WithPage } from './WithPage';\nimport { Page, expect } from '@playwright/test';\n\nexport class PersonalSettingsPage extends WithPage {\n util: Util;\n constructor(page: Page) {\n super(page);\n this.util = new Util(page);\n }\n\n async openProfile(): Promise<void> {\n await this.util.openSideNavMenu('Profile');\n }\n\n async openAccessToken(): Promise<void> {\n await this.util.openSideNavMenu('Access tokens');\n }\n\n async editUserProfile(email: string): Promise<void> {\n await this.page.getByLabel('Email address').click();\n await this.page.getByLabel('Email address').fill(email);\n await this.page.getByTestId('dot-button').click();\n expect(await this.page.locator('.saved-text').textContent()).toContain('Last saved on ');\n }\n\n async generateNewAccessToken(tokenName: string, expiryOptions: string): Promise<void> {\n await this.page.getByRole('button', { name: 'Generate token' }).click();\n await this.page.getByLabel('Token name').click();\n await this.page.getByLabel('Token name').fill(tokenName);\n await this.page\n .getByRole('textbox', { name: 'Token expiration' })\n .getByLabel('Token expiration')\n .selectOption(expiryOptions);\n await this.page\n .locator('label')\n .filter({ hasText: 'Use all permissions' })\n .getByTestId('RadioButtonCheckedIcon')\n .click();\n await this.page.getByRole('button', { name: 'Generate', exact: true }).click();\n await expect(this.page.getByTestId('alert-button-tooltip').getByTestId('dot-button')).toBeVisible();\n await expect(this.page.getByText(tokenName)).toBeVisible();\n }\n\n async deleteAccessToken(tokenName: string): Promise<void> {\n await this.page.locator('.MuiTableRow-root').filter({ hasText: tokenName }).getByTestId('button-icon-i').click();\n await expect(this.page.getByRole('heading', { name: 'Delete token' })).toBeVisible();\n await expect(this.page.getByLabel('Delete token')).toContainText('Delete token');\n await this.page.getByRole('button', { name: 'delete icon Delete token' }).click();\n await expect(this.page.getByText(tokenName)).not.toBeVisible();\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { UserModal } from './userModal';\nimport { Util } from '../common/util';\n\nexport class UsersPage extends WithPage {\n page: Page;\n modal: UserModal;\n util: Util;\n constructor(page: Page) {\n super(page);\n this.page = page;\n this.modal = new UserModal(page);\n this.util = new Util(page);\n }\n\n async openUsersPage(): Promise<void> {\n this.page.goto('./#/users', { timeout: 1000 });\n }\n\n async toggleLoginPermission(username: string): Promise<void> {\n await this.page\n .getByRole('row', { name: '' + username + '' })\n .getByRole('checkbox')\n .click();\n await expect(this.page.getByRole('row', { name: '' + username + '' }).locator('.Mui-checked')).toBeChecked();\n }\n\n async addUser(): Promise<void> {\n await this.page.locator('.new-user-btn').click();\n }\n\n async createUser(username: string, password: string): Promise<void> {\n await this.modal.setUserName(username);\n await this.modal.setFullName(username);\n await this.modal.setEmail('testuser@company.com');\n await this.modal.setPassword(password);\n await this.modal.setConfirmPassword(password);\n await this.modal.save();\n }\n\n async expectToHaveLoginPermission(username: string): Promise<void> {\n return await expect(this.page.getByRole('row', { name: '' + username + '' }).getByRole('checkbox')).toBeChecked();\n }\n\n async deleteUser(username: string): Promise<void> {\n await this.page\n .getByRole('row', { name: '' + username + '' })\n .locator('i')\n .nth(1)\n .click();\n await this.modal.delete();\n }\n async openRoles(): Promise<void> {\n await this.util.openSideNavMenu('Roles');\n await expect(this.page.getByLabel('breadcrumb').getByText('Roles')).toBeVisible();\n }\n\n async openPermissions(): Promise<void> {\n await this.util.openSideNavMenu('Permissions');\n await expect(this.page.locator('.permissions-table-v2')).toBeVisible();\n }\n\n async openTaskAccess(): Promise<void> {\n await this.util.openSideNavMenu('Task access');\n await expect(this.page.getByLabel('breadcrumb').getByText('Task access')).toBeVisible();\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class UserModal extends WithPage {\n userName: Locator;\n name: Locator;\n email: Locator;\n password: Locator;\n cnfPassword: Locator;\n saveButton: Locator;\n cancelButton: Locator;\n deleteButton: Locator;\n constructor(page: Page) {\n super(page);\n this.userName = page.locator('#username');\n this.name = page.locator('#fullName');\n this.email = page.locator('#email');\n this.password = page.locator('#password');\n this.cnfPassword = page.locator('#confirmPassword');\n this.saveButton = page.getByTestId('save-btn');\n this.cancelButton = page.getByRole('button', { name: 'Cancel' });\n this.deleteButton = page.getByRole('button', { name: 'Delete' });\n }\n\n async setUserName(username: string): Promise<void> {\n return await this.userName.fill(username);\n }\n\n async setFullName(fullName: string): Promise<void> {\n return await this.name.fill(fullName);\n }\n\n async setEmail(email: string): Promise<void> {\n return await this.email.fill(email);\n }\n\n async setPassword(password: string): Promise<void> {\n return await this.password.fill(password);\n }\n\n async setConfirmPassword(cnfPassword: string): Promise<void> {\n return await this.cnfPassword.fill(cnfPassword);\n }\n\n async save(): Promise<void> {\n await this.saveButton.isEnabled();\n await expect(this.saveButton).not.toBeDisabled();\n await this.saveButton.focus();\n await this.saveButton.click();\n }\n\n async cancel(): Promise<void> {\n await this.cancelButton.click();\n }\n\n async delete(): Promise<void> {\n await this.deleteButton.click();\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class SettingsMenu extends WithPage {\n settingsIcon: Locator;\n usersAndPermissionMenu: Locator;\n managePluginMenu: Locator;\n constructor(page: Page) {\n super(page);\n this.settingsIcon = this.page.getByRole('button', { name: 'Settings' });\n this.usersAndPermissionMenu = this.page.getByRole('menuitem', { name: 'users icon Users and permissions' });\n this.managePluginMenu = this.page.getByRole('menuitem', { name: 'plugins icon Manage plugins' });\n }\n\n async openUsersAndPermissions(): Promise<void> {\n await this.settingsIcon.click();\n await this.usersAndPermissionMenu.click();\n }\n\n async openManagePlugin(): Promise<void> {\n await this.settingsIcon.click();\n await this.managePluginMenu.click();\n await expect(this.page.getByLabel('breadcrumb').getByText('Plugin gallery')).toBeVisible();\n }\n}\n","import { Page } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class TaskDetails extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class ReleaseCalendarPage extends WithPage {\n private dayFormat!: string;\n private yearFormat!: number;\n private monthFormat!: string;\n private yearFormatString!: string;\n\n async openReleaseCalendarPage(): Promise<this> {\n await this.page.goto('./#/releases/calendar');\n //Define date format to verify different calendar views\n const today = new Date();\n let options: Intl.DateTimeFormatOptions = {\n weekday: 'long',\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n };\n this.dayFormat = today.toLocaleDateString('en-US', options); // Saturday, September 17, 2016\n this.yearFormat = today.getFullYear();\n this.yearFormatString = this.yearFormat.toString();\n options = { month: 'long', year: 'numeric' };\n this.monthFormat = today.toLocaleDateString('en-US', options);\n this.monthFormat = this.monthFormat.replace(/(\\w+) (\\d+)/, '$1, $2');\n await expect(this.page.locator('.tl-viewport')).toBeVisible();\n return this;\n }\n\n async exportCalendar(): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.page.on('download', () => {});\n await this.page.getByRole('button', { name: 'download icon Export calendar' }).click();\n const downloadPromise = this.page.waitForEvent('download');\n await this.page.getByRole('button', { name: 'Export' }).click();\n await downloadPromise;\n }\n\n async cancelCalendarExport(): Promise<number> {\n let downloadCount = 0;\n // Listen to download events\n this.page.on('download', (_download) => {\n downloadCount++;\n });\n await this.page.getByRole('button', { name: 'download icon Export calendar' }).click();\n await this.page.getByRole('button', { name: 'Cancel' }).click();\n return downloadCount;\n }\n\n async verifyDayView(): Promise<void> {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Day' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n //Verify Page has correct day format displayed at the page bottom\n await expect(this.page.getByText(this.dayFormat)).toBeVisible();\n }\n\n async verifyYearView(): Promise<void> {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Year' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n //Verify Page has correct Year format displayed at the page bottom\n await expect(this.page.locator('.tl-footer-label').filter({ hasText: this.yearFormatString })).toHaveText(\n this.yearFormatString,\n );\n }\n\n async verifyMonthView(): Promise<void> {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Month' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n //Verify Page has correct Year format displayed at the page bottom\n await expect(this.page.locator('.tl-footer-label').filter({ hasText: this.monthFormat })).toHaveText(\n this.monthFormat,\n );\n }\n\n async verifyPageContent(title: string): Promise<void> {\n const view_type = ['Day', 'Week', 'Month', 'Year'];\n for (const view of view_type) {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: view }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n //Verify Page has correct Year format displayed at the page bottom\n await expect(this.page.getByText(title)).toBeVisible();\n }\n }\n\n async filterReleaseByTitle(title: string): Promise<void> {\n await this.page.getByPlaceholder('Filter by release title').click();\n await this.page.getByPlaceholder('Filter by release title').fill(title);\n await this.page.getByPlaceholder('Filter by release title').press('Enter');\n //Verify Page has correct Year format displayed at the page bottom\n await this.verifyPageContent(title);\n }\n\n async filterReleaseByTags(tags: string[], release_title: string): Promise<void> {\n await this.page.locator('.tl-filter-release-tags').locator('.react-tagsinput').click();\n for (let tag of tags) {\n tag = tag.toString();\n await this.page.locator('.tl-filter-release-tags').locator('.react-tagsinput-input').fill(tag);\n await this.page.getByTitle(tag).locator('i').click();\n }\n await this.verifyPageContent(release_title);\n }\n\n async filterTaskByTags(tags: string[], task_title: string, release_title: string): Promise<void> {\n await this.page.locator('.tl-filter-task-tags').locator('.react-tagsinput').click();\n for (let tag of tags) {\n tag = tag.toString();\n await this.page.locator('.tl-filter-task-tags').locator('.react-tagsinput-input').fill(tag);\n await this.page.getByTitle(tag).locator('i').click();\n }\n //Make sure task is visible on calnedar page\n await this.verifyPageContent(task_title);\n //Make sure parent release of the selected task is visible on calnedar page\n await this.verifyPageContent(release_title);\n }\n\n async filterReleaseByStatus(release_status: string, release_title: string): Promise<void> {\n if (!(await this.page.locator('.tl-filter-advanced').isVisible())) {\n await this.page.getByRole('button', { name: 'Advanced filters' }).click();\n }\n await this.page.locator('.tl-filter-release-status').locator('.react-tagsinput').click();\n await this.page.getByTitle(release_status).locator('i').first().click();\n await this.verifyPageContent(release_title);\n }\n\n async filterReleaseByRisk(release_risk: string, release_title: string): Promise<void> {\n if (!(await this.page.locator('.tl-filter-advanced').isVisible())) {\n await this.page.getByRole('button', { name: 'Advanced filters' }).click();\n }\n await this.page.locator('.tl-filter-risk-filter').getByRole('combobox').click();\n await this.page.getByRole('option', { name: release_risk }).click();\n await this.verifyPageContent(release_title);\n }\n\n async filterFlaggedRelease(release_title: string): Promise<void> {\n if (!(await this.page.locator('.tl-filter-advanced').isVisible())) {\n await this.page.getByRole('button', { name: 'Advanced filters' }).click();\n }\n if (\n await this.page.locator('.tl-filter-flag-only.btn.btn-flat.btn-fixed.button-toggle-filter.active').isVisible()\n ) {\n await this.page.getByRole('button', { name: ' Flagged' }).click();\n }\n await this.verifyPageContent(release_title);\n }\n\n async viewRelease(release_title: string, release_id: string): Promise<void> {\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Day' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n await this.page.getByText(release_title).click();\n await this.page.locator('.release-modal-container').locator('.xl-icon.release-icon').click();\n const releaseurl = `/#/releases/${release_id}`;\n const currentURL = await this.page.url();\n // Check if the release name present in redirected URL\n expect(currentURL).toContain(releaseurl);\n }\n\n async viewDependency(source_release: string, dest_release: string): Promise<void> {\n const source_text = source_release + 'dependencies';\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Day' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n await this.page.getByText(source_release).click();\n await this.page.locator('.release-modal-container').locator('.xl-icon.cluster-dependencies-icon').click();\n await expect(this.page.locator('.tl-drawer-navigation-header')).toHaveText(source_text);\n await expect(this.page.locator('.tl-drawer-dependency-body-title-text')).toHaveText(dest_release);\n }\n\n async downloadIcsCalendar(release_title: string): Promise<number> {\n let downloadCount = 0;\n // Listen to download events\n this.page.on('download', (_download) => {\n downloadCount++;\n });\n await this.page.locator('.tl-header-navigation').getByRole('combobox').click();\n await this.page.getByRole('option', { name: 'Day' }).click();\n await this.page.getByRole('button', { name: 'Today' }).click();\n await this.page.getByText(release_title).click();\n await this.page.locator('.release-modal-container').locator('.xl-icon.calendar-icon').click();\n return downloadCount;\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class ReleaseGroupPage extends WithPage {\n private dayFormat!: string;\n private yearFormat!: number;\n private monthFormat!: string;\n private yearFormatString!: string;\n\n async setStatus(status: string): Promise<void> {\n await this.page.locator('.react-tagsinput').click({ force: true });\n await this.page.getByText('Clear all').click();\n await this.page.locator('.react-tagsinput').click({ force: true });\n if (status === 'Select all') {\n await this.page.getByText(status).click();\n } else {\n await this.page.getByTitle(status).locator('i').first().click();\n }\n }\n\n async openReleaseGroup(title: string): Promise<void> {\n await this.page.locator('xlr-release-group-row').filter({ hasText: title }).getByRole('link').click();\n await this.page.getByTitle(title).click();\n await expect(this.page).toHaveURL(/.*ReleaseGroup/);\n }\n\n async expectReleaseGroupStatus(status: string): Promise<void> {\n await expect(this.page.locator('.release-status')).toContainText(status);\n }\n\n async expectReleaseGroupDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).toBeVisible();\n }\n\n async expectReleaseGroupNotDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).not.toBeVisible();\n }\n\n async searchReleaseGroupByTitle(title: string): Promise<void> {\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).click();\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).fill(title);\n await this.page.getByPlaceholder('Search for groups...', { exact: true }).press('Enter');\n }\n\n async deleteReleaseGroup(title: string): Promise<void> {\n await this.page.locator('.fc-list-item-line').filter({ hasText: title }).locator('.fc-item-delete').click();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n }\n\n async clickReleaseGroupEdit(title: string): Promise<void> {\n await this.page.locator('.fc-list-item-line').filter({ hasText: title }).locator('.fc-item-update').click();\n }\n\n async enterReleaseGroupDetails(new_title: string): Promise<void> {\n await this.page.locator('.modal-body').locator('#title').fill(new_title);\n }\n\n async clickSaveButton(): Promise<void> {\n await this.page.locator('.modal-footer').getByRole('button', { name: 'Save' }).click();\n }\n\n async clickCancelButton(): Promise<void> {\n await this.page.locator('.modal-footer').getByRole('button', { name: 'Cancel' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class ReleaseGroupTimelinePage extends WithPage {\n async expectReleaseDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).toBeVisible();\n }\n\n async expectReleaseNotDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).not.toBeVisible({ timeout: 10000 });\n }\n\n async expectPhaseDisplayed(title: string): Promise<void> {\n await expect(this.page.getByText(title, { exact: true })).toBeVisible();\n }\n\n async openContextMenu(title: string): Promise<void> {\n await this.page.locator('.timeline-row-name').filter({ hasText: title }).locator('.options-icon').click();\n }\n\n async removeFromReleaseGroup(): Promise<void> {\n await this.page.getByRole('menuitem', { name: 'Remove from group' }).locator('a').click();\n await this.page.getByRole('button', { name: 'Remove' }).click();\n }\n\n async expectNumberOfReleases(num_of_release: number): Promise<void> {\n const elementCount = await this.page.locator('.timeline-row-name-release').count();\n expect(elementCount).toBe(num_of_release);\n }\n\n async openAddReleaseList(): Promise<void> {\n await this.page.getByRole('button', { name: 'Add release' }).click();\n }\n\n async filterReleases(title: string): Promise<void> {\n await this.page.getByPlaceholder('Search for a release...').click();\n await this.page.getByPlaceholder('Search for a release...').fill(title);\n await this.page.waitForTimeout(5000);\n await this.page.getByPlaceholder('Search for a release...').press('Enter');\n }\n\n async expectNumberOfReleasesOnModal(num_of_release: number): Promise<void> {\n const elementCount = await this.page.locator('.release-modal-line').count();\n expect(elementCount).toBe(num_of_release);\n }\n\n async selectAllReleaseCheckbox(): Promise<void> {\n await this.page.getByLabel('Select all').check();\n }\n\n async addReleasesToGroup(): Promise<void> {\n await this.page.getByRole('button', { name: 'Add' }).click();\n }\n}\n","import { Locator, Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { TaskDrawer } from '../task-drawer/taskDrawer';\n\nexport class TaskListPage extends WithPage {\n taskDrawer: TaskDrawer;\n commentBox: Locator;\n\n constructor(page: Page) {\n super(page);\n this.taskDrawer = new TaskDrawer(page);\n this.commentBox = this.page.locator(`.input-block-level`);\n }\n\n async openTask(taskName: string): Promise<void> {\n await this.filterTaskByTitle(taskName);\n await this.page.getByText(taskName).first().click();\n }\n\n async skip(taskName: string, comment: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).locator('span.skip').click();\n await this.commentBox.click();\n await this.commentBox.fill(comment);\n await this.page.getByRole('button', { name: 'Skip', exact: true }).click();\n }\n\n async fail(taskName: string, comment: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).locator('span.fail').click();\n await this.commentBox.click();\n await this.commentBox.fill(comment);\n await this.page.getByRole('button', { name: 'Fail', exact: true }).click();\n }\n\n async waitForTaskFailed(taskName: string): Promise<void> {\n await expect(this.page.locator(`.row.task-inner`, { hasText: taskName }).getByText('Failed')).toBeVisible();\n }\n\n async waitForTaskInProgress(taskName: string): Promise<void> {\n await expect(this.page.locator(`.row.task-inner`, { hasText: taskName }).getByText('In progress')).toBeVisible();\n }\n\n async openTaskInReleaseView(taskName: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).locator('a.view-in-release').click();\n }\n\n async openCalendarViaTaskDueDate(taskName: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).locator(`.calendar-link a`).click();\n }\n\n async openTaskDrawer(taskName: string): Promise<void> {\n await this.page.locator(`.row.task-inner`, { hasText: taskName }).getByText(taskName).click();\n }\n\n async filterTaskByTitle(taskname: string): Promise<void> {\n await this.page.locator('.searchFilter').click();\n await this.page.locator('.searchFilter').fill(taskname);\n await this.page.locator('.searchFilter').press('Enter');\n await expect(this.page.locator('//div[@data-task-title]').filter({ hasText: taskname }).first()).toBeVisible();\n }\n\n async filterTasksByTag(tag: string, taskTitleForValidation: string): Promise<void> {\n await this.page.locator('.toggle-search-filter').click();\n await this.page.locator('.tag-input').fill(tag);\n await this.page.locator('.tag-input').press('Enter');\n //TODO: Validation can be changed based on actual test case implementation\n await expect(\n this.page.locator('//div[@data-task-title]').filter({ hasText: taskTitleForValidation }),\n ).toBeVisible();\n }\n\n async filterTasksByReleaseTitle(releaseTitle: string): Promise<void> {\n await this.page.locator('.toggle-search-filter').click();\n await this.page.locator('.release-input').fill(releaseTitle);\n await this.page.locator('.release-input').press('Enter');\n await expect(this.page.locator('.group-title').filter({ hasText: releaseTitle })).toBeVisible();\n }\n\n async openSingleTask(taskId: string, showDetails = false): Promise<void> {\n await this.page.goto(`./#/tasks/${taskId}?showDetails=${showDetails}`);\n }\n\n async expectReleaseLinksDisplayed(releaseTitle: string, displayed = true): Promise<void> {\n if (displayed) {\n await expect(this.page.getByRole('link', { name: '' + releaseTitle + '' })).toBeVisible();\n await expect(this.page.locator('.view-in-release')).toBeVisible();\n } else {\n await expect(this.page.getByRole('link', { name: '' + releaseTitle + '' })).not.toBeVisible();\n await expect(this.page.locator('.view-in-release')).not.toBeVisible();\n }\n }\n\n async openTaskList(): Promise<void> {\n await this.page.goto('./#/tasks');\n }\n\n async clickOnAssigneeButton(title: string): Promise<void> {\n await this.page.locator(`.btn-group-filter.btn-group button.btn.btn-flat[title=\"${title}\"]`).click();\n }\n\n async clickOnAssignedToMe(): Promise<void> {\n await this.page.locator(`button[title=\"Assigned to me\"]`).click();\n }\n\n async clickOnAssignedToMyTeams(): Promise<void> {\n await this.page.locator(`button[title=\"Assigned to my teams\"]`).click();\n }\n\n async clickOnAssignedToAllAvailable(): Promise<void> {\n await this.page.locator(`button[title=\"All available\"]`).click();\n }\n\n async expectTaskToNotBeDisplayed(taskTitle: string): Promise<void> {\n await expect(this.page.locator(`.row.task-inner`).filter({ hasText: taskTitle }).getByText(taskTitle)).toHaveCount(\n 0,\n );\n }\n\n async expectTaskToBeDisplayed(taskTitle: string): Promise<void> {\n await expect(this.page.locator(`.row.task-inner`).filter({ hasText: taskTitle }).getByText(taskTitle)).toHaveCount(\n 1,\n );\n }\n\n async expectTasksToBeDisplayed(tasks: { [key: string]: boolean }): Promise<void> {\n for (const [taskTitle, shouldBeDisplayed] of Object.entries(tasks)) {\n if (shouldBeDisplayed) {\n await this.expectTaskToBeDisplayed(taskTitle);\n } else {\n await this.expectTaskToNotBeDisplayed(taskTitle);\n }\n }\n }\n\n async expectTasksDisplayedInOrder(\n expectedTasks: { releaseTitle: string; taskPosition: number; taskTitle: string }[],\n ): Promise<void> {\n for (const task of expectedTasks) {\n const taskElement = await this.page\n .locator(`[data-release-title='${task.releaseTitle}'] .row .task`)\n .nth(task.taskPosition);\n await expect(taskElement).toHaveAttribute('data-task-title', task.taskTitle);\n }\n }\n\n async setOrderBy(orderBy: string): Promise<void> {\n await this.page.locator('.order-selector .btn:first-child').click();\n await this.page.locator(`.order-selector .bootstrap-link:has-text('${orderBy}')`).click();\n }\n\n async expectTaskCountForRelease(releaseTitle: string, expectedCount: number): Promise<void> {\n await expect(\n this.page.locator(`#tasks-content #task-list-grouped-view div:has-text('${releaseTitle}') .task`),\n ).toHaveCount(expectedCount);\n }\n\n async setSearchFilter(filterText: string): Promise<void> {\n await this.page.locator('.searchFilter').fill(filterText);\n }\n\n async clearSearchFilter(): Promise<void> {\n await this.page.locator('.searchFilter').clear();\n }\n\n async setTagsFilter(filterText: string): Promise<void> {\n await this.page.locator('.tag-input').fill(filterText);\n await this.page.locator('.tag-input').press('Enter');\n }\n\n async clickOnStatusField(): Promise<void> {\n await this.page.locator('.ci-filter-status.ng-isolate-scope').click();\n }\n\n async clickOnStatus(statusNames: string[]): Promise<void> {\n await this.clickOnStatusClearAll();\n await this.clickOnStatusField();\n for (let i = 0; i < statusNames.length; i++) {\n await this.page.locator(`i.xl-icon.icon-s.checkbox[data='${statusNames[i]}']`).click();\n }\n // Clicking outside to close the grid dropdown\n await this.clickOnTasksLabel();\n }\n\n async clickOnStatusClearAll(): Promise<void> {\n await this.clickOnStatusField();\n await this.page.locator('a.xl-react-link', { hasText: 'Clear all' }).click();\n await this.clickOnTasksLabel();\n }\n\n async clickOnStatusSelectAll(): Promise<void> {\n await this.clickOnStatusField();\n await this.page.locator('a.xl-react-link', { hasText: 'Select all' }).click();\n await this.clickOnTasksLabel();\n }\n\n async assignTaskToMe(title: string): Promise<void> {\n await this.page.locator(`.task-line`).filter({ hasText: title }).locator(`.assign-to-me`).click();\n await this.page.locator('.modal:visible >> text=\"Assign to me\"').click();\n }\n\n async expectTaskAssignedToMe(title: string): Promise<void> {\n await this.expectTaskAssignedTo(title, 'me');\n }\n\n async expectTaskAssignedTo(title: string, user: string): Promise<void> {\n await expect(this.page.locator(`.task-line:has-text(\"${title}\") >> text=\"${user}\"`).first()).toHaveCount(1);\n }\n\n async expectTaskTitle(taskTitle: string): Promise<void> {\n expect(await this.page.locator('#tasks0').innerText()).toContain(taskTitle);\n }\n\n async clickOnTasksLabel(): Promise<void> {\n await this.page.getByLabel('breadcrumb').getByText('Tasks').click();\n }\n\n async expectGroupView(expected = true): Promise<void> {\n if (expected) {\n await expect(this.page.locator('#group-tasks-by-release')).toBeChecked();\n await expect(this.page.locator('#task-list-grouped-view')).toBeVisible();\n await expect(this.page.locator('#task-ungrouped-view')).not.toBeVisible();\n } else {\n await expect(this.page.locator('#group-tasks-by-release')).not.toBeChecked();\n await expect(this.page.locator('#task-list-grouped-view')).not.toBeVisible();\n await expect(this.page.locator('#task-ungrouped-view')).toBeVisible();\n }\n }\n\n async changeGroupView(): Promise<void> {\n await this.page.locator('#group-tasks-by-release').click();\n }\n}\n","import { Page, expect, Locator } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport { TaskDrawer } from '../task-drawer/taskDrawer';\nimport { TemplatePropertiesPage } from './templatePropertiesPage';\nimport { TemplateCreatePage } from './templateCreatePage';\nimport { TemplateTriggerPage } from './templateTriggerPage';\nimport { Util } from '../common/util';\n\nexport class TemplatePage extends WithPage {\n taskDrawer: TaskDrawer;\n phaseTitle: Locator;\n properties: TemplatePropertiesPage;\n createTemplatePage: TemplateCreatePage;\n triggers: TemplateTriggerPage;\n util: Util;\n\n constructor(page: Page) {\n super(page);\n this.taskDrawer = new TaskDrawer(page);\n this.phaseTitle = page.locator('.phase .phase-title');\n this.properties = new TemplatePropertiesPage(page);\n this.createTemplatePage = new TemplateCreatePage(page);\n this.triggers = new TemplateTriggerPage(page);\n this.util = new Util(page);\n }\n\n private async openTemplateMenu(menuItem: string): Promise<void> {\n await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }).click();\n }\n\n async openTaskDrawer(taskName: string): Promise<TaskDrawer> {\n await this.page.getByText(taskName, { exact: true }).click();\n return this.taskDrawer;\n }\n\n async openTaskDrawerFromTableView(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.name-cell-title').getByText(taskName, { exact: true }).click();\n return this.taskDrawer;\n }\n\n async openTaskDrawerFromGrantt(taskName: string): Promise<TaskDrawer> {\n await this.page.locator('.gantt_tree_content').getByText(taskName, { exact: true }).dblclick();\n return this.taskDrawer;\n }\n\n async openProperties(): Promise<void> {\n await this.util.openSideNavMenu('Properties');\n await expect(this.page.getByLabel('breadcrumb').getByText('Properties')).toBeVisible();\n }\n\n async openVariables(): Promise<void> {\n await this.util.openSideNavMenu('Variables');\n await expect(this.page.getByLabel('breadcrumb').getByText('Variables')).toBeVisible();\n }\n\n async openRelationships(): Promise<void> {\n await this.util.openSideNavMenu('Relationships');\n await expect(this.page.getByLabel('breadcrumb').getByText('Relationships')).toBeVisible();\n }\n\n async openTeamsPermissions(): Promise<void> {\n await this.util.openSideNavMenu('Teams & Permissions');\n await expect(this.page.getByLabel('breadcrumb').getByText('Teams & Permissions')).toBeVisible();\n }\n\n async openDashboard(): Promise<void> {\n await this.util.openSideNavMenu('Dashboard');\n await expect(this.page.getByLabel('breadcrumb').getByText('Dashboard')).toBeVisible();\n }\n\n async openActivityLogs(): Promise<void> {\n await this.util.openSideNavMenu('Activity logs');\n await expect(this.page.getByLabel('breadcrumb').getByText('Activity logs')).toBeVisible();\n }\n\n async openTriggers(): Promise<void> {\n await this.openTemplateMenu('Triggers');\n await expect(this.page.getByLabel('breadcrumb').getByText('Triggers')).toBeVisible();\n }\n\n async backToTemplate(): Promise<void> {\n await this.page.locator('.icon-back').click();\n await expect(this.page.getByLabel('breadcrumb').getByText('Templates')).toBeVisible();\n }\n\n async expectTemplateLabelToBePresent(): Promise<void> {\n await expect(this.page.getByTestId('template-workflow-pill').getByText('Template')).toBeVisible();\n }\n\n async expectSubPage(menuItem: string, toBePresent: boolean): Promise<void> {\n if (toBePresent)\n await expect(this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true })).toBeVisible();\n else\n await expect(\n this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, { exact: true }),\n ).not.toBeVisible();\n }\n\n async openFlowView(): Promise<void> {\n await this.util.openSideNavMenu('Flow');\n await expect(this.page.locator('#release-content')).toBeVisible();\n }\n\n async openTableView(): Promise<void> {\n await this.util.openSideNavMenu('Table');\n await expect(this.page.locator('.release-grid-container')).toBeVisible();\n }\n\n async openPlannerView(): Promise<void> {\n await this.util.openSideNavMenu('Planner');\n await expect(this.page.locator('.gantt-container')).toBeVisible();\n }\n\n async openCodeView(): Promise<void> {\n await this.util.openSideNavMenu('Code');\n await expect(this.page.getByLabel('breadcrumb').getByText('Code')).toBeVisible();\n }\n\n async expandGanttFolder(): Promise<void> {\n const icExpandTreeview1 = this.page.locator('.gantt_tree_icon.gantt_open');\n for (const element of await icExpandTreeview1.all()) {\n const blnVal = await element.isVisible();\n if (blnVal) {\n await element.click();\n await this.expandGanttFolder();\n }\n }\n }\n\n async addNewPhase(phaseName?: string): Promise<void> {\n await this.page.getByTestId('add-phase-btn').click();\n if (phaseName) {\n await this.phaseTitle.getByText('New Phase').click();\n await this.phaseTitle.getByRole('textbox').clear();\n await this.phaseTitle.getByRole('textbox').fill(phaseName);\n await this.page.keyboard.press('Enter');\n await expect(this.phaseTitle.filter({ hasText: phaseName })).toBeVisible();\n }\n }\n\n async renamePhase(oldPhaseName: string, newPhaseName: string): Promise<void> {\n await this.phaseTitle.getByText(oldPhaseName).click();\n await this.phaseTitle.filter({ hasText: oldPhaseName }).locator('.editable').clear();\n await this.phaseTitle.filter({ hasText: oldPhaseName }).locator('.editable').fill(newPhaseName);\n await this.page.keyboard.press('Enter');\n await expect(this.phaseTitle.filter({ hasText: newPhaseName })).toBeVisible();\n }\n\n getPhase(phaseName: string): Phase {\n return new Phase(this.page, phaseName);\n }\n}\nclass Phase extends WithPage {\n private readonly phaseLocator: Locator;\n\n constructor(page: Page, phaseName: string) {\n super(page);\n this.phaseLocator = page.locator('.phase', { hasText: phaseName });\n }\n\n async setTitle(title: string): Promise<void> {\n await this.phaseLocator.locator('.phase-header .display').click();\n await this.phaseLocator.locator('.phase-header input').clear();\n await this.phaseLocator.locator('.phase-header input').fill(title);\n await this.phaseLocator.locator('.phase-header input').blur();\n }\n\n async expectTaskBorderWithColor(taskName: string, color: string): Promise<void> {\n await expect(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS('border-top-color', color);\n }\n\n /**\n *\n * @param taskTitle Title of the task\n * @param taskType : Type of the task\n * @param taskTypeSelector : Selector of the task\n */\n\n async addTaskInPhase(taskTitle: string, taskGroup: string, taskType: string): Promise<void> {\n await this.phaseLocator.getByText('Add task').click();\n await this.page.locator('#task-selector').hover();\n await this.page.locator('button[aria-label=\"Clear\"]').click();\n await this.page.locator('#task-selector').fill(taskGroup);\n await this.page.getByTestId(taskType).click();\n await this.page.locator('.icon-close').click();\n await this.page.locator('#task-title').fill(taskTitle);\n await this.page.getByTestId('save-select-task-btn').click();\n await expect(this.phaseLocator.getByText(taskTitle)).toBeVisible();\n }\n\n async getNumberOfTasks(): Promise<number> {\n return await this.phaseLocator.locator('.task').count();\n }\n\n async expectToHaveNoneditableTitle(phaseTitle: string): Promise<void> {\n await expect(this.phaseLocator.locator('.phase-title > span')).toContainText(phaseTitle);\n }\n\n async expectToHaveTitle(phaseTitle: string): Promise<void> {\n await expect(this.phaseLocator.locator('.phase-title')).toContainText(phaseTitle);\n }\n\n async deleteTaskInPhase(taskName: string): Promise<void> {\n await this.page.locator('.task').filter({ hasText: taskName }).locator('.xl-icon.options-icon').click();\n await this.page.locator('.remove-task-button').click();\n await expect(this.page.getByRole('heading', { name: 'Delete Task' })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.phaseLocator.locator('li').filter({ hasText: taskName })).not.toBeVisible();\n }\n\n async deletePhase(phaseName: string): Promise<void> {\n await this.page.locator('.phase-header').filter({ hasText: phaseName }).locator('.actions').hover();\n await this.page.locator('.phase-header').filter({ hasText: phaseName }).locator('.delete-icon').click();\n await expect(this.page.getByRole('heading', { name: 'Delete Phase' })).toBeVisible();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.page.locator('.phase-header').filter({ hasText: phaseName })).not.toBeVisible();\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\nimport moment from 'moment';\n\nexport class TemplatePropertiesPage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async getAttachmentsListCount(): Promise<number> {\n return await this.page.locator('.attachments tr').count();\n }\n\n async uploadFile(filePath: string): Promise<void> {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.page.locator('input[type=\"file\"]').click();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n async expectWithAttachment(filename: string): Promise<void> {\n await expect(this.page.locator('.attachments tr td a').filter({ hasText: filename })).toBeVisible();\n }\n\n async expectWithNoAttachment(filename: string): Promise<void> {\n const test = await this.page.locator('.attachments').isVisible();\n if (test) {\n await expect(this.page.locator('.attachments tr td a').filter({ hasText: filename })).not.toBeVisible();\n }\n }\n\n async downloadFile(filename: string): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const downloadPromise1 = this.page.waitForEvent('download');\n await this.page.getByText(filename).click();\n const download = await downloadPromise1;\n // Wait for the download process to complete and save the downloaded file in given path.\n await download.saveAs('./core/xlr-ui/build/playwright/' + download.suggestedFilename());\n expect(download.suggestedFilename()).toBe(filename);\n }\n\n async deleteAttachment(fileName: string): Promise<void> {\n await this.page.getByRole('row', { name: fileName }).locator('span').click();\n await this.page.getByText('Remove').click();\n }\n\n async save(): Promise<void> {\n await this.page.getByRole('button', { name: 'Save' }).click({ timeout: 8000 });\n await expect(this.page.locator('.form-footer .last-saved')).toBeVisible();\n }\n\n async reset(): Promise<void> {\n await this.page.getByRole('button', { name: 'Reset' }).waitFor();\n await this.page.getByRole('button', { name: 'Reset' }).click();\n }\n\n async removeDueDate(): Promise<void> {\n await this.page.locator('.due-date .close-icon').click();\n }\n\n async setScheduledStartDate(date: number, monthYear: string): Promise<void> {\n await this.page.locator(`.scheduled-start-date .date`).click();\n const prev = this.page.locator('.datepicker-days .prev');\n const next = this.page.locator('.datepicker-days .next');\n const monYear = this.page.locator('.datepicker-days .datepicker-switch');\n\n const thisMonth = moment(monthYear, 'MMMM YYYY').isBefore();\n\n while ((await monYear.textContent()) != monthYear) {\n if (thisMonth) {\n await prev.click();\n } else {\n await next.click();\n }\n }\n await this.page\n .getByRole('cell', { name: '' + date + '' })\n .first()\n .click();\n }\n\n async setDuration(days?: string, hours?: string, mins?: string): Promise<void> {\n await this.page.locator('.duration-editor').click();\n if (typeof days !== 'undefined') {\n await this.page.locator('.days').fill(days);\n }\n if (typeof hours !== 'undefined') {\n await this.page.locator('.hours').fill(hours);\n }\n if (typeof mins !== 'undefined') {\n await this.page.locator('.minutes').fill(mins);\n }\n }\n\n async expectScheduledStartDateToBe(date: string): Promise<void> {\n expect(await this.page.locator(`.scheduled-start-date .date input`).getAttribute('value')).toBe(date);\n }\n\n async expectDueDateToBe(date: string): Promise<void> {\n expect(await this.page.locator('.due-date .date-editor .date > .light-text').getAttribute('value')).toContain(date);\n }\n\n async expectedDueDateTime(time: string): Promise<void> {\n expect(await this.page.locator('.due-date .date-editor .time-picker-holder input').getAttribute('value')).toContain(\n time,\n );\n }\n\n async expectDurationToBe(duration: string): Promise<void> {\n expect(await this.page.locator('.duration-editor').textContent()).toBe(duration);\n }\n\n async setUsername(username: string): Promise<void> {\n await this.page.locator('.script-username').click();\n await this.page.locator('user-input-with-variable').getByLabel('*').fill(username);\n await this.page.locator('user-input-with-variable').press('Enter');\n }\n\n async setPassword(password: string): Promise<void> {\n await this.page.locator('.field > .display').click();\n await this.page.locator('input[name=\"scriptUserPassword\"]').fill(password);\n await this.page.locator('input[name=\"scriptUserPassword\"]').press('Enter');\n }\n\n async expectScriptUsernameToBe(username: string): Promise<void> {\n expect(await this.page.locator('.script-username').textContent()).toContain(username);\n }\n\n async expectScriptUserPasswordToBe(password: string): Promise<void> {\n expect(await this.page.locator('span[name=\"scriptUserPassword\"]').textContent()).toContain(password);\n }\n}\n","import { Page } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class TemplateCreatePage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async setName(name: string): Promise<void> {\n await this.page.locator('#release-form-title').fill(name);\n }\n\n async setDescription(description: string): Promise<void> {\n await this.page.getByText('Set description...').hover();\n await this.page.locator('.display').filter({ hasText: 'Set description' }).locator('.edit-icon').click();\n await this.page.locator('textarea').click();\n await this.page.locator('textarea').clear();\n await this.page.locator('textarea').fill(description);\n await this.page.getByText('Save', { exact: true }).click();\n }\n\n async create(): Promise<void> {\n await this.page.getByRole('button', { name: 'Create' }).click();\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from '../WithPage';\n\nexport class TemplateTriggerPage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async expectAllowConcurrentReleasesFromTrigger(expectedValue: boolean): Promise<void> {\n if (expectedValue) {\n await this.page.locator('.col-xs-2 .trigger-item-state').textContent({ timeout: 3000 });\n expect(await this.page.locator('.col-xs-2 .trigger-item-state').textContent()).toContain('Enabled');\n } else {\n await this.page.locator('.col-xs-2 .trigger-item-state').textContent({ timeout: 3000 });\n expect(await this.page.locator('.col-xs-2 .trigger-item-state').textContent()).toContain('Disabled');\n }\n }\n\n async setAllowConcurrentReleasesFromTriggerAndSubmit(checked: boolean): Promise<void> {\n const result = await this.page.locator('.col-xs-2 .trigger-item-state').textContent({ timeout: 3000 });\n if ((result === 'Enabled' && checked === false) || (result == 'Disabled' && checked === true)) {\n await this.page.locator('form[name=\"releaseTriggerOptions\"] label[for=\"cb\"]').click();\n }\n }\n\n async expectTriggersVisible(amount: number): Promise<void> {\n await expect(this.page.locator('.xlr-trigger-row .trigger-row-content')).toHaveCount(amount);\n }\n\n async expectNoNewTriggerButtonShown(): Promise<void> {\n await expect(this.page.locator('.trigger-header a.button.primary')).not.toBeVisible();\n }\n}\n","import { Page, expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class TemplateListPage extends WithPage {\n constructor(page: Page) {\n super(page);\n }\n\n async openTemplatesList(filter: string): Promise<void> {\n let url = '/templates';\n if (filter) {\n url += `?has_filter&filter=${filter}`;\n }\n await this.page.goto(url);\n }\n\n async searchBy(criteria: string): Promise<void> {\n await this.page.locator('.searchFilter').clear();\n await this.page.locator('.searchFilter').fill(criteria);\n }\n\n async copy(originTitle: string, targetTitle: string): Promise<void> {\n await this.page.locator('.title').filter({ hasText: originTitle }).locator('.copy').click();\n await this.page.getByLabel('Template name').clear();\n await this.page.getByLabel('Template name').fill(targetTitle);\n await this.page.getByLabel('Description').clear();\n await this.page.getByLabel('Description').fill('description');\n await this.page.getByRole('button', { name: 'Continue' }).click();\n await expect(this.page.getByTestId('template-workflow-pill').getByText('Template')).toBeVisible();\n }\n\n async move(templateName: string, targetFolder: string): Promise<void> {\n await this.page.locator('.template').filter({ hasText: templateName }).locator('.template-actions .move').click();\n await expect(this.page.getByText('Move template to')).toBeVisible();\n if (await this.page.getByRole('button', { name: 'Expand' }).isEnabled())\n await this.page.getByRole('button', { name: 'Expand' }).click();\n await this.page.getByPlaceholder('Search folder...').click();\n await this.page.getByPlaceholder('Search folder...').fill(targetFolder);\n await this.page.getByRole('button', { name: targetFolder }).click();\n await this.page.getByRole('button', { name: 'Move' }).click();\n await expect(this.page.getByText('Add', { exact: true })).toBeVisible();\n await expect(this.page.getByText('Remove')).toBeVisible();\n await this.page.getByRole('button', { name: 'Move' }).click();\n }\n\n async metaInformation(templateName: string, validationMsg?: string): Promise<void> {\n await this.page.locator('.title').filter({ hasText: templateName }).locator('.template-context-menu').click();\n await this.page.getByRole('menuitem', { name: 'Meta information' }).locator('a').click();\n await expect(this.page.getByRole('heading', { name: 'Meta information - ' + templateName })).toBeVisible();\n if (validationMsg) {\n await expect(this.page.getByText(validationMsg)).toBeVisible();\n }\n await expect(this.page.getByRole('button', { name: 'Close' })).toBeVisible();\n }\n\n async expectTemplateVisible(title: string, expected = true): Promise<void> {\n if (expected) {\n await this.page.locator('.template').filter({ hasText: title }).waitFor();\n expect(this.page.locator('.template').filter({ hasText: title })).toBeVisible();\n } else {\n await this.page.locator('.template').filter({ hasText: title }).waitFor();\n expect(this.page.locator('.template').filter({ hasText: title })).not.toBeVisible();\n }\n }\n\n async delete(title: string): Promise<void> {\n await this.searchBy(title);\n await this.page.locator('.title').filter({ hasText: title }).locator('.delete').waitFor();\n await this.page.locator('.title').filter({ hasText: title }).locator('.delete').click();\n await this.page.getByRole('button', { name: 'Delete' }).click();\n await expect(this.page.locator('.title').filter({ hasText: title })).not.toBeVisible();\n }\n\n async clickCreateNewTemplate(): Promise<void> {\n await this.page.getByTestId('dot-button').click();\n await this.page.getByRole('menuitem', { name: 'Create new template' }).click();\n }\n\n async openTemplateByName(templateName: string): Promise<void> {\n await this.filterByTitle(templateName);\n await this.page.locator(`.template`).filter({ hasText: templateName }).locator(`.raised-link`).waitFor();\n await this.page.locator(`.template`).filter({ hasText: templateName }).locator(`.raised-link`).click();\n }\n\n async clickNewReleaseIcon(templateName: string): Promise<void> {\n await this.page\n .locator('xlr-template-row-component')\n .filter({ hasText: templateName })\n .locator('.link .add-icon')\n .click();\n await expect(this.page.getByRole('heading', { name: 'Create new release' })).toBeVisible();\n }\n\n async filterByTitle(templateName: string): Promise<void> {\n await this.page.getByPlaceholder('Filter by title...', { exact: true }).click();\n await this.page.getByPlaceholder('Filter by title...', { exact: true }).fill(templateName);\n await this.page.getByPlaceholder('Filter by title...', { exact: true }).press('Enter');\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './WithPage';\n\nexport class LoginPage extends WithPage {\n /**\n * Login with username and password\n * @param userName\n * @param password\n */\n async login(userName: string, password: string): Promise<void> {\n await this.page.goto('./#/login');\n await expect(this.page).toHaveTitle('Digital.ai Release');\n await this.page.getByPlaceholder('User').fill(userName, { timeout: 1000 });\n await this.page.getByPlaceholder('Password').fill(password, { timeout: 10000 });\n await this.page.getByRole('button', { name: 'Log in' }).click({ timeout: 10000 });\n await this.page.waitForTimeout(1000);\n await this.closePendoModalWindow();\n }\n\n /**\n * Logout as authenticated user\n */\n async logout(): Promise<void> {\n await this.page.locator('button.dot-avatar').click();\n await this.page.getByText('Log out', { exact: true }).click();\n }\n\n /**\n * Expect login to be restricted for a user\n */\n async expectLoginDisallowed(): Promise<void> {\n const val = await this.page.textContent('.error-content span[ng-show=\"loginInfo.failedStatus == 403\"]');\n expect(val).toContain(\"You do not have 'login' permission.\");\n }\n\n /**\n * Expect the respective user is logged In\n * @param username\n */\n async expectToBeLogged(username: string): Promise<void> {\n const val = await this.page.locator('top-toolbar .avatar-wrapper span.dot-tooltip').getAttribute('aria-label');\n expect(val).toContain(username);\n }\n\n async closePendoModalWindow(): Promise<void> {\n await this.page.waitForTimeout(1000);\n if ((await this.page.locator('._pendo-close-guide').count()) > 0) {\n await this.page.locator('._pendo-close-guide').click();\n }\n }\n}\n","import isUndefined from 'lodash/isUndefined';\nimport each from 'lodash/each';\nimport forEach from 'lodash/forEach';\nimport defaults from 'lodash/defaults';\nimport toPairs from 'lodash/toPairs';\n\nimport { Container, Dashboard, Phase, Release, Task, Tile, Variable, VariableValueProvider } from '../types';\n\nexport const initReleaseDefaults = (function () {\n const RELEASE_TYPE = 'xlrelease.Release';\n const PHASE_TYPE = 'xlrelease.Phase';\n const TEAM_TYPE = 'xlrelease.Team';\n const TASK_TYPE = 'xlrelease.Task';\n const COMMENT_TYPE = 'xlrelease.Comment';\n const CONDITION_TYPE = 'xlrelease.GateCondition';\n const DEPENDENCY_TYPE = 'xlrelease.Dependency';\n const LINK_TYPE = 'xlrelease.Link';\n const ATTACHMENT_TYPE = 'xlrelease.Attachment';\n const DASHBOARD_TYPE = 'xlrelease.Dashboard';\n const _TRIGGER_TYPE = 'xlrelease.ReleaseTrigger';\n const JIRA_TYPE = 'jira.CreateIssue';\n const DEFAULT_TASK_OWNER = 'Itchy';\n\n const processTasks = (task: Task, container: Container, index: number): void => {\n if (isUndefined(task.type)) task.type = TASK_TYPE;\n task.id = task.id || `${container.id}/Task${index}`;\n if (isUndefined(task.owner) && task.type !== JIRA_TYPE) task.owner = DEFAULT_TASK_OWNER;\n if (task.owner === null) delete task.owner;\n\n each(task.conditions, function (condition, idx) {\n condition.type = CONDITION_TYPE;\n condition.id = `${task.id}/GateCondition${idx}`;\n });\n each(task.dependencies, function (dependency, idx) {\n dependency.type = DEPENDENCY_TYPE;\n dependency.id = `${task.id}/Dependency${idx}`;\n });\n each(task.links, function (link, idx) {\n link.type = LINK_TYPE;\n link.id = `${task.id}/Link${idx}`;\n });\n each(task.comments, function (comment, idx) {\n comment.type = COMMENT_TYPE;\n comment.id = `${task.id}/Comment${idx}`;\n });\n each(task.tasks, function (subTask, idx) {\n processTasks(subTask, task, idx);\n });\n each(task.templateVariables, function (variable, idx) {\n defaults(variable, getVariableEntity(variable.value, variable.key, task.id, idx));\n });\n each(task.attachments, function (attachment, idx) {\n attachment.type = ATTACHMENT_TYPE;\n attachment.id = `${task.id}/Attachment${idx}`;\n });\n if (task.pythonScript) {\n const pythonScript = task.pythonScript;\n pythonScript.id = `${task.id}/PythonScript`;\n pythonScript.customScriptTask = task.id;\n }\n };\n\n const processPhases = (phase: Phase, release: Release, index: number): void => {\n phase.type = PHASE_TYPE;\n phase.id = `${release.id}/Phase${index}`;\n\n forEach(phase.tasks, (task, idx): void => {\n processTasks(task, phase, idx);\n });\n };\n\n const getVariableEntity = (\n value: string,\n key: string,\n containerId: string,\n index: number,\n password?: boolean,\n // eslint-disable-next-line max-params\n ): Variable => {\n const keyNoSyntax = key.replace('${', '').replace('}', '');\n return {\n id: `${containerId}/Variable${index}`,\n key: keyNoSyntax,\n requiresValue: true,\n showOnReleaseStart: true,\n type: password ? 'xlrelease.PasswordStringVariable' : 'xlrelease.StringVariable',\n value: value,\n };\n };\n\n const getValueProviderConfigurationEntity = function (containerId: string): VariableValueProvider {\n return {\n id: `${containerId}/valueProvider`,\n variable: containerId,\n };\n };\n\n const getDashboardExtension = (dashboard: Dashboard, releaseId: string): Dashboard => {\n const dashboardExtension: Dashboard = {\n id: `${releaseId}/summary`,\n type: DASHBOARD_TYPE,\n tiles: [],\n };\n if (dashboard.tiles) {\n forEach(dashboard.tiles, function (tile, index) {\n dashboardExtension.tiles.push(getTileEntity(tile, `${releaseId}/summary`, index));\n });\n }\n return dashboardExtension;\n };\n\n function getTileEntity(tile: Tile, containerId: string, index: number): Tile {\n tile.id = tile.id || `${containerId}/Tile${index}`;\n return tile;\n }\n\n return function (release: Release) {\n release.type = RELEASE_TYPE;\n if (release.id.indexOf('Applications/') === -1) {\n release.id = `Applications/${release.id}`;\n }\n if (release.startDate) {\n release.queryableStartDate = release.startDate;\n } else if (release.scheduledStartDate) {\n release.queryableStartDate = release.scheduledStartDate;\n }\n if (release.endDate) {\n release.queryableEndDate = release.endDate;\n } else if (release.dueDate) {\n release.queryableEndDate = release.dueDate;\n }\n if (isUndefined(release.owner)) release.owner = 'Itchy'; // default release manager\n\n forEach(release.phases, function (phase, index) {\n processPhases(phase, release, index);\n });\n forEach(release.teams, function (team, index) {\n team.type = TEAM_TYPE;\n team.id = `${release.id}/Team${index}`;\n });\n forEach(release.attachments, function (attachment, index) {\n attachment.type = ATTACHMENT_TYPE;\n attachment.id = `${release.id}/Attachment${index}`;\n });\n forEach(release.variables, function (variable: Variable, index) {\n defaults(variable, getVariableEntity(variable.value, variable.key, release.id, index));\n if (variable.valueProvider) {\n defaults(variable.valueProvider, getValueProviderConfigurationEntity(variable.id));\n }\n });\n forEach(toPairs(release.variableValues), function (keyValue, index) {\n if (!release.variables) release.variables = [];\n release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1000 + index));\n release.variableValues = undefined;\n });\n forEach(toPairs(release.passwordVariableValues), function (keyValue, index) {\n if (!release.variables) release.variables = [];\n release.variables.push(getVariableEntity(keyValue[1], keyValue[0], release.id, 1500 + index, true));\n release.passwordVariableValues = undefined;\n });\n\n if (release.summary) {\n release.extensions = [getDashboardExtension(release.summary, release.id)];\n release.summary = undefined;\n }\n };\n})();\n"],"names":[],"version":3,"file":"module.js.map"}
|