@digital-ai/devops-page-object-release 0.0.0-snapshot-20250904103638 → 0.0.0-snapshot-20250909201249

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/dist/module.js CHANGED
@@ -18,6 +18,7 @@ import $hOLA6$lodashtoPairs from "lodash/toPairs";
18
18
 
19
19
 
20
20
 
21
+
21
22
  class $9626bc9256ce31f7$export$2b65d1d97338f32b {
22
23
  constructor(page){
23
24
  this.page = page;
@@ -25,8 +26,6 @@ class $9626bc9256ce31f7$export$2b65d1d97338f32b {
25
26
  }
26
27
 
27
28
 
28
-
29
-
30
29
  class $05d91a1d3381a287$export$34addcca3f0ae43f extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
31
30
  constructor(page){
32
31
  super(page);
@@ -74,12 +73,6 @@ class $05d91a1d3381a287$export$34addcca3f0ae43f extends (0, $9626bc9256ce31f7$ex
74
73
  await this.page.getByPlaceholder("No template").fill(templateName);
75
74
  await this.page.getByText(templateName).click();
76
75
  }
77
- async selectFolder(folderName) {
78
- await this.page.locator("div.xl__value-container div.xl__placeholder").click();
79
- await this.page.locator("div.xl__value-container").click();
80
- await this.page.locator('input[id^="react-select"][type="text"]').fill(folderName);
81
- await this.page.getByLabel("grid").getByText(folderName).click();
82
- }
83
76
  async removeTemplate() {
84
77
  await this.page.locator(".template-select .close-icon").click();
85
78
  }
@@ -127,7 +120,125 @@ class $05d91a1d3381a287$export$34addcca3f0ae43f extends (0, $9626bc9256ce31f7$ex
127
120
  }
128
121
 
129
122
 
130
- class $5359280e98d97ff9$export$a678525e79c4ccc4 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
123
+
124
+
125
+ class $b34a21212642e54d$export$7034f81075184002 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
126
+ constructor(page){
127
+ super(page);
128
+ }
129
+ getHeaderSelector() {
130
+ return ".release-list-header";
131
+ }
132
+ getBaseDrawerSelector() {
133
+ return `${this.getHeaderSelector()} .releases-filter-drawer`;
134
+ }
135
+ getFilterDrawerSelector() {
136
+ return `${this.getBaseDrawerSelector()} div[role="dialog"]`;
137
+ }
138
+ getStatusInputSelector() {
139
+ return `${this.getBaseDrawerSelector()} input#release-status-filter-autocomplete`;
140
+ }
141
+ getBasePopperSelector() {
142
+ return '.dot-popper[role="presentation"]';
143
+ }
144
+ getSelectAllStatusesButtonSelector() {
145
+ return `${this.getBasePopperSelector()} button[data-testid="dot-action-item-btn"]`;
146
+ }
147
+ getTitleInputSelector() {
148
+ return `${this.getHeaderSelector()} input#title-filter`;
149
+ }
150
+ getRiskLevelInputSelector() {
151
+ return `${this.getBaseDrawerSelector()} input#risk`;
152
+ }
153
+ async setReleaseStatusFilter(statuses) {
154
+ for (const status of statuses){
155
+ await this.page.locator(this.getStatusInputSelector()).click();
156
+ await this.page.locator(`${this.getBasePopperSelector()} ul li`).filter({
157
+ hasText: status
158
+ }).click();
159
+ }
160
+ return this;
161
+ }
162
+ async setReleaseTagsFilter(tags) {
163
+ for (const tag of tags){
164
+ await this.page.locator(`${this.getBaseDrawerSelector()} input#release-tags`).click();
165
+ await this.page.locator(`${this.getBasePopperSelector()} ul li`).filter({
166
+ hasText: tag.toLowerCase()
167
+ }).click();
168
+ }
169
+ return this;
170
+ }
171
+ async setTaskTagsFilter(tags) {
172
+ for (const tag of tags){
173
+ await this.page.locator(`${this.getBaseDrawerSelector()} input#task-tags`).click();
174
+ await this.page.locator(`${this.getBasePopperSelector()} ul li`).filter({
175
+ hasText: tag.toLowerCase()
176
+ }).click();
177
+ }
178
+ return this;
179
+ }
180
+ async setRiskLevelFilter(riskLevel) {
181
+ await this.page.locator(this.getRiskLevelInputSelector()).click();
182
+ await this.page.locator(`${this.getBasePopperSelector()} ul li:has-text("${riskLevel}")`).click({
183
+ force: true
184
+ });
185
+ return this;
186
+ }
187
+ async filterReleaseByTitle(releaseTitle) {
188
+ await this.page.locator(this.getTitleInputSelector()).fill(releaseTitle);
189
+ }
190
+ async clearTitleFilter() {
191
+ await this.page.locator(this.getTitleInputSelector()).fill("");
192
+ return this;
193
+ }
194
+ async openFilterDrawer() {
195
+ await this.page.locator(`${this.getHeaderSelector()} button`, {
196
+ hasText: "Filters"
197
+ }).click();
198
+ await (0, $hOLA6$expect)(this.page.locator(this.getFilterDrawerSelector())).toBeVisible();
199
+ return this;
200
+ }
201
+ async closeFilterDrawer() {
202
+ await this.page.locator(`${this.getBaseDrawerSelector()} .dot-icon-btn[data-testid="close-btn"]`).click();
203
+ await (0, $hOLA6$expect)(this.page.locator(this.getFilterDrawerSelector())).not.toBeVisible();
204
+ return this;
205
+ }
206
+ async clearAllFilters() {
207
+ await this.page.locator(`${this.getHeaderSelector()} .release-list-filter-row button[data-testid="clear-all-btn"]`).click();
208
+ return this;
209
+ }
210
+ async clearAllStatusFilters() {
211
+ await this.page.locator(this.getStatusInputSelector()).click();
212
+ await this.page.locator(`${this.getBaseDrawerSelector()} div.filter-release-status-autocomplete button[title="Clear"]`).click();
213
+ return this;
214
+ }
215
+ async selectAllStatusFilters() {
216
+ await this.page.locator(this.getStatusInputSelector()).click();
217
+ await this.page.locator(this.getSelectAllStatusesButtonSelector()).click();
218
+ return this;
219
+ }
220
+ async gotoListView() {
221
+ await this.clickOnReleasesPageTab("List");
222
+ await (0, $hOLA6$expect)(this.page.locator(".release-list")).toBeVisible();
223
+ }
224
+ async gotoCalendarView() {
225
+ await this.clickOnReleasesPageTab("Calendar");
226
+ await (0, $hOLA6$expect)(this.page.locator(".tl-viewport")).toBeVisible();
227
+ }
228
+ async clickOnReleasesPageTab(tabName) {
229
+ await this.page.locator("releases-tabs .dot-tab-label").filter({
230
+ hasText: tabName
231
+ }).click();
232
+ return this;
233
+ }
234
+ async toggleFilterFlaggedOnly() {
235
+ await this.page.locator(`${this.getBaseDrawerSelector()} .flagged-releases-switch input[aria-label="Flagged releases"]`).click();
236
+ return this;
237
+ }
238
+ }
239
+
240
+
241
+ class $5359280e98d97ff9$export$a678525e79c4ccc4 extends (0, $b34a21212642e54d$export$7034f81075184002) {
131
242
  constructor(page){
132
243
  super(page);
133
244
  this.releaseCreatePage = new (0, $05d91a1d3381a287$export$34addcca3f0ae43f)(page);
@@ -194,49 +305,12 @@ class $5359280e98d97ff9$export$a678525e79c4ccc4 extends (0, $9626bc9256ce31f7$ex
194
305
  await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Releases")).toBeVisible();
195
306
  await (0, $hOLA6$expect)(this.page.locator(".release-list")).toBeVisible();
196
307
  }
197
- async filterReleaseByAllStatus() {
198
- await this.page.locator(".ci-status .remaining-tags").getByText("more").click();
199
- await this.page.locator(".ci-status .xl-react-link").getByText("Select all").click();
200
- }
201
- async filterReleaseByStatus(release_status) {
202
- await this.page.locator(".react-tagsinput-wrapper .remaining-tags").click();
203
- await this.page.getByTitle(release_status).locator("i").first().click();
204
- }
205
308
  async openReleaseByName(releaseTitle) {
206
309
  await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
207
310
  hasText: releaseTitle
208
311
  }).click();
209
312
  return new (0, $43cbcdfccb6c2a76$export$f43492e8ac3c566)(this.page);
210
313
  }
211
- async openSearchFilter() {
212
- await this.page.locator(".toggle-search-filter").click();
213
- }
214
- async filterReleaseByTitle(releaseTitle) {
215
- const searchTitle = this.page.locator(".searchFilter");
216
- const searchCount = await searchTitle.count();
217
- if (searchCount == 0) {
218
- await this.openSearchFilter();
219
- await searchTitle.fill(releaseTitle);
220
- await searchTitle.press("Enter");
221
- await (0, $hOLA6$expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible();
222
- } else {
223
- await searchTitle.press("Enter");
224
- await searchTitle.fill(releaseTitle);
225
- await searchTitle.press("Enter");
226
- await (0, $hOLA6$expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible();
227
- }
228
- }
229
- async clearTitleFilter() {
230
- const search = await this.page.locator(".searchFilter").count();
231
- if (search == 0) {
232
- await this.openSearchFilter();
233
- await this.page.locator(".searchFilter").clear();
234
- await this.page.locator(".searchFilter").press("Enter");
235
- } else {
236
- await this.page.locator(".searchFilter").clear();
237
- await this.page.locator(".searchFilter").press("Enter");
238
- }
239
- }
240
314
  async createNewRelease(releaseName, description) {
241
315
  await this.releaseCreatePage.setName(releaseName);
242
316
  await this.releaseCreatePage.setDescription(description);
@@ -249,18 +323,6 @@ class $5359280e98d97ff9$export$a678525e79c4ccc4 extends (0, $9626bc9256ce31f7$ex
249
323
  await this.releaseCreatePage.setOwner(ownerName);
250
324
  await this.releaseCreatePage.create();
251
325
  }
252
- async gotoListView() {
253
- await this.page.getByRole("tab", {
254
- name: "release icon List"
255
- }).click();
256
- await (0, $hOLA6$expect)(this.page.locator(".release-list")).toBeVisible();
257
- }
258
- async gotoCalendarView() {
259
- await this.page.getByRole("tab", {
260
- name: "calendar icon Calendar"
261
- }).click();
262
- await (0, $hOLA6$expect)(this.page.locator(".tl-viewport")).toBeVisible();
263
- }
264
326
  async openReleasesList() {
265
327
  await this.page.goto("./#/releases");
266
328
  await (0, $hOLA6$expect)(this.page.locator(".release-list")).toBeVisible();
@@ -1308,9 +1370,6 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
1308
1370
  async expectRiskProfileValue(value) {
1309
1371
  await (0, $hOLA6$expect)(this.railLocator.locator("#riskProfileId")).toHaveValue(value);
1310
1372
  }
1311
- async expectServerFieldValue(label, value) {
1312
- await (0, $hOLA6$expect)(this.railLocator.getByTestId("jiraServer-input")).toHaveValue(value);
1313
- }
1314
1373
  async expectTo(value) {
1315
1374
  return await (0, $hOLA6$expect)(this.railLocator.getByTestId(`dot-autocomplete-chip`)).toHaveText(value);
1316
1375
  }
@@ -1534,7 +1593,7 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
1534
1593
  }
1535
1594
  async acceptDialogWindow() {
1536
1595
  await this.page.getByRole("button", {
1537
- name: "ok"
1596
+ name: "change template"
1538
1597
  }).click();
1539
1598
  }
1540
1599
  async setRiskProfile(RiskProfile) {
@@ -2417,7 +2476,6 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
2417
2476
 
2418
2477
 
2419
2478
 
2420
-
2421
2479
  class $a546aadb4e6fa16a$export$5a82be0a2a261cc6 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
2422
2480
  constructor(page){
2423
2481
  super(page);
@@ -2430,19 +2488,6 @@ class $a546aadb4e6fa16a$export$5a82be0a2a261cc6 extends (0, $9626bc9256ce31f7$ex
2430
2488
  async disableShowDates() {
2431
2489
  await this.page.locator("#toggleIsDatesColumnsShown").uncheck();
2432
2490
  }
2433
- async expectStartDateDisplayed(name, date) {
2434
- const formattedDate = (0, $hOLA6$moment)(date).format("M/D/YY");
2435
- const inputLocator = this.page.locator(".gantt_row", {
2436
- hasText: name
2437
- }).locator('.gantt_cell input[type="text"]').first(); // assumes start date is the first text input
2438
- await (0, $hOLA6$expect)(inputLocator).toHaveValue(formattedDate);
2439
- }
2440
- async clickOnReleaseName(releaseName) {
2441
- await this.page.getByRole("link", {
2442
- name: releaseName
2443
- }).click();
2444
- await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText(releaseName)).toBeVisible();
2445
- }
2446
2491
  async expectPlanningDataColumnsHidden() {
2447
2492
  (0, $hOLA6$expect)(await this.page.locator(`#gantt .gantt_grid_data .gantt_row`).first().locator(`.gantt_cell`).count()).toEqual(1);
2448
2493
  }
@@ -2883,20 +2928,9 @@ class $96c6280ff1c47b81$export$3bc3e140e0dcb075 extends (0, $9626bc9256ce31f7$ex
2883
2928
  const releaseAdminRow = this.page.locator("#teams-permissions-table tr", {
2884
2929
  hasText: teamName
2885
2930
  });
2886
- await releaseAdminRow.first().waitFor({
2887
- state: "visible",
2888
- timeout: 4000
2889
- });
2890
- const userTag = releaseAdminRow.locator(`text=${userName}`);
2891
- await (0, $hOLA6$expect)(userTag).toBeVisible({
2892
- timeout: 4000
2893
- });
2894
- }
2895
- async expectTeamContains(teamName, ...members) {
2896
- const teamEditor = this.page.locator("tr", {
2897
- hasText: teamName
2898
- });
2899
- for (const member of members)await (0, $hOLA6$expect)(teamEditor.locator(`text=${member}`)).toBeVisible();
2931
+ await (0, $hOLA6$expect)(releaseAdminRow.locator("span.tag-wrapper.tag-label", {
2932
+ hasText: userName
2933
+ })).toBeVisible();
2900
2934
  }
2901
2935
  }
2902
2936
 
@@ -3276,8 +3310,7 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
3276
3310
  async abort(comment = "Abort for testing") {
3277
3311
  await this.page.getByTestId("abort-btn").waitFor();
3278
3312
  await this.page.getByTestId("abort-btn").click();
3279
- await this.page.getByPlaceholder("Give feedback or place a").click();
3280
- await this.page.getByPlaceholder("Give feedback or place a").fill(comment);
3313
+ await this.page.getByPlaceholder("Provide a reason").fill(comment);
3281
3314
  await this.page.getByRole("button", {
3282
3315
  name: "Abort"
3283
3316
  }).click();
@@ -4051,7 +4084,7 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
4051
4084
  }
4052
4085
  await this.page.getByTestId("save-select-task-btn").click();
4053
4086
  await (0, $hOLA6$expect)(this.page.locator("p").filter({
4054
- hasText: "Your request has been rejected, your permissions may have been revoked."
4087
+ hasText: "You don’t have permission to view this page."
4055
4088
  })).toBeVisible();
4056
4089
  }
4057
4090
  async expectCurrentTaskCount(count) {
@@ -4747,6 +4780,9 @@ class $50c91328c9110668$export$b453f08936c58edb extends (0, $9626bc9256ce31f7$ex
4747
4780
  this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
4748
4781
  this.variables = new (0, $dfc4ce40cbd0eb71$export$f8e64fcf447db2bf)(page);
4749
4782
  }
4783
+ getFolderSearchInputLocator() {
4784
+ return this.page.locator(".folder-list .folder-list-search input");
4785
+ }
4750
4786
  async openFoldersPage() {
4751
4787
  await this.page.goto("./#/folders");
4752
4788
  await (0, $hOLA6$expect)(this.page).toHaveTitle("Folders / Home - Digital.ai Release");
@@ -4851,9 +4887,9 @@ class $50c91328c9110668$export$b453f08936c58edb extends (0, $9626bc9256ce31f7$ex
4851
4887
  })).not.toBeVisible();
4852
4888
  }
4853
4889
  async searchFolderByName(folderName) {
4854
- await this.page.getByLabel("Start typing to filter").click();
4855
- await this.page.getByLabel("Start typing to filter").clear();
4856
- await this.page.getByLabel("Start typing to filter").fill(folderName);
4890
+ await this.getFolderSearchInputLocator().click();
4891
+ await this.getFolderSearchInputLocator().clear();
4892
+ await this.getFolderSearchInputLocator().fill(folderName);
4857
4893
  await (0, $hOLA6$expect)(this.page.getByRole("link", {
4858
4894
  name: folderName
4859
4895
  })).toBeVisible();
@@ -5888,7 +5924,8 @@ class $9ca6e63d357957dd$export$922081b54f2ab994 extends (0, $9626bc9256ce31f7$ex
5888
5924
 
5889
5925
 
5890
5926
 
5891
- class $3a340a3f4fd8f04d$export$43682cddead1dd78 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
5927
+
5928
+ class $3a340a3f4fd8f04d$export$43682cddead1dd78 extends (0, $b34a21212642e54d$export$7034f81075184002) {
5892
5929
  async openReleaseCalendarPage() {
5893
5930
  await this.page.goto("./#/releases/calendar");
5894
5931
  //Define date format to verify different calendar views
@@ -5993,61 +6030,6 @@ class $3a340a3f4fd8f04d$export$43682cddead1dd78 extends (0, $9626bc9256ce31f7$ex
5993
6030
  await (0, $hOLA6$expect)(this.page.getByText(title)).toBeVisible();
5994
6031
  }
5995
6032
  }
5996
- async filterReleaseByTitle(title) {
5997
- await this.page.getByPlaceholder("Filter by release title").click();
5998
- await this.page.getByPlaceholder("Filter by release title").fill(title);
5999
- await this.page.getByPlaceholder("Filter by release title").press("Enter");
6000
- //Verify Page has correct Year format displayed at the page bottom
6001
- await this.verifyPageContent(title);
6002
- }
6003
- async filterReleaseByTags(tags, release_title) {
6004
- await this.page.locator(".tl-filter-release-tags").locator(".react-tagsinput").click();
6005
- for (let tag of tags){
6006
- tag = tag.toString();
6007
- await this.page.locator(".tl-filter-release-tags").locator(".react-tagsinput-input").fill(tag);
6008
- await this.page.getByTitle(tag).locator("i").click();
6009
- }
6010
- await this.verifyPageContent(release_title);
6011
- }
6012
- async filterTaskByTags(tags, task_title, release_title) {
6013
- await this.page.locator(".tl-filter-task-tags").locator(".react-tagsinput").click();
6014
- for (let tag of tags){
6015
- tag = tag.toString();
6016
- await this.page.locator(".tl-filter-task-tags").locator(".react-tagsinput-input").fill(tag);
6017
- await this.page.getByTitle(tag).locator("i").click();
6018
- }
6019
- //Make sure task is visible on calnedar page
6020
- await this.verifyPageContent(task_title);
6021
- //Make sure parent release of the selected task is visible on calnedar page
6022
- await this.verifyPageContent(release_title);
6023
- }
6024
- async filterReleaseByStatus(release_status, release_title) {
6025
- if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
6026
- name: "Advanced filters"
6027
- }).click();
6028
- await this.page.locator(".tl-filter-release-status").locator(".react-tagsinput").click();
6029
- await this.page.getByTitle(release_status).locator("i").first().click();
6030
- await this.verifyPageContent(release_title);
6031
- }
6032
- async filterReleaseByRisk(release_risk, release_title) {
6033
- if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
6034
- name: "Advanced filters"
6035
- }).click();
6036
- await this.page.locator(".tl-filter-risk-filter").getByRole("combobox").click();
6037
- await this.page.getByRole("option", {
6038
- name: release_risk
6039
- }).click();
6040
- await this.verifyPageContent(release_title);
6041
- }
6042
- async filterFlaggedRelease(release_title) {
6043
- if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
6044
- name: "Advanced filters"
6045
- }).click();
6046
- if (await this.page.locator(".tl-filter-flag-only.btn.btn-flat.btn-fixed.button-toggle-filter.active").isVisible()) await this.page.getByRole("button", {
6047
- name: " Flagged"
6048
- }).click();
6049
- await this.verifyPageContent(release_title);
6050
- }
6051
6033
  async viewRelease(release_title, release_id) {
6052
6034
  await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
6053
6035
  await this.page.getByRole("option", {
@@ -7524,7 +7506,7 @@ class $171d52b372748c0b$export$7e1d435fa474ee21 extends (0, $9626bc9256ce31f7$ex
7524
7506
  async clickNewReleaseIcon(templateName) {
7525
7507
  await this.page.locator("xlr-template-row-component").filter({
7526
7508
  hasText: templateName
7527
- }).locator(".link .add-icon").first().click();
7509
+ }).locator(".link .add-icon").click();
7528
7510
  await (0, $hOLA6$expect)(this.page.getByRole("heading", {
7529
7511
  name: "Create new release"
7530
7512
  })).toBeVisible();
@@ -8497,6 +8479,9 @@ class $2cbb78eec86d0a9f$export$2edf430132ca35d0 extends (0, $9626bc9256ce31f7$ex
8497
8479
  hasText: "Changes saved successfully"
8498
8480
  })).toBeVisible();
8499
8481
  await this.page.locator(".success").getByRole("button").click();
8482
+ await (0, $hOLA6$expect)(this.page.locator(".success").filter({
8483
+ hasText: "Changes saved successfully"
8484
+ })).not.toBeVisible();
8500
8485
  return this;
8501
8486
  }
8502
8487
  async reset() {
@@ -8592,7 +8577,7 @@ class $6c0f5b52769b32c3$export$9823ddf5e80770e7 extends (0, $9626bc9256ce31f7$ex
8592
8577
  async addNewInstance(typeName) {
8593
8578
  await this.page.locator(`.configuration-type`).filter({
8594
8579
  hasText: typeName
8595
- }).locator(`.new-instance .button`).click({
8580
+ }).locator(`.new-instance .button`).first().click({
8596
8581
  force: true
8597
8582
  });
8598
8583
  return new $6c0f5b52769b32c3$var$ConfigurationInstancePage(this.page);