@digital-ai/devops-page-object-release 0.0.0-snapshot-20251029210730 → 0.0.0-snapshot-20251030051145

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,10 +1,10 @@
1
1
  # @digital-ai/devops-page-object-release
2
2
 
3
- ## 0.0.0-snapshot-20251029210730
3
+ ## 0.0.0-snapshot-20251030051145
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - 246bc7c: S-125225: Update new tasks page filters
7
+ - ee02c83: S-125960: Migrated Release summary scenario from cypress to playwright
8
8
 
9
9
  ## 0.0.88
10
10
 
package/dist/main.js CHANGED
@@ -1058,52 +1058,18 @@ class $3d3f3946c54f5897$export$34addcca3f0ae43f extends (0, $f8721861c660dd88$ex
1058
1058
 
1059
1059
 
1060
1060
 
1061
-
1062
- class $96d547f0e8ead553$export$48c33d2414f51608 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1061
+ class $e403098cd4f59faa$export$7034f81075184002 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1063
1062
  constructor(page){
1064
1063
  super(page);
1065
1064
  }
1066
1065
  getHeaderSelector() {
1067
- return ".filter-title-search";
1066
+ return ".release-list-header";
1068
1067
  }
1069
1068
  getBaseDrawerSelector() {
1070
- return '.filter-drawer div[role="dialog"]';
1071
- }
1072
- getTitleInputSelector() {
1073
- return `${this.getHeaderSelector()} input#title-filter`;
1069
+ return `${this.getHeaderSelector()} .filter-drawer`;
1074
1070
  }
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(`${this.getHeaderSelector()} .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);
1071
+ getFilterDrawerSelector() {
1072
+ return `${this.getBaseDrawerSelector()} div[role="dialog"]`;
1107
1073
  }
1108
1074
  getStatusInputSelector() {
1109
1075
  return `${this.getBaseDrawerSelector()} input#release-status-filter-autocomplete`;
@@ -1114,6 +1080,9 @@ class $e403098cd4f59faa$export$7034f81075184002 extends (0, $96d547f0e8ead553$ex
1114
1080
  getSelectAllStatusesButtonSelector() {
1115
1081
  return `${this.getBasePopperSelector()} button[data-testid="dot-action-item-btn"]`;
1116
1082
  }
1083
+ getTitleInputSelector() {
1084
+ return `${this.getHeaderSelector()} input#title-filter`;
1085
+ }
1117
1086
  getRiskLevelInputSelector() {
1118
1087
  return `${this.getBaseDrawerSelector()} input#risk`;
1119
1088
  }
@@ -1152,7 +1121,27 @@ class $e403098cd4f59faa$export$7034f81075184002 extends (0, $96d547f0e8ead553$ex
1152
1121
  return this;
1153
1122
  }
1154
1123
  async filterReleaseByTitle(releaseTitle) {
1155
- await this.filterByTitle(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;
1156
1145
  }
1157
1146
  async clearAllStatusFilters() {
1158
1147
  await this.page.locator(this.getStatusInputSelector()).click();
@@ -3145,7 +3134,7 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
3145
3134
  this.taskDrawerLocator = this.page.locator("task-drawer .dot-drawer");
3146
3135
  }
3147
3136
  async waitForTaskDrawer() {
3148
- const handle = await this.page.locator("task-drawer .dot-drawer-paper").elementHandle();
3137
+ const handle = await this.page.locator(".dot-drawer-paper").elementHandle();
3149
3138
  await handle?.waitForElementState("stable");
3150
3139
  }
3151
3140
  async openOverviewRail() {
@@ -4326,6 +4315,19 @@ class $2c89ba54932fbba8$export$f8f26dd395d7e1bd extends (0, $f8721861c660dd88$ex
4326
4315
  }
4327
4316
 
4328
4317
 
4318
+
4319
+
4320
+ class $fd3e87c08fb5976e$export$46146ef3ab8c339b extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
4321
+ constructor(page){
4322
+ super(page);
4323
+ }
4324
+ // Validate that release status contains the given text
4325
+ async expectReleaseStatusToContain(status) {
4326
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-status")).toContainText(status);
4327
+ }
4328
+ }
4329
+
4330
+
4329
4331
  class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
4330
4332
  defaultTimeout = 10000;
4331
4333
  constructor(page){
@@ -4333,6 +4335,7 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
4333
4335
  this.addPhaseBtn = this.page.getByTestId("add-phase-btn");
4334
4336
  this.createPage = new (0, $3d3f3946c54f5897$export$34addcca3f0ae43f)(page);
4335
4337
  this.ganttPage = new (0, $e8395395d01b66bb$export$5a82be0a2a261cc6)(page);
4338
+ this.summaryPage = new (0, $fd3e87c08fb5976e$export$46146ef3ab8c339b)(page);
4336
4339
  this.tableView = new (0, $c5c393ea4aecca6c$export$649fde34d823ece7)(page);
4337
4340
  this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
4338
4341
  this.teamsPermissions = new (0, $d330a7d6f7926d53$export$3bc3e140e0dcb075)(page);
@@ -4345,6 +4348,10 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
4345
4348
  await this.openSubPage("Triggers");
4346
4349
  return new (0, $133601cfe0486710$export$fb932093f944abe4)(this.page);
4347
4350
  }
4351
+ async openSummary() {
4352
+ this.openSubPage("Dashboard");
4353
+ return new (0, $fd3e87c08fb5976e$export$46146ef3ab8c339b)(this.page);
4354
+ }
4348
4355
  async abort(comment = "Abort for testing") {
4349
4356
  await this.page.getByTestId("abort-btn").waitFor();
4350
4357
  await this.page.getByTestId("abort-btn").click();
@@ -7764,23 +7771,13 @@ class $fd4eef3ad2b2e612$var$DeleteVariableModel extends (0, $f8721861c660dd88$ex
7764
7771
 
7765
7772
 
7766
7773
 
7767
-
7768
- class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$export$48c33d2414f51608) {
7774
+ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
7769
7775
  constructor(page){
7770
7776
  super(page);
7771
7777
  this.commentBox = this.page.locator(`.input-block-level`);
7772
7778
  this.gridView = new $ed2d4739e27d43c1$var$GridView(page);
7773
7779
  this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
7774
7780
  }
7775
- getBasePopperSelector() {
7776
- return '.dot-popper[role="presentation"]';
7777
- }
7778
- getSelectAllStatusesButtonSelector() {
7779
- return `${this.getBasePopperSelector()} button[data-testid="dot-action-item-btn"]`;
7780
- }
7781
- getStatusInputSelector() {
7782
- return `${this.getBaseDrawerSelector()} input#task-status-filter-autocomplete`;
7783
- }
7784
7781
  async openTask(taskName) {
7785
7782
  await this.filterTaskByTitle(taskName);
7786
7783
  await this.page.getByText(taskName).first().click();
@@ -7846,7 +7843,9 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$ex
7846
7843
  await this.taskDrawer.waitForTaskDrawer();
7847
7844
  }
7848
7845
  async filterTaskByTitle(taskname) {
7849
- await this.filterByTitle(taskname);
7846
+ await this.page.locator(".searchFilter").click();
7847
+ await this.page.locator(".searchFilter").fill(taskname);
7848
+ await this.page.locator(".searchFilter").press("Enter");
7850
7849
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("//div[@data-task-title]").filter({
7851
7850
  hasText: taskname
7852
7851
  }).first()).toBeVisible();
@@ -7891,13 +7890,13 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$ex
7891
7890
  await this.page.locator(`.btn-group-filter.btn-group button.btn.btn-flat[title="${title}"]`).click();
7892
7891
  }
7893
7892
  async clickOnAssignedToMe() {
7894
- await this.page.locator(`input[value="assignedToMe"]`).click();
7893
+ await this.page.locator(`button[title="Assigned to me"]`).click();
7895
7894
  }
7896
7895
  async clickOnAssignedToMyTeams() {
7897
- await this.page.locator(`input[value="assignedToMyTeams"]`).click();
7896
+ await this.page.locator(`button[title="Assigned to my teams"]`).click();
7898
7897
  }
7899
7898
  async clickOnAssignedToAllAvailable() {
7900
- await this.page.locator(`input[value="assignedToAnybody"]`).click();
7899
+ await this.page.locator(`button[title="All available"]`).click();
7901
7900
  }
7902
7901
  async expectTaskToNotBeDisplayed(taskTitle) {
7903
7902
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.row.task-inner`).filter({
@@ -7927,30 +7926,38 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$ex
7927
7926
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`#tasks-content #task-list-grouped-view div:has-text('${releaseTitle}') .task`)).toHaveCount(expectedCount);
7928
7927
  }
7929
7928
  async setSearchFilter(filterText) {
7930
- await this.filterByTitle(filterText);
7929
+ await this.page.locator(".searchFilter").fill(filterText);
7931
7930
  }
7932
7931
  async clearSearchFilter() {
7933
- await this.clearFilterTitle();
7932
+ await this.page.locator(".searchFilter").clear();
7934
7933
  }
7935
7934
  async setTagsFilter(filterText) {
7936
- await this.page.locator("input#task-tags").click();
7937
- await this.page.locator("input#task-tags").fill(filterText);
7938
- await this.page.locator("input#task-tags").press("Enter");
7935
+ await this.page.locator(".tag-input").fill(filterText);
7936
+ await this.page.locator(".tag-input").press("Enter");
7939
7937
  }
7940
- async clearAllStatusFilters() {
7941
- await this.page.locator(this.getStatusInputSelector()).click();
7942
- await this.page.locator(`${this.getBaseDrawerSelector()} div.filter-task-status-autocomplete button[title="Clear"]`).click();
7943
- return this;
7938
+ async clickOnStatusField() {
7939
+ await this.page.locator(".ci-filter-status.ng-isolate-scope").click();
7944
7940
  }
7945
7941
  async clickOnStatus(statusNames) {
7946
- await this.clearAllStatusFilters();
7947
- for(let i = 0; i < statusNames.length; i++)await this.page.locator("li", {
7948
- hasText: statusNames[i]
7942
+ await this.clickOnStatusClearAll();
7943
+ await this.clickOnStatusField();
7944
+ for(let i = 0; i < statusNames.length; i++)await this.page.locator(`i.xl-icon.icon-s.checkbox[data='${statusNames[i]}']`).click();
7945
+ // Clicking outside to close the grid dropdown
7946
+ await this.clickOnTasksLabel();
7947
+ }
7948
+ async clickOnStatusClearAll() {
7949
+ await this.clickOnStatusField();
7950
+ await this.page.locator("a.xl-react-link", {
7951
+ hasText: "Clear all"
7949
7952
  }).click();
7953
+ await this.clickOnTasksLabel();
7950
7954
  }
7951
7955
  async clickOnStatusSelectAll() {
7952
- await this.page.locator(this.getStatusInputSelector()).click();
7953
- await this.page.locator(this.getSelectAllStatusesButtonSelector()).click();
7956
+ await this.clickOnStatusField();
7957
+ await this.page.locator("a.xl-react-link", {
7958
+ hasText: "Select all"
7959
+ }).click();
7960
+ await this.clickOnTasksLabel();
7954
7961
  }
7955
7962
  async assignTaskToMe(title) {
7956
7963
  await this.page.locator(`.task-line`).filter({
@@ -7967,22 +7974,35 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$ex
7967
7974
  async expectTaskTitle(taskTitle) {
7968
7975
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#tasks0")).toContainText(taskTitle);
7969
7976
  }
7977
+ async clickOnTasksLabel() {
7978
+ await this.page.getByLabel("breadcrumb").getByText("Tasks").click();
7979
+ }
7970
7980
  async expectGroupView(expected = true) {
7971
7981
  if (expected) {
7972
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator('input[aria-label="Group by release"]')).toBeChecked();
7982
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).toBeChecked();
7973
7983
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).toBeVisible();
7974
7984
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).not.toBeVisible();
7975
7985
  } else {
7976
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator('input[aria-label="Group by release"]')).not.toBeChecked();
7986
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).not.toBeChecked();
7977
7987
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).not.toBeVisible();
7978
7988
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).toBeVisible();
7979
7989
  }
7980
7990
  }
7981
7991
  async changeGroupView() {
7982
- await this.page.locator('input[aria-label="Group by release"]').click();
7992
+ await this.page.locator("#group-tasks-by-release").click();
7993
+ }
7994
+ async enableGroupByReleaseView() {
7995
+ await this.page.getByRole("checkbox", {
7996
+ name: "Group by release"
7997
+ }).check();
7998
+ }
7999
+ async disableGroupByReleaseView() {
8000
+ await this.page.getByRole("checkbox", {
8001
+ name: "Group by release"
8002
+ }).uncheck();
7983
8003
  }
7984
8004
  async switchToGridView() {
7985
- await this.page.locator('button[aria-label="grid view"]').click();
8005
+ await this.page.locator(".xl-icon.grid-icon").click();
7986
8006
  return this.gridView;
7987
8007
  }
7988
8008
  }