@digital-ai/devops-page-object-release 0.0.38 → 0.0.39

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @digital-ai/devops-page-object-release
2
2
 
3
+ ## 0.0.39
4
+
5
+ ### Patch Changes
6
+
7
+ - 6c894d5: Try to reduce flaky
8
+
3
9
  ## 0.0.38
4
10
 
5
11
  ### Patch Changes
package/dist/main.js CHANGED
@@ -2694,9 +2694,16 @@ class $1fbdec5dc9cde599$export$e3515314c13bc477 extends (0, $f8721861c660dd88$ex
2694
2694
  }).locator(".task-date").waitFor({
2695
2695
  timeout: 10000
2696
2696
  });
2697
- await this.page.locator(".flex-section.column").filter({
2698
- hasText: "Start date"
2699
- }).locator(".task-date").click();
2697
+ // reclick if the date picker is not visible
2698
+ await (0, $kKeXs$playwrighttest.expect)(async ()=>{
2699
+ await this.page.locator(".flex-section.column").filter({
2700
+ hasText: "Start date"
2701
+ }).locator(".task-date").click();
2702
+ // month + year, we check for 20xx year
2703
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".MuiPickersCalendarHeader-label")).toContainText("20", {
2704
+ timeout: 100
2705
+ });
2706
+ }).toPass();
2700
2707
  await this.setDate(date, monthYear);
2701
2708
  }
2702
2709
  async setEndDate(date, monthYear) {
@@ -2705,9 +2712,16 @@ class $1fbdec5dc9cde599$export$e3515314c13bc477 extends (0, $f8721861c660dd88$ex
2705
2712
  }).locator(".task-date").waitFor({
2706
2713
  timeout: 10000
2707
2714
  });
2708
- await this.page.locator(".flex-section.column").filter({
2709
- hasText: "End date"
2710
- }).locator(".task-date").click();
2715
+ // reclick if the date picker is not visible
2716
+ await (0, $kKeXs$playwrighttest.expect)(async ()=>{
2717
+ await this.page.locator(".flex-section.column").filter({
2718
+ hasText: "End date"
2719
+ }).locator(".task-date").click();
2720
+ // month + year, we check for 20xx year
2721
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".MuiPickersCalendarHeader-label")).toContainText("20", {
2722
+ timeout: 100
2723
+ });
2724
+ }).toPass();
2711
2725
  await this.setDate(date, monthYear);
2712
2726
  }
2713
2727
  async setDate(date, monthYear) {
@@ -2760,6 +2774,10 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
2760
2774
  });
2761
2775
  this.taskDrawerLocator = this.page.locator("task-drawer .dot-drawer");
2762
2776
  }
2777
+ async waitForTaskDrawer() {
2778
+ const handle = await this.page.locator(".dot-drawer-paper").elementHandle();
2779
+ await handle?.waitForElementState("stable");
2780
+ }
2763
2781
  async openOverviewRail() {
2764
2782
  await this.openRail("Overview");
2765
2783
  }
@@ -3093,6 +3111,7 @@ class $e8395395d01b66bb$export$5a82be0a2a261cc6 extends (0, $f8721861c660dd88$ex
3093
3111
  }
3094
3112
  async openTaskDrawer(title) {
3095
3113
  await this.page.getByTitle(title).dblclick();
3114
+ await this.taskDrawer.waitForTaskDrawer();
3096
3115
  return this.taskDrawer;
3097
3116
  }
3098
3117
  async openPhaseDetails(phaseName) {
@@ -3485,9 +3504,9 @@ class $c5c393ea4aecca6c$export$649fde34d823ece7 extends (0, $f8721861c660dd88$ex
3485
3504
  }
3486
3505
  async expectTaskRowCountToBe(title, expectedCount) {
3487
3506
  await this.refreshButton.click();
3488
- (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".name-cell-title").filter({
3507
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".name-cell-title").filter({
3489
3508
  hasText: title
3490
- }).count()).toBe(expectedCount);
3509
+ })).toHaveCount(expectedCount);
3491
3510
  }
3492
3511
  async setHeaderFilter(columnTitle, valueToFilter) {
3493
3512
  const filter = this.page.locator(`.ui-grid-header-cell`).filter({
@@ -3497,8 +3516,7 @@ class $c5c393ea4aecca6c$export$649fde34d823ece7 extends (0, $f8721861c660dd88$ex
3497
3516
  await filter.fill(valueToFilter);
3498
3517
  }
3499
3518
  async expectRowCountToBe(cellCount) {
3500
- const cont = await this.page.locator(".ui-grid-canvas .name-cell").count();
3501
- (0, $kKeXs$playwrighttest.expect)(cont).toBe(cellCount);
3519
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".ui-grid-canvas .name-cell")).toHaveCount(cellCount);
3502
3520
  }
3503
3521
  async filterStartDate(date, monthYear) {
3504
3522
  await this.page.locator(`.ui-grid-header-cell`).filter({
@@ -3516,6 +3534,7 @@ class $c5c393ea4aecca6c$export$649fde34d823ece7 extends (0, $f8721861c660dd88$ex
3516
3534
  await this.page.locator(".name-cell-title").filter({
3517
3535
  hasText: taskTitle
3518
3536
  }).click();
3537
+ await this.taskDrawer.waitForTaskDrawer();
3519
3538
  return this.taskDrawer;
3520
3539
  }
3521
3540
  async collapseNthRowByIndex(Indexnumber) {
@@ -3526,25 +3545,31 @@ class $c5c393ea4aecca6c$export$649fde34d823ece7 extends (0, $f8721861c660dd88$ex
3526
3545
  }
3527
3546
  async expectTaskToHaveStatus(taskTitle, status) {
3528
3547
  await this.refreshButton.click();
3529
- (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".ui-grid-row").filter({
3548
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".ui-grid-row").filter({
3530
3549
  hasText: taskTitle
3531
- }).locator(".label ").textContent()).toContain(status);
3550
+ }).locator(".label")).toContainText(status);
3532
3551
  }
3533
3552
  async expectOverdueOnEndDate(taskTitle) {
3534
- (0, $kKeXs$playwrighttest.expect)(await this.page.locator(`.ui-grid-row`).filter({
3553
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.ui-grid-row`).filter({
3535
3554
  hasText: taskTitle
3536
- }).locator(`i.xl-icon.delay-icon.overdue-icon`).isVisible()).toBe(true);
3555
+ }).locator(`i.xl-icon.delay-icon.overdue-icon`)).toBeVisible();
3537
3556
  }
3538
3557
  async selectTask(taskTitle) {
3539
- await this.page.locator(`.ui-grid-cell-contents`).filter({
3558
+ const checkboxLocator = this.page.locator(`.ui-grid-cell-contents`).filter({
3540
3559
  hasText: taskTitle
3541
- }).locator(`.item-selector`).click({
3542
- force: true
3543
- });
3560
+ }).locator(`input.item-selector`);
3561
+ await (0, $kKeXs$playwrighttest.expect)(async ()=>{
3562
+ await checkboxLocator.click({
3563
+ force: true
3564
+ });
3565
+ await (0, $kKeXs$playwrighttest.expect)(checkboxLocator).toBeChecked({
3566
+ timeout: 1000
3567
+ });
3568
+ }).toPass();
3544
3569
  }
3545
3570
  async expectSelectedTasksCounter(text) {
3546
3571
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByTestId("release-grid-selected-tasks")).toBeVisible();
3547
- (0, $kKeXs$playwrighttest.expect)(await this.page.getByTestId("release-grid-selected-tasks").textContent()).toContain(text);
3572
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByTestId("release-grid-selected-tasks")).toContainText(text);
3548
3573
  }
3549
3574
  async clearSelection() {
3550
3575
  await this.page.getByTestId("release-grid-unselect-btn").click();
@@ -3581,7 +3606,7 @@ class $c5c393ea4aecca6c$export$649fde34d823ece7 extends (0, $f8721861c660dd88$ex
3581
3606
  async completeSelectedTasks(comment) {
3582
3607
  await this.page.getByTestId("release-grid-complete-btn").click();
3583
3608
  await this.page.getByPlaceholder("Give feedback or place a").fill(comment);
3584
- await this.page.getByRole("button", {
3609
+ await this.page.locator(".modal-footer").getByRole("button", {
3585
3610
  name: "Complete"
3586
3611
  }).click();
3587
3612
  return this;
@@ -3591,11 +3616,13 @@ class $c5c393ea4aecca6c$export$649fde34d823ece7 extends (0, $f8721861c660dd88$ex
3591
3616
  await this.page.getByRole("menuitem", {
3592
3617
  name: menuItem
3593
3618
  }).click();
3594
- if (await this.commentBox.isVisible() == true) await this.commentBox.fill(" Automation Test Comment");
3595
- if (await this.page.getByRole("button", {
3596
- name: menuItem,
3597
- exact: true
3598
- }).isVisible() == true) await this.page.getByRole("button", {
3619
+ if ([
3620
+ "Skip",
3621
+ "Reopen",
3622
+ "Retry",
3623
+ "Fail"
3624
+ ].includes(menuItem)) await this.commentBox.fill("Automation Test Comment");
3625
+ await this.page.getByRole("button", {
3599
3626
  name: menuItem,
3600
3627
  exact: true
3601
3628
  }).click();
@@ -3911,18 +3938,21 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
3911
3938
  await this.page.locator(".task-header").getByText(taskName, {
3912
3939
  exact: true
3913
3940
  }).click();
3941
+ await this.taskDrawer.waitForTaskDrawer();
3914
3942
  return this.taskDrawer;
3915
3943
  }
3916
3944
  async openTaskDrawerFromTableView(taskName) {
3917
3945
  await this.page.locator(".name-cell-title").getByText(taskName, {
3918
3946
  exact: true
3919
3947
  }).click();
3948
+ await this.taskDrawer.waitForTaskDrawer();
3920
3949
  return this.taskDrawer;
3921
3950
  }
3922
3951
  async openTaskDrawerFromGrantt(taskName) {
3923
3952
  await this.page.locator(".gantt_tree_content").getByText(taskName, {
3924
3953
  exact: true
3925
3954
  }).dblclick();
3955
+ await this.taskDrawer.waitForTaskDrawer();
3926
3956
  return this.taskDrawer;
3927
3957
  }
3928
3958
  async openVariables() {
@@ -6096,18 +6126,21 @@ class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $f8721861c660dd88$ex
6096
6126
  await this.page.getByRole("button", {
6097
6127
  name: "Today"
6098
6128
  }).click();
6099
- await this.page.locator(".tl-event-title").getByText(release_title).scrollIntoViewIfNeeded();
6100
- await this.page.locator(".tl-event-title").getByText(release_title).click();
6101
- const modalWindow = await this.page.locator(".release-modal-container").isVisible();
6102
- if (!modalWindow) {
6103
- await this.page.locator(".tl-event-title").getByText(release_title).scrollIntoViewIfNeeded();
6104
- await this.page.locator(".tl-event-title").getByText(release_title).click();
6105
- }
6129
+ await (0, $kKeXs$playwrighttest.expect)(async ()=>{
6130
+ await this.page.locator(".tl-event-title").getByText(release_title).scrollIntoViewIfNeeded({
6131
+ timeout: 1000
6132
+ });
6133
+ await this.page.locator(".tl-event-title").getByText(release_title).click({
6134
+ timeout: 1000
6135
+ });
6136
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-modal-container .xl-icon.release-icon")).toBeVisible({
6137
+ timeout: 1000
6138
+ });
6139
+ }).toPass();
6106
6140
  await this.page.locator(".release-modal-container").locator(".xl-icon.release-icon").click();
6107
6141
  const releaseurl = `/#/releases/${release_id}`;
6108
- const currentURL = await this.page.url();
6109
6142
  // Check if the release name present in redirected URL
6110
- (0, $kKeXs$playwrighttest.expect)(currentURL).toContain(releaseurl);
6143
+ (0, $kKeXs$playwrighttest.expect)(this.page.url()).toContain(releaseurl);
6111
6144
  }
6112
6145
  async viewDependency(source_release, dest_release) {
6113
6146
  const source_text = source_release + "dependencies";
@@ -6168,12 +6201,12 @@ class $a6a3c1345fc4767e$export$b6fbc3e67030138f extends (0, $f8721861c660dd88$ex
6168
6201
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-status")).toContainText(status);
6169
6202
  }
6170
6203
  async expectReleaseGroupDisplayed(title) {
6171
- await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
6204
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".row").getByText(title, {
6172
6205
  exact: true
6173
6206
  })).toBeVisible();
6174
6207
  }
6175
6208
  async expectReleaseGroupNotDisplayed(title) {
6176
- await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
6209
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".row").getByText(title, {
6177
6210
  exact: true
6178
6211
  })).not.toBeVisible();
6179
6212
  }
@@ -6674,6 +6707,7 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
6674
6707
  await this.page.locator(`.row.task-inner`, {
6675
6708
  hasText: taskName
6676
6709
  }).getByText(taskName).click();
6710
+ await this.taskDrawer.waitForTaskDrawer();
6677
6711
  }
6678
6712
  async filterTaskByTitle(taskname) {
6679
6713
  await this.page.locator(".searchFilter").click();
@@ -6864,6 +6898,7 @@ class $ed2d4739e27d43c1$var$GridView extends (0, $f8721861c660dd88$export$2b65d1
6864
6898
  await this.page.locator(`[data-test-id="${taskId}"] .title`).filter({
6865
6899
  hasText: taskTitle
6866
6900
  }).click();
6901
+ await this.taskDrawer.waitForTaskDrawer();
6867
6902
  return this.taskDrawer;
6868
6903
  }
6869
6904
  async openContextualMenu(taskId) {
@@ -7110,18 +7145,21 @@ class $959d38250779aa22$export$8c8e7207254accc2 extends (0, $f8721861c660dd88$ex
7110
7145
  await this.page.getByText(taskName, {
7111
7146
  exact: true
7112
7147
  }).click();
7148
+ await this.taskDrawer.waitForTaskDrawer();
7113
7149
  return this.taskDrawer;
7114
7150
  }
7115
7151
  async openTaskDrawerFromTableView(taskName) {
7116
7152
  await this.page.locator(".name-cell-title").getByText(taskName, {
7117
7153
  exact: true
7118
7154
  }).click();
7155
+ await this.taskDrawer.waitForTaskDrawer();
7119
7156
  return this.taskDrawer;
7120
7157
  }
7121
7158
  async openTaskDrawerFromGrantt(taskName) {
7122
7159
  await this.page.locator(".gantt_tree_content").getByText(taskName, {
7123
7160
  exact: true
7124
7161
  }).dblclick();
7162
+ await this.taskDrawer.waitForTaskDrawer();
7125
7163
  return this.taskDrawer;
7126
7164
  }
7127
7165
  async openProperties() {
@@ -9310,6 +9348,9 @@ class $6998c6a53a9eb4fa$var$Fixtures {
9310
9348
  deleteFolder(folderId) {
9311
9349
  return this.doDelete(`api/v1/folders/${folderId}`);
9312
9350
  }
9351
+ deleteGlobalVariables() {
9352
+ return this.doDelete("fixtures/globalVariables");
9353
+ }
9313
9354
  activityLogs(id, logs) {
9314
9355
  return this.doPost(`fixtures/activityLogs/${id}`, logs);
9315
9356
  }
@@ -9361,6 +9402,8 @@ class $6998c6a53a9eb4fa$var$Fixtures {
9361
9402
  for (const releaseId of this.releaseIds.reverse())await this.deleteRelease(releaseId);
9362
9403
  for (const confId of this.configurationIds)await this.deleteConfiguration(confId);
9363
9404
  for (const folderId of this.folderIds.reverse())await this.deleteFolder(folderId);
9405
+ await this.deleteGlobalVariables();
9406
+ this.globalVariableIds = [];
9364
9407
  this.folderIds = [];
9365
9408
  this.releaseIds = [];
9366
9409
  this.triggerIds = [];