@camunda/e2e-test-suite 0.0.1275 → 0.0.1276
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.
|
@@ -280,7 +280,14 @@ class ClusterPage {
|
|
|
280
280
|
await this.clickClusterNameInput();
|
|
281
281
|
await this.fillClusterNameInput(name);
|
|
282
282
|
await this.clickClusterType();
|
|
283
|
-
|
|
283
|
+
// Same design-system role="radio" fallback as the choice()-wrapped
|
|
284
|
+
// locators above -- `region` is a runtime parameter ('GCP'/'AWS') so
|
|
285
|
+
// this can't reuse a named locator directly. Ported from
|
|
286
|
+
// pages/8.9/ClusterPage.ts.
|
|
287
|
+
await this.page
|
|
288
|
+
.getByRole('tab', { name: region })
|
|
289
|
+
.or(this.page.getByRole('radio', { name: region, exact: true }))
|
|
290
|
+
.click();
|
|
284
291
|
await this.selectSubRegion(region);
|
|
285
292
|
await this.clickClusterOption();
|
|
286
293
|
await this.determineTasklistAPI(tasklistV1Api);
|
|
@@ -118,9 +118,16 @@ class ConsoleOrganizationPage {
|
|
|
118
118
|
name: 'danger',
|
|
119
119
|
})
|
|
120
120
|
.last();
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
// Camunda Hub's design-system Organization Management page renamed the
|
|
122
|
+
// Carbon TableToolbarSearch's default "Filter table" label to plain
|
|
123
|
+
// "Search" (same rename already ported elsewhere for the secrets
|
|
124
|
+
// panels). Confirmed against camunda-hub's own
|
|
125
|
+
// e2e-playwright/pages/Console/ConsoleOrgManagementPage.ts, which already
|
|
126
|
+
// uses `getByRole('searchbox', {name: 'Search'})` for this exact users
|
|
127
|
+
// list. Match either.
|
|
128
|
+
this.filterTableSearchbox = page
|
|
129
|
+
.getByRole('searchbox', { name: 'Filter table' })
|
|
130
|
+
.or(page.getByRole('searchbox', { name: 'Search' }));
|
|
124
131
|
}
|
|
125
132
|
async filterTable(names) {
|
|
126
133
|
for (const name of names) {
|
|
@@ -48,21 +48,49 @@ class ProcessApplicationPage {
|
|
|
48
48
|
// .first() defensively only: hub renders exactly one of these today, in the
|
|
49
49
|
// workspace-root empty state. A future second placement should not turn
|
|
50
50
|
// every PA-creating test into a strict-mode violation.
|
|
51
|
+
//
|
|
52
|
+
// hubTerm('project') (utils/hub-terminology.ts) renames "process
|
|
53
|
+
// application" to "project" in copy once an org has workspacesEnabled --
|
|
54
|
+
// confirmed from a nightly trace screenshot on hub.ultrawombat.com: the
|
|
55
|
+
// workspace-root empty state renders "Create project" (not "Create
|
|
56
|
+
// process application"), and EmptyStateActionButtons.tsx's source
|
|
57
|
+
// confirms the button text is `Create {hubTerm('project')}`. Accept both
|
|
58
|
+
// so this keeps working on orgs at either rollout stage.
|
|
59
|
+
// exact:true on both -- without it, "Create project" substring-matches
|
|
60
|
+
// the split button's own "Create project options" chevron too, and
|
|
61
|
+
// .first() then picks whichever the DOM happens to order first. Same
|
|
62
|
+
// pattern already fixed for the same chevron in
|
|
63
|
+
// ModelerHomePage.ts's createNewProjectButton/createWorkspaceButton.
|
|
51
64
|
this.createProcessApplicationButton = page
|
|
52
|
-
.getByRole('button', { name: 'Create process application' })
|
|
65
|
+
.getByRole('button', { name: 'Create process application', exact: true })
|
|
66
|
+
.or(page.getByRole('button', { name: 'Create project', exact: true }))
|
|
53
67
|
.first();
|
|
54
68
|
this.createProcessApplicationOption = page.locator('[data-test="create-process-application"]');
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
69
|
+
// Same hubTerm('project') rename as the button above --
|
|
70
|
+
// CreationModalDs.common.tsx's dialog title is `Create a
|
|
71
|
+
// {hubTerm('project')}`. A confirmed nightly trace showed a THIRD shape,
|
|
72
|
+
// live on this SaaS org: `app/pages/workspace-projects/features/
|
|
73
|
+
// create-project/CreateProjectModal.tsx` -- a newer, unrelated component
|
|
74
|
+
// (built on `api/projects`' useCreateProject, not processApplicationStore)
|
|
75
|
+
// titled plainly "Create project" (no "a"), with its field labelled
|
|
76
|
+
// "Project name" (not "Name") and its submit button reading "Create
|
|
77
|
+
// project" (not "Create"). Accept all three shapes.
|
|
78
|
+
this.creationDialog = page
|
|
79
|
+
.getByRole('dialog', { name: 'Create a process application' })
|
|
80
|
+
.or(page.getByRole('dialog', { name: 'Create a project' }))
|
|
81
|
+
.or(page.getByRole('dialog', { name: 'Create project', exact: true }));
|
|
58
82
|
// Deliberately scoped to the dialog: ModelerCreatePage owns an unscoped
|
|
59
83
|
// getByLabel('Name', {exact: true}) for the properties panel, which would
|
|
60
84
|
// resolve to two elements while the creation modal is open.
|
|
61
|
-
this.nameInput = this.creationDialog
|
|
62
|
-
|
|
63
|
-
name:
|
|
85
|
+
this.nameInput = this.creationDialog
|
|
86
|
+
.getByLabel('Name', { exact: true })
|
|
87
|
+
.or(this.creationDialog.getByLabel('Project name', { exact: true }));
|
|
88
|
+
this.submitButton = this.creationDialog
|
|
89
|
+
.getByRole('button', { name: 'Create', exact: true })
|
|
90
|
+
.or(this.creationDialog.getByRole('button', {
|
|
91
|
+
name: 'Create project',
|
|
64
92
|
exact: true,
|
|
65
|
-
});
|
|
93
|
+
}));
|
|
66
94
|
this.cancelButton = this.creationDialog.getByRole('button', {
|
|
67
95
|
name: 'Cancel',
|
|
68
96
|
exact: true,
|
|
@@ -7,8 +7,18 @@ class SettingsPage {
|
|
|
7
7
|
logoutButton;
|
|
8
8
|
constructor(page) {
|
|
9
9
|
this.page = page;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
// Camunda Hub's design-system shell renders a `UserMenu` button named
|
|
11
|
+
// "User menu, <full name>" in place of the legacy Carbon "Open Settings"
|
|
12
|
+
// icon button, and its logout control is a menuitem inside that menu
|
|
13
|
+
// rather than a plain button. Both shells still ship -- match either.
|
|
14
|
+
// Ported from camunda-hub's own e2e-playwright/pages/Console/ConsoleBasePage.ts
|
|
15
|
+
// (settingsButton / dsLogoutMenuItem / carbonLogoutButton).
|
|
16
|
+
this.openSettingsButton = page
|
|
17
|
+
.getByRole('button', { name: /^User menu,/ })
|
|
18
|
+
.or(page.getByLabel('Open Settings'));
|
|
19
|
+
this.logoutButton = page
|
|
20
|
+
.getByRole('menuitem', { name: 'Log out', exact: true })
|
|
21
|
+
.or(page.getByRole('button', { name: 'Log out' }));
|
|
12
22
|
}
|
|
13
23
|
async clickOpenSettingsButton(retries = 3) {
|
|
14
24
|
for (let i = 0; i < retries; i++) {
|