@digital-ai/devops-page-object-deploy 0.0.0-snapshot-20251121140708 → 0.0.0-snapshot-20251124123340
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 +1 -1
- package/dist/main.js +18 -1
- package/dist/main.js.map +1 -1
- package/dist/module.js +18 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
package/dist/main.js
CHANGED
|
@@ -123,6 +123,7 @@ class $647b67e126f2dbe0$export$c88e1d16f82516d extends (0, $ae23b16684112d0b$exp
|
|
|
123
123
|
|
|
124
124
|
|
|
125
125
|
|
|
126
|
+
|
|
126
127
|
class $64bc587a017c1e89$export$12530425267834a9 extends (0, $ae23b16684112d0b$export$2b65d1d97338f32b) {
|
|
127
128
|
/* Helps to create a new Environment */ async createEnvironment(environmentName, hostName) {
|
|
128
129
|
await this.page.locator('input[name="name"]').fill(environmentName);
|
|
@@ -133,6 +134,10 @@ class $64bc587a017c1e89$export$12530425267834a9 extends (0, $ae23b16684112d0b$ex
|
|
|
133
134
|
await this.page.getByRole("button", {
|
|
134
135
|
name: "Save and close"
|
|
135
136
|
}).click();
|
|
137
|
+
const toastMessage = this.page.locator(".redux-toastr .rrt-text:visible");
|
|
138
|
+
await (0, $1UEKj$playwrighttest.expect)(toastMessage).toHaveText("Your change was saved.", {
|
|
139
|
+
timeout: 5000
|
|
140
|
+
});
|
|
136
141
|
}
|
|
137
142
|
}
|
|
138
143
|
|
|
@@ -154,6 +159,10 @@ class $408106958eb335da$export$1533b625ec0c75e2 extends (0, $ae23b16684112d0b$ex
|
|
|
154
159
|
await this.page.getByRole("button", {
|
|
155
160
|
name: "Save and close"
|
|
156
161
|
}).click();
|
|
162
|
+
const toastMessage = this.page.locator(".redux-toastr .rrt-text:visible");
|
|
163
|
+
await (0, $1UEKj$playwrighttest.expect)(toastMessage).toHaveText("Your change was saved.", {
|
|
164
|
+
timeout: 5000
|
|
165
|
+
});
|
|
157
166
|
}
|
|
158
167
|
/* Creates a new deployment package */ async createNewDeploymentPackage(applicationName, packageName) {
|
|
159
168
|
const appDataId = `Applications/${applicationName}`;
|
|
@@ -180,6 +189,10 @@ class $408106958eb335da$export$1533b625ec0c75e2 extends (0, $ae23b16684112d0b$ex
|
|
|
180
189
|
await this.page.getByRole("button", {
|
|
181
190
|
name: "Save and close"
|
|
182
191
|
}).click();
|
|
192
|
+
const toastMessage = this.page.locator(".redux-toastr .rrt-text:visible");
|
|
193
|
+
await (0, $1UEKj$playwrighttest.expect)(toastMessage).toHaveText("Your change was saved.", {
|
|
194
|
+
timeout: 5000
|
|
195
|
+
});
|
|
183
196
|
}
|
|
184
197
|
/* Creates a new command application */ async createNewCmdApplication(values) {
|
|
185
198
|
const appDataId = `Applications/${values[0]}`;
|
|
@@ -211,6 +224,10 @@ class $408106958eb335da$export$1533b625ec0c75e2 extends (0, $ae23b16684112d0b$ex
|
|
|
211
224
|
await (0, $1UEKj$playwrighttest.expect)(saveBtn).toBeEnabled();
|
|
212
225
|
await saveBtn.click();
|
|
213
226
|
await this.page.waitForTimeout(3000);
|
|
227
|
+
const toastMessage = this.page.locator(".redux-toastr .rrt-text:visible");
|
|
228
|
+
await (0, $1UEKj$playwrighttest.expect)(toastMessage).toHaveText("Your change was saved.", {
|
|
229
|
+
timeout: 5000
|
|
230
|
+
});
|
|
214
231
|
// Close dialog
|
|
215
232
|
await this.page.locator("i.xl-icon.close-icon").first().click();
|
|
216
233
|
}
|
|
@@ -279,7 +296,7 @@ class $fea68740c371df96$export$b8a443164510a1b4 extends (0, $ae23b16684112d0b$ex
|
|
|
279
296
|
async verifyTheDeploymentValues(values) {
|
|
280
297
|
await this.page.locator('div.deployment-task-filter-task-id input[placeholder="Search"]:visible').first().fill(values[0]);
|
|
281
298
|
await this.page.waitForSelector("td.report-table-package .deployment-report-package", {
|
|
282
|
-
timeout:
|
|
299
|
+
timeout: 5000
|
|
283
300
|
});
|
|
284
301
|
await (0, $1UEKj$playwrighttest.expect)(this.page.locator("td.report-table-package .deployment-report-package")).toContainText(new RegExp(`${values[2]}\\/${values[3]}`, "i"));
|
|
285
302
|
await (0, $1UEKj$playwrighttest.expect)(this.page.locator("td.report-table-originalType .deployment-report-task-type")).toHaveText(/Initial/i); // Regex ignores case
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["apps/deploy/index.ts","apps/deploy/fixtures/index.ts","apps/deploy/pages/index.ts","apps/deploy/pages/homePage.ts","apps/deploy/pages/withPage.ts","apps/deploy/pages/usersPage.ts","apps/deploy/pages/infrastructure/overthereLocalHostPage.ts","apps/deploy/pages/environmentsPage.ts","apps/deploy/pages/applications/applicationsPage.ts","apps/deploy/pages/reportsPage.ts","apps/deploy/pages/loginPage.ts"],"sourcesContent":["export { test } from './fixtures';\n","import { test as base, Page } from '@playwright/test';\nimport { Navigation } from '../pages';\nimport { LoginPage } from '../pages/loginPage';\n\ntype DeployFixtures = {\n fixtures: Fixtures;\n loginPage: LoginPage;\n navigation: Navigation;\n};\n\nexport const test = base.extend<DeployFixtures>({\n fixtures: async ({ page }, use) => {\n const fixtures = new Fixtures(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 page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n}\n","import { Page } from '@playwright/test';\nimport { HomePage } from './homePage';\nimport { UserPage } from './usersPage';\nimport { OverthereLocalHostPage } from './infrastructure/overthereLocalHostPage';\nimport { EnvironmentsPage } from './environmentsPage';\nimport { ApplicationsPage } from './applications/applicationsPage';\nimport { ReportsPage } from './reportsPage';\n\nexport class Navigation {\n private readonly page: Page;\n homePage: HomePage;\n userPage: UserPage;\n overthereLocalHostPage: OverthereLocalHostPage;\n environmentsPage: EnvironmentsPage;\n applicationsPage: ApplicationsPage;\n reportsPage: ReportsPage;\n\n constructor(page: Page) {\n this.page = page;\n this.homePage = new HomePage(page);\n this.userPage = new UserPage(page);\n this.overthereLocalHostPage = new OverthereLocalHostPage(page);\n this.environmentsPage = new EnvironmentsPage(page);\n this.applicationsPage = new ApplicationsPage(page, this);\n this.reportsPage = new ReportsPage(page);\n }\n\n async navigateToHomePage(): Promise<void> {\n await this.page.goto('/home');\n }\n\n async navigateToUserPage(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n }\n\n async clickCollapseSideView(): Promise<void> {\n const collapseButton = this.page.getByTestId('back-button');\n await collapseButton.click();\n }\n\n /* Helps to navigate to the Applications page */\n async navigateToApplicationsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Applications\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Applications\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Application' }).click();\n }\n\n /* Helps to navigate to the Environments page */\n async navigateToEnvironmentsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Environments\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Environments\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Environment' }).click();\n }\n\n /* Helps to navigate to the Overthere LocalHost page */\n async navigateToOverthereLocalHostPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Infrastructure\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Infrastructure\"]').click();\n // await this.page.waitForTimeout(5000);\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'overthere' }).click();\n await this.page.getByRole('link', { name: 'LocalHost' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class HomePage extends WithPage {\n async clickUserManagement(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n await this.page.getByRole('link', { name: 'Users' }).click();\n }\n\n async verifyDeployLogoIsPresent(): Promise<void> {\n const logo = this.page.getByAltText('Deploy');\n await expect(logo).toBeVisible();\n }\n\n async verifyDeployTextIsPresent(): Promise<void> {\n const title = this.page.getByTitle('digital.ai');\n await expect(title).toBeVisible();\n }\n\n async clickReports(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Reports' }).click();\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 { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class UserPage extends WithPage {\n /* Create a new user */\n async createNewUser(username: string, email: string, password: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByRole('button', { name: 'Add user' }).click();\n await this.page.locator('input[name=\"username\"]').fill(username);\n await this.page.locator('input[name=\"fullName\"]').fill(username);\n await this.page.locator('input[name=\"email\"]').fill(email);\n const passwordInput = this.page.locator('input[name=\"password\"]');\n await passwordInput.click({ force: true });\n await passwordInput.fill(password);\n await this.page.locator('input[name=\"confirmPassword\"]').fill(password);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n /* Verify success message */\n async verifySuccessMessage(): Promise<void> {\n const SuccessMessage = this.page.getByRole('alertdialog');\n await expect(SuccessMessage).toBeVisible();\n await expect(SuccessMessage).toHaveText(/User \".*\" created/i);\n }\n\n /* Verify user error message */\n async verifyUserErrorMessage(): Promise<void> {\n await expect(this.page.locator('.rrt-middle-container[role=\"alertdialog\"]').nth(1)).toContainText(\n /already in use/i,\n );\n }\n\n /* Delete the user and verify it is deleted */\n async deleteTheUserAndVerifyItIsDeleted(username: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('td.users-table-actions button.delete.xl-icon.table-action').click();\n await this.page.getByRole('button', { name: 'Delete', exact: true }).click();\n const DeleteMessage = this.page.getByRole('alertdialog');\n await expect(DeleteMessage).toBeVisible();\n await expect(DeleteMessage).toHaveText(/User \".*\" deleted/i);\n }\n\n /* Edit the user and verify the changes */\n async editUserAndVerify(username: string, editfullname: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('i.icon-edit.dot-i').first().click();\n await this.page.locator('input[name=\"fullName\"]').fill(editfullname);\n await this.page.getByRole('button', { name: 'Save', exact: true }).click();\n const EditMessage = this.page.getByRole('alertdialog');\n await expect(EditMessage).toBeVisible();\n await expect(EditMessage).toContainText('Your change was saved');\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class OverthereLocalHostPage extends WithPage {\n /* Helps to create a LocalHost of type UNIX/Windows/Zos */\n async createHostForGivenType(name: string, type: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(name);\n await this.page.locator('label:has-text(\"Operating system\")').locator('xpath=following::input[1]').click();\n await this.page.getByText(type, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class EnvironmentsPage extends WithPage {\n /* Helps to create a new Environment */\n async createEnvironment(environmentName: string, hostName: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(environmentName);\n await this.page.locator('i.xl-icon.arrow-down-icon.show-all').nth(0).click();\n await this.page.getByTitle(`Infrastructure/${hostName}`, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class ApplicationsPage extends WithPage {\n taskId!: string;\n executedText!: string;\n private navigation: any;\n\n constructor(page: any, navigation: any) {\n super(page);\n this.navigation = navigation;\n }\n\n /* Creates a new application */\n async createNewApplication(applicationName: string): Promise<void> {\n await this.navigation.navigateToApplicationsPage();\n await this.page.locator('input[name=\"name\"]').waitFor({ state: 'visible' });\n await this.page.locator('input[name=\"name\"]').click();\n await this.page.locator('input[name=\"name\"]').fill(applicationName);\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n\n /* Creates a new deployment package */\n async createNewDeploymentPackage(applicationName: string, packageName: string): Promise<void> {\n const appDataId = `Applications/${applicationName}`;\n\n // Expand Applications\n const root = this.page.locator('div[data-id=\"Applications\"] .infinite-tree-node > a');\n await root.click();\n\n // Hover over app node\n const appNode = this.page.locator(`span[data-id=\"${appDataId}\"]`);\n await expect(appNode).toBeVisible();\n await appNode.hover();\n\n // Open context menu + create new deployment package\n const contextMenu = this.page.locator(`i.context-menu-button[data-id=\"${appDataId}\"]`);\n await expect(contextMenu).toBeVisible();\n await contextMenu.click();\n\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Deployment Package' }).click();\n\n // Fill & save\n const nameInput = this.page.locator('input[name=\"name\"]');\n await nameInput.fill(packageName);\n\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n\n /* Creates a new command application */\n async createNewCmdApplication(values: string[]): Promise<void> {\n const appDataId = `Applications/${values[0]}`;\n const packageDataId = `Applications/${values[0]}/${values[1]}`;\n\n // Expand app node and click package\n await this.page.locator(`div[data-id=\"${appDataId}\"] .infinite-tree-node > a`).click();\n const packageNode = this.page.locator(`span[data-id=\"${packageDataId}\"]`).first();\n await expect(packageNode).toBeVisible();\n await packageNode.click();\n\n // Open context menu\n const packageMenu = this.page.locator(`i.context-menu-button[data-id=\"${packageDataId}\"]`);\n await expect(packageMenu).toBeVisible();\n await packageMenu.click();\n\n // Create Command application\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'cmd' }).click();\n await this.page.getByRole('link', { name: 'Command' }).click();\n\n await this.page.locator('input[name=\"name\"]').fill(values[2]);\n\n await this.page.locator('textarea[name=\"commandLine\"]').fill(values[3]);\n\n const saveBtn = this.page.locator('button', { hasText: /^Save$/ }).first();\n await expect(saveBtn).toBeEnabled();\n await saveBtn.click();\n await this.page.waitForTimeout(3000);\n\n // Close dialog\n await this.page.locator('i.xl-icon.close-icon').first().click();\n }\n\n /*Deploy the application*/\n async deployApp(values: string[]): Promise<void> {\n const versionNode = `Applications/${values[0]}/${values[1]}`;\n await this.page.locator(`i.context-menu-button[data-id=\"${versionNode}\"]`).click();\n await this.page.getByRole('link', { name: 'Deploy', exact: true }).click();\n await this.page.locator(`input[name=\"selections\"][value=\"Environments/${values[2]}\"]`).click();\n await this.page.getByRole('button', { name: 'Continue' }).click();\n\n await this.page.locator('.errors-wrapper').waitFor({ state: 'attached', timeout: 5000 });\n\n const errorIcon = this.page.locator('a.validation-icons-wrapper.error');\n\n if (await errorIcon.isVisible()) {\n await this.page.getByRole('button', { name: 'Deployment Properties' }).click();\n await this.page.locator('input[name=\"username\"]').fill(values[3]);\n await this.page.getByRole('button', { name: 'Save' }).click();\n } else {\n }\n\n await this.page.locator('button.deploy.xl-primary').click();\n\n //Get the task id\n this.taskId = (await this.page.locator('div.task-id').textContent()) || '';\n\n //Verify no failure and all are done\n const labels = this.page.locator('span.label');\n await expect(labels).toHaveCount(3);\n await expect(labels).toHaveText(['EXECUTED', 'DONE', 'DONE']);\n\n //Get the text executed\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n this.executedText = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify in monitoring tab searching with the task id\n await this.page.locator('div[data-id=\"TASK_MONITOR\"] .infinite-tree-node > a').click();\n await this.page.locator('span[data-id=\"DEPLOYMENT_TASKS\"]').dblclick();\n await this.page.waitForTimeout(5000);\n\n await this.page.locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]').first().fill(this.taskId);\n const stateText = await this.page.locator('td.tasks-table-state').first().innerText();\n expect(stateText.trim()).toBe('Executed');\n\n //Click the row to go to deployment screen\n await this.page.locator('table.table.table-striped tbody tr').first().dblclick();\n\n await this.page.locator('button.finish.xl-primary').click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class ReportsPage extends WithPage {\n /* Clicks on the Deployment Tasks section */\n async clickDeploymentTasks(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Deployments' }).click();\n }\n\n async verifyTheDeploymentValues(values: string[]): Promise<void> {\n await this.page\n .locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]:visible')\n .first()\n .fill(values[0]);\n await this.page.waitForSelector('td.report-table-package .deployment-report-package', { timeout: 30000 });\n await expect(this.page.locator('td.report-table-package .deployment-report-package')).toContainText(\n new RegExp(`${values[2]}\\\\/${values[3]}`, 'i'),\n );\n await expect(this.page.locator('td.report-table-originalType .deployment-report-task-type')).toHaveText(/Initial/i); // Regex ignores case\n await expect(this.page.locator('td.report-table-user .deployment-report-user')).toHaveText('admin');\n\n //Click the row\n await this.page.locator('td.report-table-package .deployment-report-package').dblclick();\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n\n //Get the log text\n const text = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify both the log text are same\n expect(text).toContain(values[1]);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class LoginPage extends WithPage {\n /* Login with username and password*/\n async login(userName: string, password: string): Promise<void> {\n await this.page.goto('/#/login');\n await expect(this.page).toHaveTitle('Digital.ai Deploy');\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 }\n\n /* Verify invalid password message */\n async verifyInvalidPasswordMessage(): Promise<void> {\n const errorMessage = this.page.getByText('The username and/or password you have entered is incorrect.');\n await expect(errorMessage).toBeVisible();\n }\n\n /* Logout as authenticated user */\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 await expect(this.page.getByText('Log in').first()).toBeVisible();\n }\n}\n"],"names":[],"version":3,"file":"main.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["apps/deploy/index.ts","apps/deploy/fixtures/index.ts","apps/deploy/pages/index.ts","apps/deploy/pages/homePage.ts","apps/deploy/pages/withPage.ts","apps/deploy/pages/usersPage.ts","apps/deploy/pages/infrastructure/overthereLocalHostPage.ts","apps/deploy/pages/environmentsPage.ts","apps/deploy/pages/applications/applicationsPage.ts","apps/deploy/pages/reportsPage.ts","apps/deploy/pages/loginPage.ts"],"sourcesContent":["export { test } from './fixtures';\n","import { test as base, Page } from '@playwright/test';\nimport { Navigation } from '../pages';\nimport { LoginPage } from '../pages/loginPage';\n\ntype DeployFixtures = {\n fixtures: Fixtures;\n loginPage: LoginPage;\n navigation: Navigation;\n};\n\nexport const test = base.extend<DeployFixtures>({\n fixtures: async ({ page }, use) => {\n const fixtures = new Fixtures(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 page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n}\n","import { Page } from '@playwright/test';\nimport { HomePage } from './homePage';\nimport { UserPage } from './usersPage';\nimport { OverthereLocalHostPage } from './infrastructure/overthereLocalHostPage';\nimport { EnvironmentsPage } from './environmentsPage';\nimport { ApplicationsPage } from './applications/applicationsPage';\nimport { ReportsPage } from './reportsPage';\n\nexport class Navigation {\n private readonly page: Page;\n homePage: HomePage;\n userPage: UserPage;\n overthereLocalHostPage: OverthereLocalHostPage;\n environmentsPage: EnvironmentsPage;\n applicationsPage: ApplicationsPage;\n reportsPage: ReportsPage;\n\n constructor(page: Page) {\n this.page = page;\n this.homePage = new HomePage(page);\n this.userPage = new UserPage(page);\n this.overthereLocalHostPage = new OverthereLocalHostPage(page);\n this.environmentsPage = new EnvironmentsPage(page);\n this.applicationsPage = new ApplicationsPage(page, this);\n this.reportsPage = new ReportsPage(page);\n }\n\n async navigateToHomePage(): Promise<void> {\n await this.page.goto('/home');\n }\n\n async navigateToUserPage(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n }\n\n async clickCollapseSideView(): Promise<void> {\n const collapseButton = this.page.getByTestId('back-button');\n await collapseButton.click();\n }\n\n /* Helps to navigate to the Applications page */\n async navigateToApplicationsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Applications\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Applications\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Application' }).click();\n }\n\n /* Helps to navigate to the Environments page */\n async navigateToEnvironmentsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Environments\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Environments\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Environment' }).click();\n }\n\n /* Helps to navigate to the Overthere LocalHost page */\n async navigateToOverthereLocalHostPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Infrastructure\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Infrastructure\"]').click();\n // await this.page.waitForTimeout(5000);\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'overthere' }).click();\n await this.page.getByRole('link', { name: 'LocalHost' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class HomePage extends WithPage {\n async clickUserManagement(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n await this.page.getByRole('link', { name: 'Users' }).click();\n }\n\n async verifyDeployLogoIsPresent(): Promise<void> {\n const logo = this.page.getByAltText('Deploy');\n await expect(logo).toBeVisible();\n }\n\n async verifyDeployTextIsPresent(): Promise<void> {\n const title = this.page.getByTitle('digital.ai');\n await expect(title).toBeVisible();\n }\n\n async clickReports(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Reports' }).click();\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 { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class UserPage extends WithPage {\n /* Create a new user */\n async createNewUser(username: string, email: string, password: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByRole('button', { name: 'Add user' }).click();\n await this.page.locator('input[name=\"username\"]').fill(username);\n await this.page.locator('input[name=\"fullName\"]').fill(username);\n await this.page.locator('input[name=\"email\"]').fill(email);\n const passwordInput = this.page.locator('input[name=\"password\"]');\n await passwordInput.click({ force: true });\n await passwordInput.fill(password);\n await this.page.locator('input[name=\"confirmPassword\"]').fill(password);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n /* Verify success message */\n async verifySuccessMessage(): Promise<void> {\n const SuccessMessage = this.page.getByRole('alertdialog');\n await expect(SuccessMessage).toBeVisible();\n await expect(SuccessMessage).toHaveText(/User \".*\" created/i);\n }\n\n /* Verify user error message */\n async verifyUserErrorMessage(): Promise<void> {\n await expect(this.page.locator('.rrt-middle-container[role=\"alertdialog\"]').nth(1)).toContainText(\n /already in use/i,\n );\n }\n\n /* Delete the user and verify it is deleted */\n async deleteTheUserAndVerifyItIsDeleted(username: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('td.users-table-actions button.delete.xl-icon.table-action').click();\n await this.page.getByRole('button', { name: 'Delete', exact: true }).click();\n const DeleteMessage = this.page.getByRole('alertdialog');\n await expect(DeleteMessage).toBeVisible();\n await expect(DeleteMessage).toHaveText(/User \".*\" deleted/i);\n }\n\n /* Edit the user and verify the changes */\n async editUserAndVerify(username: string, editfullname: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('i.icon-edit.dot-i').first().click();\n await this.page.locator('input[name=\"fullName\"]').fill(editfullname);\n await this.page.getByRole('button', { name: 'Save', exact: true }).click();\n const EditMessage = this.page.getByRole('alertdialog');\n await expect(EditMessage).toBeVisible();\n await expect(EditMessage).toContainText('Your change was saved');\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class OverthereLocalHostPage extends WithPage {\n /* Helps to create a LocalHost of type UNIX/Windows/Zos */\n async createHostForGivenType(name: string, type: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(name);\n await this.page.locator('label:has-text(\"Operating system\")').locator('xpath=following::input[1]').click();\n await this.page.getByText(type, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { WithPage } from './withPage';\nimport { expect } from '@playwright/test';\n\nexport class EnvironmentsPage extends WithPage {\n /* Helps to create a new Environment */\n async createEnvironment(environmentName: string, hostName: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(environmentName);\n await this.page.locator('i.xl-icon.arrow-down-icon.show-all').nth(0).click();\n await this.page.getByTitle(`Infrastructure/${hostName}`, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { expect, Page } from '@playwright/test';\nimport { WithPage } from '../withPage';\nimport { Navigation } from '../index';\n\nexport class ApplicationsPage extends WithPage {\n taskId!: string;\n executedText!: string;\n private navigation: Navigation;\n\n constructor(page: Page, navigation: Navigation) {\n super(page);\n this.navigation = navigation;\n }\n\n /* Creates a new application */\n async createNewApplication(applicationName: string): Promise<void> {\n await this.navigation.navigateToApplicationsPage();\n await this.page.locator('input[name=\"name\"]').waitFor({ state: 'visible' });\n await this.page.locator('input[name=\"name\"]').click();\n await this.page.locator('input[name=\"name\"]').fill(applicationName);\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n\n /* Creates a new deployment package */\n async createNewDeploymentPackage(applicationName: string, packageName: string): Promise<void> {\n const appDataId = `Applications/${applicationName}`;\n\n // Expand Applications\n const root = this.page.locator('div[data-id=\"Applications\"] .infinite-tree-node > a');\n await root.click();\n\n // Hover over app node\n const appNode = this.page.locator(`span[data-id=\"${appDataId}\"]`);\n await expect(appNode).toBeVisible();\n await appNode.hover();\n\n // Open context menu + create new deployment package\n const contextMenu = this.page.locator(`i.context-menu-button[data-id=\"${appDataId}\"]`);\n await expect(contextMenu).toBeVisible();\n await contextMenu.click();\n\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Deployment Package' }).click();\n\n // Fill & save\n const nameInput = this.page.locator('input[name=\"name\"]');\n await nameInput.fill(packageName);\n\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n\n /* Creates a new command application */\n async createNewCmdApplication(values: string[]): Promise<void> {\n const appDataId = `Applications/${values[0]}`;\n const packageDataId = `Applications/${values[0]}/${values[1]}`;\n\n // Expand app node and click package\n await this.page.locator(`div[data-id=\"${appDataId}\"] .infinite-tree-node > a`).click();\n const packageNode = this.page.locator(`span[data-id=\"${packageDataId}\"]`).first();\n await expect(packageNode).toBeVisible();\n await packageNode.click();\n\n // Open context menu\n const packageMenu = this.page.locator(`i.context-menu-button[data-id=\"${packageDataId}\"]`);\n await expect(packageMenu).toBeVisible();\n await packageMenu.click();\n\n // Create Command application\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'cmd' }).click();\n await this.page.getByRole('link', { name: 'Command' }).click();\n\n await this.page.locator('input[name=\"name\"]').fill(values[2]);\n\n await this.page.locator('textarea[name=\"commandLine\"]').fill(values[3]);\n\n const saveBtn = this.page.locator('button', { hasText: /^Save$/ }).first();\n await expect(saveBtn).toBeEnabled();\n await saveBtn.click();\n await this.page.waitForTimeout(3000);\n\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n\n // Close dialog\n await this.page.locator('i.xl-icon.close-icon').first().click();\n }\n\n /*Deploy the application*/\n async deployApp(values: string[]): Promise<void> {\n const versionNode = `Applications/${values[0]}/${values[1]}`;\n await this.page.locator(`i.context-menu-button[data-id=\"${versionNode}\"]`).click();\n await this.page.getByRole('link', { name: 'Deploy', exact: true }).click();\n await this.page.locator(`input[name=\"selections\"][value=\"Environments/${values[2]}\"]`).click();\n await this.page.getByRole('button', { name: 'Continue' }).click();\n\n await this.page.locator('.errors-wrapper').waitFor({ state: 'attached', timeout: 5000 });\n\n const errorIcon = this.page.locator('a.validation-icons-wrapper.error');\n\n if (await errorIcon.isVisible()) {\n await this.page.getByRole('button', { name: 'Deployment Properties' }).click();\n await this.page.locator('input[name=\"username\"]').fill(values[3]);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n await this.page.locator('button.deploy.xl-primary').click();\n\n //Get the task id\n this.taskId = (await this.page.locator('div.task-id').textContent()) || '';\n\n //Verify no failure and all are done\n const labels = this.page.locator('span.label');\n await expect(labels).toHaveCount(3);\n await expect(labels).toHaveText(['EXECUTED', 'DONE', 'DONE']);\n\n //Get the text executed\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n this.executedText = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify in monitoring tab searching with the task id\n await this.page.locator('div[data-id=\"TASK_MONITOR\"] .infinite-tree-node > a').click();\n await this.page.locator('span[data-id=\"DEPLOYMENT_TASKS\"]').dblclick();\n await this.page.waitForTimeout(5000);\n\n await this.page.locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]').first().fill(this.taskId);\n const stateText = await this.page.locator('td.tasks-table-state').first().innerText();\n expect(stateText.trim()).toBe('Executed');\n\n //Click the row to go to deployment screen\n await this.page.locator('table.table.table-striped tbody tr').first().dblclick();\n\n await this.page.locator('button.finish.xl-primary').click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class ReportsPage extends WithPage {\n /* Clicks on the Deployment Tasks section */\n async clickDeploymentTasks(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Deployments' }).click();\n }\n\n async verifyTheDeploymentValues(values: string[]): Promise<void> {\n await this.page\n .locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]:visible')\n .first()\n .fill(values[0]);\n await this.page.waitForSelector('td.report-table-package .deployment-report-package', { timeout: 5000 });\n await expect(this.page.locator('td.report-table-package .deployment-report-package')).toContainText(\n new RegExp(`${values[2]}\\\\/${values[3]}`, 'i'),\n );\n await expect(this.page.locator('td.report-table-originalType .deployment-report-task-type')).toHaveText(/Initial/i); // Regex ignores case\n await expect(this.page.locator('td.report-table-user .deployment-report-user')).toHaveText('admin');\n\n //Click the row\n await this.page.locator('td.report-table-package .deployment-report-package').dblclick();\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n\n //Get the log text\n const text = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify both the log text are same\n expect(text).toContain(values[1]);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class LoginPage extends WithPage {\n /* Login with username and password*/\n async login(userName: string, password: string): Promise<void> {\n await this.page.goto('/#/login');\n await expect(this.page).toHaveTitle('Digital.ai Deploy');\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 }\n\n /* Verify invalid password message */\n async verifyInvalidPasswordMessage(): Promise<void> {\n const errorMessage = this.page.getByText('The username and/or password you have entered is incorrect.');\n await expect(errorMessage).toBeVisible();\n }\n\n /* Logout as authenticated user */\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 await expect(this.page.getByText('Log in').first()).toBeVisible();\n }\n}\n"],"names":[],"version":3,"file":"main.js.map"}
|
package/dist/module.js
CHANGED
|
@@ -118,6 +118,7 @@ class $a4d71fd851704781$export$c88e1d16f82516d extends (0, $7d546dcaafadc158$exp
|
|
|
118
118
|
|
|
119
119
|
|
|
120
120
|
|
|
121
|
+
|
|
121
122
|
class $8f7dd2349a88e8b2$export$12530425267834a9 extends (0, $7d546dcaafadc158$export$2b65d1d97338f32b) {
|
|
122
123
|
/* Helps to create a new Environment */ async createEnvironment(environmentName, hostName) {
|
|
123
124
|
await this.page.locator('input[name="name"]').fill(environmentName);
|
|
@@ -128,6 +129,10 @@ class $8f7dd2349a88e8b2$export$12530425267834a9 extends (0, $7d546dcaafadc158$ex
|
|
|
128
129
|
await this.page.getByRole("button", {
|
|
129
130
|
name: "Save and close"
|
|
130
131
|
}).click();
|
|
132
|
+
const toastMessage = this.page.locator(".redux-toastr .rrt-text:visible");
|
|
133
|
+
await (0, $lE6ZQ$expect)(toastMessage).toHaveText("Your change was saved.", {
|
|
134
|
+
timeout: 5000
|
|
135
|
+
});
|
|
131
136
|
}
|
|
132
137
|
}
|
|
133
138
|
|
|
@@ -149,6 +154,10 @@ class $3fb4750cbb53e5e6$export$1533b625ec0c75e2 extends (0, $7d546dcaafadc158$ex
|
|
|
149
154
|
await this.page.getByRole("button", {
|
|
150
155
|
name: "Save and close"
|
|
151
156
|
}).click();
|
|
157
|
+
const toastMessage = this.page.locator(".redux-toastr .rrt-text:visible");
|
|
158
|
+
await (0, $lE6ZQ$expect)(toastMessage).toHaveText("Your change was saved.", {
|
|
159
|
+
timeout: 5000
|
|
160
|
+
});
|
|
152
161
|
}
|
|
153
162
|
/* Creates a new deployment package */ async createNewDeploymentPackage(applicationName, packageName) {
|
|
154
163
|
const appDataId = `Applications/${applicationName}`;
|
|
@@ -175,6 +184,10 @@ class $3fb4750cbb53e5e6$export$1533b625ec0c75e2 extends (0, $7d546dcaafadc158$ex
|
|
|
175
184
|
await this.page.getByRole("button", {
|
|
176
185
|
name: "Save and close"
|
|
177
186
|
}).click();
|
|
187
|
+
const toastMessage = this.page.locator(".redux-toastr .rrt-text:visible");
|
|
188
|
+
await (0, $lE6ZQ$expect)(toastMessage).toHaveText("Your change was saved.", {
|
|
189
|
+
timeout: 5000
|
|
190
|
+
});
|
|
178
191
|
}
|
|
179
192
|
/* Creates a new command application */ async createNewCmdApplication(values) {
|
|
180
193
|
const appDataId = `Applications/${values[0]}`;
|
|
@@ -206,6 +219,10 @@ class $3fb4750cbb53e5e6$export$1533b625ec0c75e2 extends (0, $7d546dcaafadc158$ex
|
|
|
206
219
|
await (0, $lE6ZQ$expect)(saveBtn).toBeEnabled();
|
|
207
220
|
await saveBtn.click();
|
|
208
221
|
await this.page.waitForTimeout(3000);
|
|
222
|
+
const toastMessage = this.page.locator(".redux-toastr .rrt-text:visible");
|
|
223
|
+
await (0, $lE6ZQ$expect)(toastMessage).toHaveText("Your change was saved.", {
|
|
224
|
+
timeout: 5000
|
|
225
|
+
});
|
|
209
226
|
// Close dialog
|
|
210
227
|
await this.page.locator("i.xl-icon.close-icon").first().click();
|
|
211
228
|
}
|
|
@@ -274,7 +291,7 @@ class $76bad9b9e6741f37$export$b8a443164510a1b4 extends (0, $7d546dcaafadc158$ex
|
|
|
274
291
|
async verifyTheDeploymentValues(values) {
|
|
275
292
|
await this.page.locator('div.deployment-task-filter-task-id input[placeholder="Search"]:visible').first().fill(values[0]);
|
|
276
293
|
await this.page.waitForSelector("td.report-table-package .deployment-report-package", {
|
|
277
|
-
timeout:
|
|
294
|
+
timeout: 5000
|
|
278
295
|
});
|
|
279
296
|
await (0, $lE6ZQ$expect)(this.page.locator("td.report-table-package .deployment-report-package")).toContainText(new RegExp(`${values[2]}\\/${values[3]}`, "i"));
|
|
280
297
|
await (0, $lE6ZQ$expect)(this.page.locator("td.report-table-originalType .deployment-report-task-type")).toHaveText(/Initial/i); // Regex ignores case
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["apps/deploy/index.ts","apps/deploy/fixtures/index.ts","apps/deploy/pages/index.ts","apps/deploy/pages/homePage.ts","apps/deploy/pages/withPage.ts","apps/deploy/pages/usersPage.ts","apps/deploy/pages/infrastructure/overthereLocalHostPage.ts","apps/deploy/pages/environmentsPage.ts","apps/deploy/pages/applications/applicationsPage.ts","apps/deploy/pages/reportsPage.ts","apps/deploy/pages/loginPage.ts"],"sourcesContent":["export { test } from './fixtures';\n","import { test as base, Page } from '@playwright/test';\nimport { Navigation } from '../pages';\nimport { LoginPage } from '../pages/loginPage';\n\ntype DeployFixtures = {\n fixtures: Fixtures;\n loginPage: LoginPage;\n navigation: Navigation;\n};\n\nexport const test = base.extend<DeployFixtures>({\n fixtures: async ({ page }, use) => {\n const fixtures = new Fixtures(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 page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n}\n","import { Page } from '@playwright/test';\nimport { HomePage } from './homePage';\nimport { UserPage } from './usersPage';\nimport { OverthereLocalHostPage } from './infrastructure/overthereLocalHostPage';\nimport { EnvironmentsPage } from './environmentsPage';\nimport { ApplicationsPage } from './applications/applicationsPage';\nimport { ReportsPage } from './reportsPage';\n\nexport class Navigation {\n private readonly page: Page;\n homePage: HomePage;\n userPage: UserPage;\n overthereLocalHostPage: OverthereLocalHostPage;\n environmentsPage: EnvironmentsPage;\n applicationsPage: ApplicationsPage;\n reportsPage: ReportsPage;\n\n constructor(page: Page) {\n this.page = page;\n this.homePage = new HomePage(page);\n this.userPage = new UserPage(page);\n this.overthereLocalHostPage = new OverthereLocalHostPage(page);\n this.environmentsPage = new EnvironmentsPage(page);\n this.applicationsPage = new ApplicationsPage(page, this);\n this.reportsPage = new ReportsPage(page);\n }\n\n async navigateToHomePage(): Promise<void> {\n await this.page.goto('/home');\n }\n\n async navigateToUserPage(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n }\n\n async clickCollapseSideView(): Promise<void> {\n const collapseButton = this.page.getByTestId('back-button');\n await collapseButton.click();\n }\n\n /* Helps to navigate to the Applications page */\n async navigateToApplicationsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Applications\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Applications\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Application' }).click();\n }\n\n /* Helps to navigate to the Environments page */\n async navigateToEnvironmentsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Environments\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Environments\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Environment' }).click();\n }\n\n /* Helps to navigate to the Overthere LocalHost page */\n async navigateToOverthereLocalHostPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Infrastructure\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Infrastructure\"]').click();\n // await this.page.waitForTimeout(5000);\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'overthere' }).click();\n await this.page.getByRole('link', { name: 'LocalHost' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class HomePage extends WithPage {\n async clickUserManagement(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n await this.page.getByRole('link', { name: 'Users' }).click();\n }\n\n async verifyDeployLogoIsPresent(): Promise<void> {\n const logo = this.page.getByAltText('Deploy');\n await expect(logo).toBeVisible();\n }\n\n async verifyDeployTextIsPresent(): Promise<void> {\n const title = this.page.getByTitle('digital.ai');\n await expect(title).toBeVisible();\n }\n\n async clickReports(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Reports' }).click();\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 { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class UserPage extends WithPage {\n /* Create a new user */\n async createNewUser(username: string, email: string, password: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByRole('button', { name: 'Add user' }).click();\n await this.page.locator('input[name=\"username\"]').fill(username);\n await this.page.locator('input[name=\"fullName\"]').fill(username);\n await this.page.locator('input[name=\"email\"]').fill(email);\n const passwordInput = this.page.locator('input[name=\"password\"]');\n await passwordInput.click({ force: true });\n await passwordInput.fill(password);\n await this.page.locator('input[name=\"confirmPassword\"]').fill(password);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n /* Verify success message */\n async verifySuccessMessage(): Promise<void> {\n const SuccessMessage = this.page.getByRole('alertdialog');\n await expect(SuccessMessage).toBeVisible();\n await expect(SuccessMessage).toHaveText(/User \".*\" created/i);\n }\n\n /* Verify user error message */\n async verifyUserErrorMessage(): Promise<void> {\n await expect(this.page.locator('.rrt-middle-container[role=\"alertdialog\"]').nth(1)).toContainText(\n /already in use/i,\n );\n }\n\n /* Delete the user and verify it is deleted */\n async deleteTheUserAndVerifyItIsDeleted(username: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('td.users-table-actions button.delete.xl-icon.table-action').click();\n await this.page.getByRole('button', { name: 'Delete', exact: true }).click();\n const DeleteMessage = this.page.getByRole('alertdialog');\n await expect(DeleteMessage).toBeVisible();\n await expect(DeleteMessage).toHaveText(/User \".*\" deleted/i);\n }\n\n /* Edit the user and verify the changes */\n async editUserAndVerify(username: string, editfullname: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('i.icon-edit.dot-i').first().click();\n await this.page.locator('input[name=\"fullName\"]').fill(editfullname);\n await this.page.getByRole('button', { name: 'Save', exact: true }).click();\n const EditMessage = this.page.getByRole('alertdialog');\n await expect(EditMessage).toBeVisible();\n await expect(EditMessage).toContainText('Your change was saved');\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class OverthereLocalHostPage extends WithPage {\n /* Helps to create a LocalHost of type UNIX/Windows/Zos */\n async createHostForGivenType(name: string, type: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(name);\n await this.page.locator('label:has-text(\"Operating system\")').locator('xpath=following::input[1]').click();\n await this.page.getByText(type, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class EnvironmentsPage extends WithPage {\n /* Helps to create a new Environment */\n async createEnvironment(environmentName: string, hostName: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(environmentName);\n await this.page.locator('i.xl-icon.arrow-down-icon.show-all').nth(0).click();\n await this.page.getByTitle(`Infrastructure/${hostName}`, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class ApplicationsPage extends WithPage {\n taskId!: string;\n executedText!: string;\n private navigation: any;\n\n constructor(page: any, navigation: any) {\n super(page);\n this.navigation = navigation;\n }\n\n /* Creates a new application */\n async createNewApplication(applicationName: string): Promise<void> {\n await this.navigation.navigateToApplicationsPage();\n await this.page.locator('input[name=\"name\"]').waitFor({ state: 'visible' });\n await this.page.locator('input[name=\"name\"]').click();\n await this.page.locator('input[name=\"name\"]').fill(applicationName);\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n\n /* Creates a new deployment package */\n async createNewDeploymentPackage(applicationName: string, packageName: string): Promise<void> {\n const appDataId = `Applications/${applicationName}`;\n\n // Expand Applications\n const root = this.page.locator('div[data-id=\"Applications\"] .infinite-tree-node > a');\n await root.click();\n\n // Hover over app node\n const appNode = this.page.locator(`span[data-id=\"${appDataId}\"]`);\n await expect(appNode).toBeVisible();\n await appNode.hover();\n\n // Open context menu + create new deployment package\n const contextMenu = this.page.locator(`i.context-menu-button[data-id=\"${appDataId}\"]`);\n await expect(contextMenu).toBeVisible();\n await contextMenu.click();\n\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Deployment Package' }).click();\n\n // Fill & save\n const nameInput = this.page.locator('input[name=\"name\"]');\n await nameInput.fill(packageName);\n\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n\n /* Creates a new command application */\n async createNewCmdApplication(values: string[]): Promise<void> {\n const appDataId = `Applications/${values[0]}`;\n const packageDataId = `Applications/${values[0]}/${values[1]}`;\n\n // Expand app node and click package\n await this.page.locator(`div[data-id=\"${appDataId}\"] .infinite-tree-node > a`).click();\n const packageNode = this.page.locator(`span[data-id=\"${packageDataId}\"]`).first();\n await expect(packageNode).toBeVisible();\n await packageNode.click();\n\n // Open context menu\n const packageMenu = this.page.locator(`i.context-menu-button[data-id=\"${packageDataId}\"]`);\n await expect(packageMenu).toBeVisible();\n await packageMenu.click();\n\n // Create Command application\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'cmd' }).click();\n await this.page.getByRole('link', { name: 'Command' }).click();\n\n await this.page.locator('input[name=\"name\"]').fill(values[2]);\n\n await this.page.locator('textarea[name=\"commandLine\"]').fill(values[3]);\n\n const saveBtn = this.page.locator('button', { hasText: /^Save$/ }).first();\n await expect(saveBtn).toBeEnabled();\n await saveBtn.click();\n await this.page.waitForTimeout(3000);\n\n // Close dialog\n await this.page.locator('i.xl-icon.close-icon').first().click();\n }\n\n /*Deploy the application*/\n async deployApp(values: string[]): Promise<void> {\n const versionNode = `Applications/${values[0]}/${values[1]}`;\n await this.page.locator(`i.context-menu-button[data-id=\"${versionNode}\"]`).click();\n await this.page.getByRole('link', { name: 'Deploy', exact: true }).click();\n await this.page.locator(`input[name=\"selections\"][value=\"Environments/${values[2]}\"]`).click();\n await this.page.getByRole('button', { name: 'Continue' }).click();\n\n await this.page.locator('.errors-wrapper').waitFor({ state: 'attached', timeout: 5000 });\n\n const errorIcon = this.page.locator('a.validation-icons-wrapper.error');\n\n if (await errorIcon.isVisible()) {\n await this.page.getByRole('button', { name: 'Deployment Properties' }).click();\n await this.page.locator('input[name=\"username\"]').fill(values[3]);\n await this.page.getByRole('button', { name: 'Save' }).click();\n } else {\n }\n\n await this.page.locator('button.deploy.xl-primary').click();\n\n //Get the task id\n this.taskId = (await this.page.locator('div.task-id').textContent()) || '';\n\n //Verify no failure and all are done\n const labels = this.page.locator('span.label');\n await expect(labels).toHaveCount(3);\n await expect(labels).toHaveText(['EXECUTED', 'DONE', 'DONE']);\n\n //Get the text executed\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n this.executedText = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify in monitoring tab searching with the task id\n await this.page.locator('div[data-id=\"TASK_MONITOR\"] .infinite-tree-node > a').click();\n await this.page.locator('span[data-id=\"DEPLOYMENT_TASKS\"]').dblclick();\n await this.page.waitForTimeout(5000);\n\n await this.page.locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]').first().fill(this.taskId);\n const stateText = await this.page.locator('td.tasks-table-state').first().innerText();\n expect(stateText.trim()).toBe('Executed');\n\n //Click the row to go to deployment screen\n await this.page.locator('table.table.table-striped tbody tr').first().dblclick();\n\n await this.page.locator('button.finish.xl-primary').click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class ReportsPage extends WithPage {\n /* Clicks on the Deployment Tasks section */\n async clickDeploymentTasks(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Deployments' }).click();\n }\n\n async verifyTheDeploymentValues(values: string[]): Promise<void> {\n await this.page\n .locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]:visible')\n .first()\n .fill(values[0]);\n await this.page.waitForSelector('td.report-table-package .deployment-report-package', { timeout: 30000 });\n await expect(this.page.locator('td.report-table-package .deployment-report-package')).toContainText(\n new RegExp(`${values[2]}\\\\/${values[3]}`, 'i'),\n );\n await expect(this.page.locator('td.report-table-originalType .deployment-report-task-type')).toHaveText(/Initial/i); // Regex ignores case\n await expect(this.page.locator('td.report-table-user .deployment-report-user')).toHaveText('admin');\n\n //Click the row\n await this.page.locator('td.report-table-package .deployment-report-package').dblclick();\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n\n //Get the log text\n const text = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify both the log text are same\n expect(text).toContain(values[1]);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class LoginPage extends WithPage {\n /* Login with username and password*/\n async login(userName: string, password: string): Promise<void> {\n await this.page.goto('/#/login');\n await expect(this.page).toHaveTitle('Digital.ai Deploy');\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 }\n\n /* Verify invalid password message */\n async verifyInvalidPasswordMessage(): Promise<void> {\n const errorMessage = this.page.getByText('The username and/or password you have entered is incorrect.');\n await expect(errorMessage).toBeVisible();\n }\n\n /* Logout as authenticated user */\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 await expect(this.page.getByText('Log in').first()).toBeVisible();\n }\n}\n"],"names":[],"version":3,"file":"module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["apps/deploy/index.ts","apps/deploy/fixtures/index.ts","apps/deploy/pages/index.ts","apps/deploy/pages/homePage.ts","apps/deploy/pages/withPage.ts","apps/deploy/pages/usersPage.ts","apps/deploy/pages/infrastructure/overthereLocalHostPage.ts","apps/deploy/pages/environmentsPage.ts","apps/deploy/pages/applications/applicationsPage.ts","apps/deploy/pages/reportsPage.ts","apps/deploy/pages/loginPage.ts"],"sourcesContent":["export { test } from './fixtures';\n","import { test as base, Page } from '@playwright/test';\nimport { Navigation } from '../pages';\nimport { LoginPage } from '../pages/loginPage';\n\ntype DeployFixtures = {\n fixtures: Fixtures;\n loginPage: LoginPage;\n navigation: Navigation;\n};\n\nexport const test = base.extend<DeployFixtures>({\n fixtures: async ({ page }, use) => {\n const fixtures = new Fixtures(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 page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n}\n","import { Page } from '@playwright/test';\nimport { HomePage } from './homePage';\nimport { UserPage } from './usersPage';\nimport { OverthereLocalHostPage } from './infrastructure/overthereLocalHostPage';\nimport { EnvironmentsPage } from './environmentsPage';\nimport { ApplicationsPage } from './applications/applicationsPage';\nimport { ReportsPage } from './reportsPage';\n\nexport class Navigation {\n private readonly page: Page;\n homePage: HomePage;\n userPage: UserPage;\n overthereLocalHostPage: OverthereLocalHostPage;\n environmentsPage: EnvironmentsPage;\n applicationsPage: ApplicationsPage;\n reportsPage: ReportsPage;\n\n constructor(page: Page) {\n this.page = page;\n this.homePage = new HomePage(page);\n this.userPage = new UserPage(page);\n this.overthereLocalHostPage = new OverthereLocalHostPage(page);\n this.environmentsPage = new EnvironmentsPage(page);\n this.applicationsPage = new ApplicationsPage(page, this);\n this.reportsPage = new ReportsPage(page);\n }\n\n async navigateToHomePage(): Promise<void> {\n await this.page.goto('/home');\n }\n\n async navigateToUserPage(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n }\n\n async clickCollapseSideView(): Promise<void> {\n const collapseButton = this.page.getByTestId('back-button');\n await collapseButton.click();\n }\n\n /* Helps to navigate to the Applications page */\n async navigateToApplicationsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Applications\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Applications\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Application' }).click();\n }\n\n /* Helps to navigate to the Environments page */\n async navigateToEnvironmentsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Environments\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Environments\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Environment' }).click();\n }\n\n /* Helps to navigate to the Overthere LocalHost page */\n async navigateToOverthereLocalHostPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Infrastructure\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Infrastructure\"]').click();\n // await this.page.waitForTimeout(5000);\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'overthere' }).click();\n await this.page.getByRole('link', { name: 'LocalHost' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class HomePage extends WithPage {\n async clickUserManagement(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n await this.page.getByRole('link', { name: 'Users' }).click();\n }\n\n async verifyDeployLogoIsPresent(): Promise<void> {\n const logo = this.page.getByAltText('Deploy');\n await expect(logo).toBeVisible();\n }\n\n async verifyDeployTextIsPresent(): Promise<void> {\n const title = this.page.getByTitle('digital.ai');\n await expect(title).toBeVisible();\n }\n\n async clickReports(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Reports' }).click();\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 { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class UserPage extends WithPage {\n /* Create a new user */\n async createNewUser(username: string, email: string, password: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByRole('button', { name: 'Add user' }).click();\n await this.page.locator('input[name=\"username\"]').fill(username);\n await this.page.locator('input[name=\"fullName\"]').fill(username);\n await this.page.locator('input[name=\"email\"]').fill(email);\n const passwordInput = this.page.locator('input[name=\"password\"]');\n await passwordInput.click({ force: true });\n await passwordInput.fill(password);\n await this.page.locator('input[name=\"confirmPassword\"]').fill(password);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n /* Verify success message */\n async verifySuccessMessage(): Promise<void> {\n const SuccessMessage = this.page.getByRole('alertdialog');\n await expect(SuccessMessage).toBeVisible();\n await expect(SuccessMessage).toHaveText(/User \".*\" created/i);\n }\n\n /* Verify user error message */\n async verifyUserErrorMessage(): Promise<void> {\n await expect(this.page.locator('.rrt-middle-container[role=\"alertdialog\"]').nth(1)).toContainText(\n /already in use/i,\n );\n }\n\n /* Delete the user and verify it is deleted */\n async deleteTheUserAndVerifyItIsDeleted(username: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('td.users-table-actions button.delete.xl-icon.table-action').click();\n await this.page.getByRole('button', { name: 'Delete', exact: true }).click();\n const DeleteMessage = this.page.getByRole('alertdialog');\n await expect(DeleteMessage).toBeVisible();\n await expect(DeleteMessage).toHaveText(/User \".*\" deleted/i);\n }\n\n /* Edit the user and verify the changes */\n async editUserAndVerify(username: string, editfullname: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('i.icon-edit.dot-i').first().click();\n await this.page.locator('input[name=\"fullName\"]').fill(editfullname);\n await this.page.getByRole('button', { name: 'Save', exact: true }).click();\n const EditMessage = this.page.getByRole('alertdialog');\n await expect(EditMessage).toBeVisible();\n await expect(EditMessage).toContainText('Your change was saved');\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class OverthereLocalHostPage extends WithPage {\n /* Helps to create a LocalHost of type UNIX/Windows/Zos */\n async createHostForGivenType(name: string, type: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(name);\n await this.page.locator('label:has-text(\"Operating system\")').locator('xpath=following::input[1]').click();\n await this.page.getByText(type, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { WithPage } from './withPage';\nimport { expect } from '@playwright/test';\n\nexport class EnvironmentsPage extends WithPage {\n /* Helps to create a new Environment */\n async createEnvironment(environmentName: string, hostName: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(environmentName);\n await this.page.locator('i.xl-icon.arrow-down-icon.show-all').nth(0).click();\n await this.page.getByTitle(`Infrastructure/${hostName}`, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { expect, Page } from '@playwright/test';\nimport { WithPage } from '../withPage';\nimport { Navigation } from '../index';\n\nexport class ApplicationsPage extends WithPage {\n taskId!: string;\n executedText!: string;\n private navigation: Navigation;\n\n constructor(page: Page, navigation: Navigation) {\n super(page);\n this.navigation = navigation;\n }\n\n /* Creates a new application */\n async createNewApplication(applicationName: string): Promise<void> {\n await this.navigation.navigateToApplicationsPage();\n await this.page.locator('input[name=\"name\"]').waitFor({ state: 'visible' });\n await this.page.locator('input[name=\"name\"]').click();\n await this.page.locator('input[name=\"name\"]').fill(applicationName);\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n\n /* Creates a new deployment package */\n async createNewDeploymentPackage(applicationName: string, packageName: string): Promise<void> {\n const appDataId = `Applications/${applicationName}`;\n\n // Expand Applications\n const root = this.page.locator('div[data-id=\"Applications\"] .infinite-tree-node > a');\n await root.click();\n\n // Hover over app node\n const appNode = this.page.locator(`span[data-id=\"${appDataId}\"]`);\n await expect(appNode).toBeVisible();\n await appNode.hover();\n\n // Open context menu + create new deployment package\n const contextMenu = this.page.locator(`i.context-menu-button[data-id=\"${appDataId}\"]`);\n await expect(contextMenu).toBeVisible();\n await contextMenu.click();\n\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Deployment Package' }).click();\n\n // Fill & save\n const nameInput = this.page.locator('input[name=\"name\"]');\n await nameInput.fill(packageName);\n\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n\n /* Creates a new command application */\n async createNewCmdApplication(values: string[]): Promise<void> {\n const appDataId = `Applications/${values[0]}`;\n const packageDataId = `Applications/${values[0]}/${values[1]}`;\n\n // Expand app node and click package\n await this.page.locator(`div[data-id=\"${appDataId}\"] .infinite-tree-node > a`).click();\n const packageNode = this.page.locator(`span[data-id=\"${packageDataId}\"]`).first();\n await expect(packageNode).toBeVisible();\n await packageNode.click();\n\n // Open context menu\n const packageMenu = this.page.locator(`i.context-menu-button[data-id=\"${packageDataId}\"]`);\n await expect(packageMenu).toBeVisible();\n await packageMenu.click();\n\n // Create Command application\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'cmd' }).click();\n await this.page.getByRole('link', { name: 'Command' }).click();\n\n await this.page.locator('input[name=\"name\"]').fill(values[2]);\n\n await this.page.locator('textarea[name=\"commandLine\"]').fill(values[3]);\n\n const saveBtn = this.page.locator('button', { hasText: /^Save$/ }).first();\n await expect(saveBtn).toBeEnabled();\n await saveBtn.click();\n await this.page.waitForTimeout(3000);\n\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n\n // Close dialog\n await this.page.locator('i.xl-icon.close-icon').first().click();\n }\n\n /*Deploy the application*/\n async deployApp(values: string[]): Promise<void> {\n const versionNode = `Applications/${values[0]}/${values[1]}`;\n await this.page.locator(`i.context-menu-button[data-id=\"${versionNode}\"]`).click();\n await this.page.getByRole('link', { name: 'Deploy', exact: true }).click();\n await this.page.locator(`input[name=\"selections\"][value=\"Environments/${values[2]}\"]`).click();\n await this.page.getByRole('button', { name: 'Continue' }).click();\n\n await this.page.locator('.errors-wrapper').waitFor({ state: 'attached', timeout: 5000 });\n\n const errorIcon = this.page.locator('a.validation-icons-wrapper.error');\n\n if (await errorIcon.isVisible()) {\n await this.page.getByRole('button', { name: 'Deployment Properties' }).click();\n await this.page.locator('input[name=\"username\"]').fill(values[3]);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n await this.page.locator('button.deploy.xl-primary').click();\n\n //Get the task id\n this.taskId = (await this.page.locator('div.task-id').textContent()) || '';\n\n //Verify no failure and all are done\n const labels = this.page.locator('span.label');\n await expect(labels).toHaveCount(3);\n await expect(labels).toHaveText(['EXECUTED', 'DONE', 'DONE']);\n\n //Get the text executed\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n this.executedText = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify in monitoring tab searching with the task id\n await this.page.locator('div[data-id=\"TASK_MONITOR\"] .infinite-tree-node > a').click();\n await this.page.locator('span[data-id=\"DEPLOYMENT_TASKS\"]').dblclick();\n await this.page.waitForTimeout(5000);\n\n await this.page.locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]').first().fill(this.taskId);\n const stateText = await this.page.locator('td.tasks-table-state').first().innerText();\n expect(stateText.trim()).toBe('Executed');\n\n //Click the row to go to deployment screen\n await this.page.locator('table.table.table-striped tbody tr').first().dblclick();\n\n await this.page.locator('button.finish.xl-primary').click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class ReportsPage extends WithPage {\n /* Clicks on the Deployment Tasks section */\n async clickDeploymentTasks(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Deployments' }).click();\n }\n\n async verifyTheDeploymentValues(values: string[]): Promise<void> {\n await this.page\n .locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]:visible')\n .first()\n .fill(values[0]);\n await this.page.waitForSelector('td.report-table-package .deployment-report-package', { timeout: 5000 });\n await expect(this.page.locator('td.report-table-package .deployment-report-package')).toContainText(\n new RegExp(`${values[2]}\\\\/${values[3]}`, 'i'),\n );\n await expect(this.page.locator('td.report-table-originalType .deployment-report-task-type')).toHaveText(/Initial/i); // Regex ignores case\n await expect(this.page.locator('td.report-table-user .deployment-report-user')).toHaveText('admin');\n\n //Click the row\n await this.page.locator('td.report-table-package .deployment-report-package').dblclick();\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n\n //Get the log text\n const text = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify both the log text are same\n expect(text).toContain(values[1]);\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class LoginPage extends WithPage {\n /* Login with username and password*/\n async login(userName: string, password: string): Promise<void> {\n await this.page.goto('/#/login');\n await expect(this.page).toHaveTitle('Digital.ai Deploy');\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 }\n\n /* Verify invalid password message */\n async verifyInvalidPasswordMessage(): Promise<void> {\n const errorMessage = this.page.getByText('The username and/or password you have entered is incorrect.');\n await expect(errorMessage).toBeVisible();\n }\n\n /* Logout as authenticated user */\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 await expect(this.page.getByText('Log in').first()).toBeVisible();\n }\n}\n"],"names":[],"version":3,"file":"module.js.map"}
|
package/dist/types.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ declare class EnvironmentsPage extends WithPage {
|
|
|
25
25
|
declare class ApplicationsPage extends WithPage {
|
|
26
26
|
taskId: string;
|
|
27
27
|
executedText: string;
|
|
28
|
-
constructor(page:
|
|
28
|
+
constructor(page: Page, navigation: Navigation);
|
|
29
29
|
createNewApplication(applicationName: string): Promise<void>;
|
|
30
30
|
createNewDeploymentPackage(applicationName: string, packageName: string): Promise<void>;
|
|
31
31
|
createNewCmdApplication(values: string[]): Promise<void>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["apps/deploy/pages/withPage.ts","apps/deploy/pages/homePage.ts","apps/deploy/pages/usersPage.ts","apps/deploy/pages/infrastructure/overthereLocalHostPage.ts","apps/deploy/pages/environmentsPage.ts","apps/deploy/pages/applications/applicationsPage.ts","apps/deploy/pages/reportsPage.ts","apps/deploy/pages/index.ts","apps/deploy/pages/loginPage.ts","apps/deploy/fixtures/index.ts","apps/deploy/index.ts"],"sourcesContent":["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 { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class HomePage extends WithPage {\n async clickUserManagement(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n await this.page.getByRole('link', { name: 'Users' }).click();\n }\n\n async verifyDeployLogoIsPresent(): Promise<void> {\n const logo = this.page.getByAltText('Deploy');\n await expect(logo).toBeVisible();\n }\n\n async verifyDeployTextIsPresent(): Promise<void> {\n const title = this.page.getByTitle('digital.ai');\n await expect(title).toBeVisible();\n }\n\n async clickReports(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Reports' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class UserPage extends WithPage {\n /* Create a new user */\n async createNewUser(username: string, email: string, password: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByRole('button', { name: 'Add user' }).click();\n await this.page.locator('input[name=\"username\"]').fill(username);\n await this.page.locator('input[name=\"fullName\"]').fill(username);\n await this.page.locator('input[name=\"email\"]').fill(email);\n const passwordInput = this.page.locator('input[name=\"password\"]');\n await passwordInput.click({ force: true });\n await passwordInput.fill(password);\n await this.page.locator('input[name=\"confirmPassword\"]').fill(password);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n /* Verify success message */\n async verifySuccessMessage(): Promise<void> {\n const SuccessMessage = this.page.getByRole('alertdialog');\n await expect(SuccessMessage).toBeVisible();\n await expect(SuccessMessage).toHaveText(/User \".*\" created/i);\n }\n\n /* Verify user error message */\n async verifyUserErrorMessage(): Promise<void> {\n await expect(this.page.locator('.rrt-middle-container[role=\"alertdialog\"]').nth(1)).toContainText(\n /already in use/i,\n );\n }\n\n /* Delete the user and verify it is deleted */\n async deleteTheUserAndVerifyItIsDeleted(username: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('td.users-table-actions button.delete.xl-icon.table-action').click();\n await this.page.getByRole('button', { name: 'Delete', exact: true }).click();\n const DeleteMessage = this.page.getByRole('alertdialog');\n await expect(DeleteMessage).toBeVisible();\n await expect(DeleteMessage).toHaveText(/User \".*\" deleted/i);\n }\n\n /* Edit the user and verify the changes */\n async editUserAndVerify(username: string, editfullname: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('i.icon-edit.dot-i').first().click();\n await this.page.locator('input[name=\"fullName\"]').fill(editfullname);\n await this.page.getByRole('button', { name: 'Save', exact: true }).click();\n const EditMessage = this.page.getByRole('alertdialog');\n await expect(EditMessage).toBeVisible();\n await expect(EditMessage).toContainText('Your change was saved');\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class OverthereLocalHostPage extends WithPage {\n /* Helps to create a LocalHost of type UNIX/Windows/Zos */\n async createHostForGivenType(name: string, type: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(name);\n await this.page.locator('label:has-text(\"Operating system\")').locator('xpath=following::input[1]').click();\n await this.page.getByText(type, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class EnvironmentsPage extends WithPage {\n /* Helps to create a new Environment */\n async createEnvironment(environmentName: string, hostName: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(environmentName);\n await this.page.locator('i.xl-icon.arrow-down-icon.show-all').nth(0).click();\n await this.page.getByTitle(`Infrastructure/${hostName}`, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class ApplicationsPage extends WithPage {\n taskId!: string;\n executedText!: string;\n private navigation: any;\n\n constructor(page: any, navigation: any) {\n super(page);\n this.navigation = navigation;\n }\n\n /* Creates a new application */\n async createNewApplication(applicationName: string): Promise<void> {\n await this.navigation.navigateToApplicationsPage();\n await this.page.locator('input[name=\"name\"]').waitFor({ state: 'visible' });\n await this.page.locator('input[name=\"name\"]').click();\n await this.page.locator('input[name=\"name\"]').fill(applicationName);\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n\n /* Creates a new deployment package */\n async createNewDeploymentPackage(applicationName: string, packageName: string): Promise<void> {\n const appDataId = `Applications/${applicationName}`;\n\n // Expand Applications\n const root = this.page.locator('div[data-id=\"Applications\"] .infinite-tree-node > a');\n await root.click();\n\n // Hover over app node\n const appNode = this.page.locator(`span[data-id=\"${appDataId}\"]`);\n await expect(appNode).toBeVisible();\n await appNode.hover();\n\n // Open context menu + create new deployment package\n const contextMenu = this.page.locator(`i.context-menu-button[data-id=\"${appDataId}\"]`);\n await expect(contextMenu).toBeVisible();\n await contextMenu.click();\n\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Deployment Package' }).click();\n\n // Fill & save\n const nameInput = this.page.locator('input[name=\"name\"]');\n await nameInput.fill(packageName);\n\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n }\n\n /* Creates a new command application */\n async createNewCmdApplication(values: string[]): Promise<void> {\n const appDataId = `Applications/${values[0]}`;\n const packageDataId = `Applications/${values[0]}/${values[1]}`;\n\n // Expand app node and click package\n await this.page.locator(`div[data-id=\"${appDataId}\"] .infinite-tree-node > a`).click();\n const packageNode = this.page.locator(`span[data-id=\"${packageDataId}\"]`).first();\n await expect(packageNode).toBeVisible();\n await packageNode.click();\n\n // Open context menu\n const packageMenu = this.page.locator(`i.context-menu-button[data-id=\"${packageDataId}\"]`);\n await expect(packageMenu).toBeVisible();\n await packageMenu.click();\n\n // Create Command application\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'cmd' }).click();\n await this.page.getByRole('link', { name: 'Command' }).click();\n\n await this.page.locator('input[name=\"name\"]').fill(values[2]);\n\n await this.page.locator('textarea[name=\"commandLine\"]').fill(values[3]);\n\n const saveBtn = this.page.locator('button', { hasText: /^Save$/ }).first();\n await expect(saveBtn).toBeEnabled();\n await saveBtn.click();\n await this.page.waitForTimeout(3000);\n\n // Close dialog\n await this.page.locator('i.xl-icon.close-icon').first().click();\n }\n\n /*Deploy the application*/\n async deployApp(values: string[]): Promise<void> {\n const versionNode = `Applications/${values[0]}/${values[1]}`;\n await this.page.locator(`i.context-menu-button[data-id=\"${versionNode}\"]`).click();\n await this.page.getByRole('link', { name: 'Deploy', exact: true }).click();\n await this.page.locator(`input[name=\"selections\"][value=\"Environments/${values[2]}\"]`).click();\n await this.page.getByRole('button', { name: 'Continue' }).click();\n\n await this.page.locator('.errors-wrapper').waitFor({ state: 'attached', timeout: 5000 });\n\n const errorIcon = this.page.locator('a.validation-icons-wrapper.error');\n\n if (await errorIcon.isVisible()) {\n await this.page.getByRole('button', { name: 'Deployment Properties' }).click();\n await this.page.locator('input[name=\"username\"]').fill(values[3]);\n await this.page.getByRole('button', { name: 'Save' }).click();\n } else {\n }\n\n await this.page.locator('button.deploy.xl-primary').click();\n\n //Get the task id\n this.taskId = (await this.page.locator('div.task-id').textContent()) || '';\n\n //Verify no failure and all are done\n const labels = this.page.locator('span.label');\n await expect(labels).toHaveCount(3);\n await expect(labels).toHaveText(['EXECUTED', 'DONE', 'DONE']);\n\n //Get the text executed\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n this.executedText = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify in monitoring tab searching with the task id\n await this.page.locator('div[data-id=\"TASK_MONITOR\"] .infinite-tree-node > a').click();\n await this.page.locator('span[data-id=\"DEPLOYMENT_TASKS\"]').dblclick();\n await this.page.waitForTimeout(5000);\n\n await this.page.locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]').first().fill(this.taskId);\n const stateText = await this.page.locator('td.tasks-table-state').first().innerText();\n expect(stateText.trim()).toBe('Executed');\n\n //Click the row to go to deployment screen\n await this.page.locator('table.table.table-striped tbody tr').first().dblclick();\n\n await this.page.locator('button.finish.xl-primary').click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class ReportsPage extends WithPage {\n /* Clicks on the Deployment Tasks section */\n async clickDeploymentTasks(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Deployments' }).click();\n }\n\n async verifyTheDeploymentValues(values: string[]): Promise<void> {\n await this.page\n .locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]:visible')\n .first()\n .fill(values[0]);\n await this.page.waitForSelector('td.report-table-package .deployment-report-package', { timeout: 30000 });\n await expect(this.page.locator('td.report-table-package .deployment-report-package')).toContainText(\n new RegExp(`${values[2]}\\\\/${values[3]}`, 'i'),\n );\n await expect(this.page.locator('td.report-table-originalType .deployment-report-task-type')).toHaveText(/Initial/i); // Regex ignores case\n await expect(this.page.locator('td.report-table-user .deployment-report-user')).toHaveText('admin');\n\n //Click the row\n await this.page.locator('td.report-table-package .deployment-report-package').dblclick();\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n\n //Get the log text\n const text = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify both the log text are same\n expect(text).toContain(values[1]);\n }\n}\n","import { Page } from '@playwright/test';\nimport { HomePage } from './homePage';\nimport { UserPage } from './usersPage';\nimport { OverthereLocalHostPage } from './infrastructure/overthereLocalHostPage';\nimport { EnvironmentsPage } from './environmentsPage';\nimport { ApplicationsPage } from './applications/applicationsPage';\nimport { ReportsPage } from './reportsPage';\n\nexport class Navigation {\n private readonly page: Page;\n homePage: HomePage;\n userPage: UserPage;\n overthereLocalHostPage: OverthereLocalHostPage;\n environmentsPage: EnvironmentsPage;\n applicationsPage: ApplicationsPage;\n reportsPage: ReportsPage;\n\n constructor(page: Page) {\n this.page = page;\n this.homePage = new HomePage(page);\n this.userPage = new UserPage(page);\n this.overthereLocalHostPage = new OverthereLocalHostPage(page);\n this.environmentsPage = new EnvironmentsPage(page);\n this.applicationsPage = new ApplicationsPage(page, this);\n this.reportsPage = new ReportsPage(page);\n }\n\n async navigateToHomePage(): Promise<void> {\n await this.page.goto('/home');\n }\n\n async navigateToUserPage(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n }\n\n async clickCollapseSideView(): Promise<void> {\n const collapseButton = this.page.getByTestId('back-button');\n await collapseButton.click();\n }\n\n /* Helps to navigate to the Applications page */\n async navigateToApplicationsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Applications\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Applications\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Application' }).click();\n }\n\n /* Helps to navigate to the Environments page */\n async navigateToEnvironmentsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Environments\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Environments\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Environment' }).click();\n }\n\n /* Helps to navigate to the Overthere LocalHost page */\n async navigateToOverthereLocalHostPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Infrastructure\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Infrastructure\"]').click();\n // await this.page.waitForTimeout(5000);\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'overthere' }).click();\n await this.page.getByRole('link', { name: 'LocalHost' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class LoginPage extends WithPage {\n /* Login with username and password*/\n async login(userName: string, password: string): Promise<void> {\n await this.page.goto('/#/login');\n await expect(this.page).toHaveTitle('Digital.ai Deploy');\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 }\n\n /* Verify invalid password message */\n async verifyInvalidPasswordMessage(): Promise<void> {\n const errorMessage = this.page.getByText('The username and/or password you have entered is incorrect.');\n await expect(errorMessage).toBeVisible();\n }\n\n /* Logout as authenticated user */\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 await expect(this.page.getByText('Log in').first()).toBeVisible();\n }\n}\n","import { test as base, Page } from '@playwright/test';\nimport { Navigation } from '../pages';\nimport { LoginPage } from '../pages/loginPage';\n\ntype DeployFixtures = {\n fixtures: Fixtures;\n loginPage: LoginPage;\n navigation: Navigation;\n};\n\nexport const test = base.extend<DeployFixtures>({\n fixtures: async ({ page }, use) => {\n const fixtures = new Fixtures(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 page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n}\n","export { test } from './fixtures';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
|
1
|
+
{"mappings":"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","sources":["apps/deploy/pages/withPage.ts","apps/deploy/pages/homePage.ts","apps/deploy/pages/usersPage.ts","apps/deploy/pages/infrastructure/overthereLocalHostPage.ts","apps/deploy/pages/environmentsPage.ts","apps/deploy/pages/applications/applicationsPage.ts","apps/deploy/pages/reportsPage.ts","apps/deploy/pages/index.ts","apps/deploy/pages/loginPage.ts","apps/deploy/fixtures/index.ts","apps/deploy/index.ts"],"sourcesContent":["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 { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class HomePage extends WithPage {\n async clickUserManagement(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n await this.page.getByRole('link', { name: 'Users' }).click();\n }\n\n async verifyDeployLogoIsPresent(): Promise<void> {\n const logo = this.page.getByAltText('Deploy');\n await expect(logo).toBeVisible();\n }\n\n async verifyDeployTextIsPresent(): Promise<void> {\n const title = this.page.getByTitle('digital.ai');\n await expect(title).toBeVisible();\n }\n\n async clickReports(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Reports' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class UserPage extends WithPage {\n /* Create a new user */\n async createNewUser(username: string, email: string, password: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByRole('button', { name: 'Add user' }).click();\n await this.page.locator('input[name=\"username\"]').fill(username);\n await this.page.locator('input[name=\"fullName\"]').fill(username);\n await this.page.locator('input[name=\"email\"]').fill(email);\n const passwordInput = this.page.locator('input[name=\"password\"]');\n await passwordInput.click({ force: true });\n await passwordInput.fill(password);\n await this.page.locator('input[name=\"confirmPassword\"]').fill(password);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n /* Verify success message */\n async verifySuccessMessage(): Promise<void> {\n const SuccessMessage = this.page.getByRole('alertdialog');\n await expect(SuccessMessage).toBeVisible();\n await expect(SuccessMessage).toHaveText(/User \".*\" created/i);\n }\n\n /* Verify user error message */\n async verifyUserErrorMessage(): Promise<void> {\n await expect(this.page.locator('.rrt-middle-container[role=\"alertdialog\"]').nth(1)).toContainText(\n /already in use/i,\n );\n }\n\n /* Delete the user and verify it is deleted */\n async deleteTheUserAndVerifyItIsDeleted(username: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('td.users-table-actions button.delete.xl-icon.table-action').click();\n await this.page.getByRole('button', { name: 'Delete', exact: true }).click();\n const DeleteMessage = this.page.getByRole('alertdialog');\n await expect(DeleteMessage).toBeVisible();\n await expect(DeleteMessage).toHaveText(/User \".*\" deleted/i);\n }\n\n /* Edit the user and verify the changes */\n async editUserAndVerify(username: string, editfullname: string): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Users' }).click();\n await this.page.getByPlaceholder('Filter...').fill(username);\n await this.page.locator('i.icon-edit.dot-i').first().click();\n await this.page.locator('input[name=\"fullName\"]').fill(editfullname);\n await this.page.getByRole('button', { name: 'Save', exact: true }).click();\n const EditMessage = this.page.getByRole('alertdialog');\n await expect(EditMessage).toBeVisible();\n await expect(EditMessage).toContainText('Your change was saved');\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from '../withPage';\n\nexport class OverthereLocalHostPage extends WithPage {\n /* Helps to create a LocalHost of type UNIX/Windows/Zos */\n async createHostForGivenType(name: string, type: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(name);\n await this.page.locator('label:has-text(\"Operating system\")').locator('xpath=following::input[1]').click();\n await this.page.getByText(type, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { WithPage } from './withPage';\nimport { expect } from '@playwright/test';\n\nexport class EnvironmentsPage extends WithPage {\n /* Helps to create a new Environment */\n async createEnvironment(environmentName: string, hostName: string): Promise<void> {\n await this.page.locator('input[name=\"name\"]').fill(environmentName);\n await this.page.locator('i.xl-icon.arrow-down-icon.show-all').nth(0).click();\n await this.page.getByTitle(`Infrastructure/${hostName}`, { exact: true }).click();\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n}\n","import { expect, Page } from '@playwright/test';\nimport { WithPage } from '../withPage';\nimport { Navigation } from '../index';\n\nexport class ApplicationsPage extends WithPage {\n taskId!: string;\n executedText!: string;\n private navigation: Navigation;\n\n constructor(page: Page, navigation: Navigation) {\n super(page);\n this.navigation = navigation;\n }\n\n /* Creates a new application */\n async createNewApplication(applicationName: string): Promise<void> {\n await this.navigation.navigateToApplicationsPage();\n await this.page.locator('input[name=\"name\"]').waitFor({ state: 'visible' });\n await this.page.locator('input[name=\"name\"]').click();\n await this.page.locator('input[name=\"name\"]').fill(applicationName);\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n\n /* Creates a new deployment package */\n async createNewDeploymentPackage(applicationName: string, packageName: string): Promise<void> {\n const appDataId = `Applications/${applicationName}`;\n\n // Expand Applications\n const root = this.page.locator('div[data-id=\"Applications\"] .infinite-tree-node > a');\n await root.click();\n\n // Hover over app node\n const appNode = this.page.locator(`span[data-id=\"${appDataId}\"]`);\n await expect(appNode).toBeVisible();\n await appNode.hover();\n\n // Open context menu + create new deployment package\n const contextMenu = this.page.locator(`i.context-menu-button[data-id=\"${appDataId}\"]`);\n await expect(contextMenu).toBeVisible();\n await contextMenu.click();\n\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Deployment Package' }).click();\n\n // Fill & save\n const nameInput = this.page.locator('input[name=\"name\"]');\n await nameInput.fill(packageName);\n\n await this.page.getByRole('button', { name: 'Save and close' }).click();\n\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n }\n\n /* Creates a new command application */\n async createNewCmdApplication(values: string[]): Promise<void> {\n const appDataId = `Applications/${values[0]}`;\n const packageDataId = `Applications/${values[0]}/${values[1]}`;\n\n // Expand app node and click package\n await this.page.locator(`div[data-id=\"${appDataId}\"] .infinite-tree-node > a`).click();\n const packageNode = this.page.locator(`span[data-id=\"${packageDataId}\"]`).first();\n await expect(packageNode).toBeVisible();\n await packageNode.click();\n\n // Open context menu\n const packageMenu = this.page.locator(`i.context-menu-button[data-id=\"${packageDataId}\"]`);\n await expect(packageMenu).toBeVisible();\n await packageMenu.click();\n\n // Create Command application\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'cmd' }).click();\n await this.page.getByRole('link', { name: 'Command' }).click();\n\n await this.page.locator('input[name=\"name\"]').fill(values[2]);\n\n await this.page.locator('textarea[name=\"commandLine\"]').fill(values[3]);\n\n const saveBtn = this.page.locator('button', { hasText: /^Save$/ }).first();\n await expect(saveBtn).toBeEnabled();\n await saveBtn.click();\n await this.page.waitForTimeout(3000);\n\n const toastMessage = this.page.locator('.redux-toastr .rrt-text:visible');\n await expect(toastMessage).toHaveText('Your change was saved.', { timeout: 5000 });\n\n // Close dialog\n await this.page.locator('i.xl-icon.close-icon').first().click();\n }\n\n /*Deploy the application*/\n async deployApp(values: string[]): Promise<void> {\n const versionNode = `Applications/${values[0]}/${values[1]}`;\n await this.page.locator(`i.context-menu-button[data-id=\"${versionNode}\"]`).click();\n await this.page.getByRole('link', { name: 'Deploy', exact: true }).click();\n await this.page.locator(`input[name=\"selections\"][value=\"Environments/${values[2]}\"]`).click();\n await this.page.getByRole('button', { name: 'Continue' }).click();\n\n await this.page.locator('.errors-wrapper').waitFor({ state: 'attached', timeout: 5000 });\n\n const errorIcon = this.page.locator('a.validation-icons-wrapper.error');\n\n if (await errorIcon.isVisible()) {\n await this.page.getByRole('button', { name: 'Deployment Properties' }).click();\n await this.page.locator('input[name=\"username\"]').fill(values[3]);\n await this.page.getByRole('button', { name: 'Save' }).click();\n }\n\n await this.page.locator('button.deploy.xl-primary').click();\n\n //Get the task id\n this.taskId = (await this.page.locator('div.task-id').textContent()) || '';\n\n //Verify no failure and all are done\n const labels = this.page.locator('span.label');\n await expect(labels).toHaveCount(3);\n await expect(labels).toHaveText(['EXECUTED', 'DONE', 'DONE']);\n\n //Get the text executed\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n this.executedText = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify in monitoring tab searching with the task id\n await this.page.locator('div[data-id=\"TASK_MONITOR\"] .infinite-tree-node > a').click();\n await this.page.locator('span[data-id=\"DEPLOYMENT_TASKS\"]').dblclick();\n await this.page.waitForTimeout(5000);\n\n await this.page.locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]').first().fill(this.taskId);\n const stateText = await this.page.locator('td.tasks-table-state').first().innerText();\n expect(stateText.trim()).toBe('Executed');\n\n //Click the row to go to deployment screen\n await this.page.locator('table.table.table-striped tbody tr').first().dblclick();\n\n await this.page.locator('button.finish.xl-primary').click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class ReportsPage extends WithPage {\n /* Clicks on the Deployment Tasks section */\n async clickDeploymentTasks(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'Deployments' }).click();\n }\n\n async verifyTheDeploymentValues(values: string[]): Promise<void> {\n await this.page\n .locator('div.deployment-task-filter-task-id input[placeholder=\"Search\"]:visible')\n .first()\n .fill(values[0]);\n await this.page.waitForSelector('td.report-table-package .deployment-report-package', { timeout: 5000 });\n await expect(this.page.locator('td.report-table-package .deployment-report-package')).toContainText(\n new RegExp(`${values[2]}\\\\/${values[3]}`, 'i'),\n );\n await expect(this.page.locator('td.report-table-originalType .deployment-report-task-type')).toHaveText(/Initial/i); // Regex ignores case\n await expect(this.page.locator('td.report-table-user .deployment-report-user')).toHaveText('admin');\n\n //Click the row\n await this.page.locator('td.report-table-package .deployment-report-package').dblclick();\n await this.page.locator('div[data-id=\"0_1_1\"] .infinite-tree-node > a').click();\n await this.page.getByTitle('Execute Test Command').click();\n\n //Get the log text\n const text = await this.page.locator('div.step-log-body pre').nth(1).innerText();\n\n //Verify both the log text are same\n expect(text).toContain(values[1]);\n }\n}\n","import { Page } from '@playwright/test';\nimport { HomePage } from './homePage';\nimport { UserPage } from './usersPage';\nimport { OverthereLocalHostPage } from './infrastructure/overthereLocalHostPage';\nimport { EnvironmentsPage } from './environmentsPage';\nimport { ApplicationsPage } from './applications/applicationsPage';\nimport { ReportsPage } from './reportsPage';\n\nexport class Navigation {\n private readonly page: Page;\n homePage: HomePage;\n userPage: UserPage;\n overthereLocalHostPage: OverthereLocalHostPage;\n environmentsPage: EnvironmentsPage;\n applicationsPage: ApplicationsPage;\n reportsPage: ReportsPage;\n\n constructor(page: Page) {\n this.page = page;\n this.homePage = new HomePage(page);\n this.userPage = new UserPage(page);\n this.overthereLocalHostPage = new OverthereLocalHostPage(page);\n this.environmentsPage = new EnvironmentsPage(page);\n this.applicationsPage = new ApplicationsPage(page, this);\n this.reportsPage = new ReportsPage(page);\n }\n\n async navigateToHomePage(): Promise<void> {\n await this.page.goto('/home');\n }\n\n async navigateToUserPage(): Promise<void> {\n await this.page.locator('p.MuiTypography-root', { hasText: 'User management' }).click();\n }\n\n async clickCollapseSideView(): Promise<void> {\n const collapseButton = this.page.getByTestId('back-button');\n await collapseButton.click();\n }\n\n /* Helps to navigate to the Applications page */\n async navigateToApplicationsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Applications\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Applications\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Application' }).click();\n }\n\n /* Helps to navigate to the Environments page */\n async navigateToEnvironmentsPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Environments\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Environments\"]').click();\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'Environment' }).click();\n }\n\n /* Helps to navigate to the Overthere LocalHost page */\n async navigateToOverthereLocalHostPage(): Promise<void> {\n const configNode = this.page.locator('span[data-id=\"Infrastructure\"]');\n await configNode.hover();\n await this.page.locator('i.context-menu-button[data-id=\"Infrastructure\"]').click();\n // await this.page.waitForTimeout(5000);\n await this.page.getByRole('link', { name: 'New' }).click();\n await this.page.getByRole('link', { name: 'overthere' }).click();\n await this.page.getByRole('link', { name: 'LocalHost' }).click();\n }\n}\n","import { expect } from '@playwright/test';\nimport { WithPage } from './withPage';\n\nexport class LoginPage extends WithPage {\n /* Login with username and password*/\n async login(userName: string, password: string): Promise<void> {\n await this.page.goto('/#/login');\n await expect(this.page).toHaveTitle('Digital.ai Deploy');\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 }\n\n /* Verify invalid password message */\n async verifyInvalidPasswordMessage(): Promise<void> {\n const errorMessage = this.page.getByText('The username and/or password you have entered is incorrect.');\n await expect(errorMessage).toBeVisible();\n }\n\n /* Logout as authenticated user */\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 await expect(this.page.getByText('Log in').first()).toBeVisible();\n }\n}\n","import { test as base, Page } from '@playwright/test';\nimport { Navigation } from '../pages';\nimport { LoginPage } from '../pages/loginPage';\n\ntype DeployFixtures = {\n fixtures: Fixtures;\n loginPage: LoginPage;\n navigation: Navigation;\n};\n\nexport const test = base.extend<DeployFixtures>({\n fixtures: async ({ page }, use) => {\n const fixtures = new Fixtures(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 page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n}\n","export { test } from './fixtures';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digital-ai/devops-page-object-deploy",
|
|
3
|
-
"version": "0.0.0-snapshot-
|
|
3
|
+
"version": "0.0.0-snapshot-20251124123340",
|
|
4
4
|
"source": "index.ts",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"module": "dist/module.js",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"@types/lodash": "4.14.192",
|
|
23
23
|
"parcel": "2.8.3",
|
|
24
24
|
"typescript": "4.5.3",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
25
|
+
"tsconfig": "0.0.0",
|
|
26
|
+
"eslint-config-custom": "0.0.0"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@playwright/test": "^1.34.3"
|