@digital-ai/devops-page-object-release 0.0.89 → 0.0.91

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,17 @@
1
1
  # @digital-ai/devops-page-object-release
2
2
 
3
+ ## 0.0.91
4
+
5
+ ### Patch Changes
6
+
7
+ - 246bc7c: S-125225: Update new tasks page filters
8
+
9
+ ## 0.0.90
10
+
11
+ ### Patch Changes
12
+
13
+ - b1f79b2: S-125960: Migrated Release summary scenario from cypress to playwright
14
+
3
15
  ## 0.0.89
4
16
 
5
17
  ### Patch Changes
package/dist/main.js CHANGED
@@ -1058,18 +1058,52 @@ class $3d3f3946c54f5897$export$34addcca3f0ae43f extends (0, $f8721861c660dd88$ex
1058
1058
 
1059
1059
 
1060
1060
 
1061
- class $e403098cd4f59faa$export$7034f81075184002 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1061
+
1062
+ class $96d547f0e8ead553$export$48c33d2414f51608 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1062
1063
  constructor(page){
1063
1064
  super(page);
1064
1065
  }
1065
1066
  getHeaderSelector() {
1066
- return ".release-list-header";
1067
+ return ".filter-title-search";
1067
1068
  }
1068
1069
  getBaseDrawerSelector() {
1069
- return `${this.getHeaderSelector()} .filter-drawer`;
1070
+ return '.filter-drawer div[role="dialog"]';
1071
+ }
1072
+ getTitleInputSelector() {
1073
+ return `${this.getHeaderSelector()} input#title-filter`;
1070
1074
  }
1071
- getFilterDrawerSelector() {
1072
- return `${this.getBaseDrawerSelector()} div[role="dialog"]`;
1075
+ async openFilterDrawer() {
1076
+ await this.page.locator(`${this.getHeaderSelector()} button`, {
1077
+ hasText: "Filters"
1078
+ }).click();
1079
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(this.getBaseDrawerSelector())).toBeVisible();
1080
+ return this;
1081
+ }
1082
+ async closeFilterDrawer() {
1083
+ await this.page.locator(`${this.getBaseDrawerSelector()} .dot-icon-btn[data-testid="close-btn"]`).click();
1084
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(this.getBaseDrawerSelector())).not.toBeVisible();
1085
+ return this;
1086
+ }
1087
+ async clearTitleFilter() {
1088
+ await this.page.locator(this.getTitleInputSelector()).fill("");
1089
+ return this;
1090
+ }
1091
+ async clearAllFilters() {
1092
+ await this.page.locator(`.filter-row button[data-testid="clear-all-btn"]`).click();
1093
+ return this;
1094
+ }
1095
+ async filterByTitle(releaseTitle) {
1096
+ await this.page.locator(this.getTitleInputSelector()).fill(releaseTitle);
1097
+ }
1098
+ async clearFilterTitle() {
1099
+ await this.page.locator(this.getTitleInputSelector()).clear();
1100
+ }
1101
+ }
1102
+
1103
+
1104
+ class $e403098cd4f59faa$export$7034f81075184002 extends (0, $96d547f0e8ead553$export$48c33d2414f51608) {
1105
+ constructor(page){
1106
+ super(page);
1073
1107
  }
1074
1108
  getStatusInputSelector() {
1075
1109
  return `${this.getBaseDrawerSelector()} input#release-status-filter-autocomplete`;
@@ -1080,9 +1114,6 @@ class $e403098cd4f59faa$export$7034f81075184002 extends (0, $f8721861c660dd88$ex
1080
1114
  getSelectAllStatusesButtonSelector() {
1081
1115
  return `${this.getBasePopperSelector()} button[data-testid="dot-action-item-btn"]`;
1082
1116
  }
1083
- getTitleInputSelector() {
1084
- return `${this.getHeaderSelector()} input#title-filter`;
1085
- }
1086
1117
  getRiskLevelInputSelector() {
1087
1118
  return `${this.getBaseDrawerSelector()} input#risk`;
1088
1119
  }
@@ -1121,27 +1152,7 @@ class $e403098cd4f59faa$export$7034f81075184002 extends (0, $f8721861c660dd88$ex
1121
1152
  return this;
1122
1153
  }
1123
1154
  async filterReleaseByTitle(releaseTitle) {
1124
- await this.page.locator(this.getTitleInputSelector()).fill(releaseTitle);
1125
- }
1126
- async clearTitleFilter() {
1127
- await this.page.locator(this.getTitleInputSelector()).fill("");
1128
- return this;
1129
- }
1130
- async openFilterDrawer() {
1131
- await this.page.locator(`${this.getHeaderSelector()} button`, {
1132
- hasText: "Filters"
1133
- }).click();
1134
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(this.getFilterDrawerSelector())).toBeVisible();
1135
- return this;
1136
- }
1137
- async closeFilterDrawer() {
1138
- await this.page.locator(`${this.getBaseDrawerSelector()} .dot-icon-btn[data-testid="close-btn"]`).click();
1139
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(this.getFilterDrawerSelector())).not.toBeVisible();
1140
- return this;
1141
- }
1142
- async clearAllFilters() {
1143
- await this.page.locator(`${this.getHeaderSelector()} .filter-row button[data-testid="clear-all-btn"]`).click();
1144
- return this;
1155
+ await this.filterByTitle(releaseTitle);
1145
1156
  }
1146
1157
  async clearAllStatusFilters() {
1147
1158
  await this.page.locator(this.getStatusInputSelector()).click();
@@ -3134,7 +3145,7 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
3134
3145
  this.taskDrawerLocator = this.page.locator("task-drawer .dot-drawer");
3135
3146
  }
3136
3147
  async waitForTaskDrawer() {
3137
- const handle = await this.page.locator(".dot-drawer-paper").elementHandle();
3148
+ const handle = await this.page.locator("task-drawer .dot-drawer-paper").elementHandle();
3138
3149
  await handle?.waitForElementState("stable");
3139
3150
  }
3140
3151
  async openOverviewRail() {
@@ -3303,10 +3314,10 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
3303
3314
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".user-task-assigned-wrapper .clickable-avatar")).toBeVisible();
3304
3315
  }
3305
3316
  async removeAssignToUser(userName) {
3306
- await this.page.getByRole("button", {
3317
+ await this.taskDrawerLocator.getByRole("button", {
3307
3318
  name: userName
3308
3319
  }).click();
3309
- await this.page.getByRole("button", {
3320
+ await this.taskDrawerLocator.getByRole("button", {
3310
3321
  name: "Clear"
3311
3322
  }).click();
3312
3323
  return this;
@@ -3323,7 +3334,7 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
3323
3334
  }
3324
3335
  async removeAssignedTeam(teamName) {
3325
3336
  await this.page.locator(".team-task-assigned-wrapper .editable").getByText(teamName).click();
3326
- await this.page.getByRole("button", {
3337
+ await this.taskDrawerLocator.getByRole("button", {
3327
3338
  name: "Clear"
3328
3339
  }).click();
3329
3340
  return this;
@@ -4331,6 +4342,19 @@ class $2c89ba54932fbba8$export$f8f26dd395d7e1bd extends (0, $f8721861c660dd88$ex
4331
4342
  }
4332
4343
 
4333
4344
 
4345
+
4346
+
4347
+ class $fd3e87c08fb5976e$export$46146ef3ab8c339b extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
4348
+ constructor(page){
4349
+ super(page);
4350
+ }
4351
+ // Validate that release status contains the given text
4352
+ async expectReleaseStatusToContain(status) {
4353
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-status")).toContainText(status);
4354
+ }
4355
+ }
4356
+
4357
+
4334
4358
  class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
4335
4359
  defaultTimeout = 10000;
4336
4360
  constructor(page){
@@ -4338,6 +4362,7 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
4338
4362
  this.addPhaseBtn = this.page.getByTestId("add-phase-btn");
4339
4363
  this.createPage = new (0, $3d3f3946c54f5897$export$34addcca3f0ae43f)(page);
4340
4364
  this.ganttPage = new (0, $e8395395d01b66bb$export$5a82be0a2a261cc6)(page);
4365
+ this.summaryPage = new (0, $fd3e87c08fb5976e$export$46146ef3ab8c339b)(page);
4341
4366
  this.tableView = new (0, $c5c393ea4aecca6c$export$649fde34d823ece7)(page);
4342
4367
  this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
4343
4368
  this.teamsPermissions = new (0, $d330a7d6f7926d53$export$3bc3e140e0dcb075)(page);
@@ -4350,6 +4375,10 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
4350
4375
  await this.openSubPage("Triggers");
4351
4376
  return new (0, $133601cfe0486710$export$fb932093f944abe4)(this.page);
4352
4377
  }
4378
+ async openSummary() {
4379
+ this.openSubPage("Dashboard");
4380
+ return new (0, $fd3e87c08fb5976e$export$46146ef3ab8c339b)(this.page);
4381
+ }
4353
4382
  async abort(comment = "Abort for testing") {
4354
4383
  await this.page.getByTestId("abort-btn").waitFor();
4355
4384
  await this.page.getByTestId("abort-btn").click();
@@ -7769,13 +7798,23 @@ class $fd4eef3ad2b2e612$var$DeleteVariableModel extends (0, $f8721861c660dd88$ex
7769
7798
 
7770
7799
 
7771
7800
 
7772
- class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
7801
+
7802
+ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$export$48c33d2414f51608) {
7773
7803
  constructor(page){
7774
7804
  super(page);
7775
7805
  this.commentBox = this.page.locator(`.input-block-level`);
7776
7806
  this.gridView = new $ed2d4739e27d43c1$var$GridView(page);
7777
7807
  this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
7778
7808
  }
7809
+ getBasePopperSelector() {
7810
+ return '.dot-popper[role="presentation"]';
7811
+ }
7812
+ getSelectAllStatusesButtonSelector() {
7813
+ return `${this.getBasePopperSelector()} button[data-testid="dot-action-item-btn"]`;
7814
+ }
7815
+ getStatusInputSelector() {
7816
+ return `${this.getBaseDrawerSelector()} input#task-status-filter-autocomplete`;
7817
+ }
7779
7818
  async openTask(taskName) {
7780
7819
  await this.filterTaskByTitle(taskName);
7781
7820
  await this.page.getByText(taskName).first().click();
@@ -7841,9 +7880,7 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
7841
7880
  await this.taskDrawer.waitForTaskDrawer();
7842
7881
  }
7843
7882
  async filterTaskByTitle(taskname) {
7844
- await this.page.locator(".searchFilter").click();
7845
- await this.page.locator(".searchFilter").fill(taskname);
7846
- await this.page.locator(".searchFilter").press("Enter");
7883
+ await this.filterByTitle(taskname);
7847
7884
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("//div[@data-task-title]").filter({
7848
7885
  hasText: taskname
7849
7886
  }).first()).toBeVisible();
@@ -7888,13 +7925,13 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
7888
7925
  await this.page.locator(`.btn-group-filter.btn-group button.btn.btn-flat[title="${title}"]`).click();
7889
7926
  }
7890
7927
  async clickOnAssignedToMe() {
7891
- await this.page.locator(`button[title="Assigned to me"]`).click();
7928
+ await this.page.locator(`input[value="assignedToMe"]`).click();
7892
7929
  }
7893
7930
  async clickOnAssignedToMyTeams() {
7894
- await this.page.locator(`button[title="Assigned to my teams"]`).click();
7931
+ await this.page.locator(`input[value="assignedToMyTeams"]`).click();
7895
7932
  }
7896
7933
  async clickOnAssignedToAllAvailable() {
7897
- await this.page.locator(`button[title="All available"]`).click();
7934
+ await this.page.locator(`input[value="assignedToAnybody"]`).click();
7898
7935
  }
7899
7936
  async expectTaskToNotBeDisplayed(taskTitle) {
7900
7937
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.row.task-inner`).filter({
@@ -7924,38 +7961,30 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
7924
7961
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`#tasks-content #task-list-grouped-view div:has-text('${releaseTitle}') .task`)).toHaveCount(expectedCount);
7925
7962
  }
7926
7963
  async setSearchFilter(filterText) {
7927
- await this.page.locator(".searchFilter").fill(filterText);
7964
+ await this.filterByTitle(filterText);
7928
7965
  }
7929
7966
  async clearSearchFilter() {
7930
- await this.page.locator(".searchFilter").clear();
7967
+ await this.clearFilterTitle();
7931
7968
  }
7932
7969
  async setTagsFilter(filterText) {
7933
- await this.page.locator(".tag-input").fill(filterText);
7934
- await this.page.locator(".tag-input").press("Enter");
7970
+ await this.page.locator("input#task-tags").click();
7971
+ await this.page.locator("input#task-tags").fill(filterText);
7972
+ await this.page.locator("input#task-tags").press("Enter");
7935
7973
  }
7936
- async clickOnStatusField() {
7937
- await this.page.locator(".ci-filter-status.ng-isolate-scope").click();
7974
+ async clearAllStatusFilters() {
7975
+ await this.page.locator(this.getStatusInputSelector()).click();
7976
+ await this.page.locator(`${this.getBaseDrawerSelector()} div.filter-task-status-autocomplete button[title="Clear"]`).click();
7977
+ return this;
7938
7978
  }
7939
7979
  async clickOnStatus(statusNames) {
7940
- await this.clickOnStatusClearAll();
7941
- await this.clickOnStatusField();
7942
- for(let i = 0; i < statusNames.length; i++)await this.page.locator(`i.xl-icon.icon-s.checkbox[data='${statusNames[i]}']`).click();
7943
- // Clicking outside to close the grid dropdown
7944
- await this.clickOnTasksLabel();
7945
- }
7946
- async clickOnStatusClearAll() {
7947
- await this.clickOnStatusField();
7948
- await this.page.locator("a.xl-react-link", {
7949
- hasText: "Clear all"
7980
+ await this.clearAllStatusFilters();
7981
+ for(let i = 0; i < statusNames.length; i++)await this.page.locator("li", {
7982
+ hasText: statusNames[i]
7950
7983
  }).click();
7951
- await this.clickOnTasksLabel();
7952
7984
  }
7953
7985
  async clickOnStatusSelectAll() {
7954
- await this.clickOnStatusField();
7955
- await this.page.locator("a.xl-react-link", {
7956
- hasText: "Select all"
7957
- }).click();
7958
- await this.clickOnTasksLabel();
7986
+ await this.page.locator(this.getStatusInputSelector()).click();
7987
+ await this.page.locator(this.getSelectAllStatusesButtonSelector()).click();
7959
7988
  }
7960
7989
  async assignTaskToMe(title) {
7961
7990
  await this.page.locator(`.task-line`).filter({
@@ -7972,35 +8001,22 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
7972
8001
  async expectTaskTitle(taskTitle) {
7973
8002
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#tasks0")).toContainText(taskTitle);
7974
8003
  }
7975
- async clickOnTasksLabel() {
7976
- await this.page.getByLabel("breadcrumb").getByText("Tasks").click();
7977
- }
7978
8004
  async expectGroupView(expected = true) {
7979
8005
  if (expected) {
7980
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).toBeChecked();
8006
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator('input[aria-label="Group by release"]')).toBeChecked();
7981
8007
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).toBeVisible();
7982
8008
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).not.toBeVisible();
7983
8009
  } else {
7984
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).not.toBeChecked();
8010
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator('input[aria-label="Group by release"]')).not.toBeChecked();
7985
8011
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).not.toBeVisible();
7986
8012
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).toBeVisible();
7987
8013
  }
7988
8014
  }
7989
8015
  async changeGroupView() {
7990
- await this.page.locator("#group-tasks-by-release").click();
7991
- }
7992
- async enableGroupByReleaseView() {
7993
- await this.page.getByRole("checkbox", {
7994
- name: "Group by release"
7995
- }).check();
7996
- }
7997
- async disableGroupByReleaseView() {
7998
- await this.page.getByRole("checkbox", {
7999
- name: "Group by release"
8000
- }).uncheck();
8016
+ await this.page.locator('input[aria-label="Group by release"]').click();
8001
8017
  }
8002
8018
  async switchToGridView() {
8003
- await this.page.locator(".xl-icon.grid-icon").click();
8019
+ await this.page.locator('button[aria-label="grid view"]').click();
8004
8020
  return this.gridView;
8005
8021
  }
8006
8022
  }
@@ -10032,6 +10048,7 @@ class $267ea1f27d28a032$export$8da2fa93430be6ca extends (0, $f8721861c660dd88$ex
10032
10048
 
10033
10049
 
10034
10050
 
10051
+
10035
10052
  class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
10036
10053
  constructor(page){
10037
10054
  this.page = page;
@@ -10044,6 +10061,7 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
10044
10061
  this.header = new (0, $00fc48341ebf7de4$export$2fb4351c41ce6e7a)(page);
10045
10062
  this.managePluginsPage = new (0, $b4d98f757ef92467$export$7b434e00c788d0bf)(page);
10046
10063
  this.releasePage = new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(page);
10064
+ this.summaryPage = new (0, $fd3e87c08fb5976e$export$46146ef3ab8c339b)(page);
10047
10065
  this.settingsMenu = new (0, $7867194f18360347$export$1d7840d5cdc861d5)(page);
10048
10066
  this.systemSettingsPage = new (0, $dbc8f157e7b24b12$export$2edf430132ca35d0)(page);
10049
10067
  this.usersPage = new (0, $3ceab7c613cabfd6$export$107317390f5aa598)(page);