@digital-ai/devops-page-object-release 0.0.76 → 0.0.78

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.78
4
+
5
+ ### Patch Changes
6
+
7
+ - 3050bf1: S-124181: Update abort placeholder
8
+
9
+ ## 0.0.77
10
+
11
+ ### Patch Changes
12
+
13
+ - 6e9adb2: S-123064 `Releases filter` - adjust page objects to follow new filter components
14
+
3
15
  ## 0.0.76
4
16
 
5
17
  ### Patch Changes
package/dist/main.js CHANGED
@@ -954,6 +954,7 @@ $edb0b0405039996a$exports = $edb0b0405039996a$var$isNil;
954
954
 
955
955
 
956
956
 
957
+
957
958
  class $f8721861c660dd88$export$2b65d1d97338f32b {
958
959
  constructor(page){
959
960
  this.page = page;
@@ -961,8 +962,6 @@ class $f8721861c660dd88$export$2b65d1d97338f32b {
961
962
  }
962
963
 
963
964
 
964
-
965
-
966
965
  class $3d3f3946c54f5897$export$34addcca3f0ae43f extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
967
966
  constructor(page){
968
967
  super(page);
@@ -1057,7 +1056,125 @@ class $3d3f3946c54f5897$export$34addcca3f0ae43f extends (0, $f8721861c660dd88$ex
1057
1056
  }
1058
1057
 
1059
1058
 
1060
- class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1059
+
1060
+
1061
+ class $e403098cd4f59faa$export$7034f81075184002 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1062
+ constructor(page){
1063
+ super(page);
1064
+ }
1065
+ getHeaderSelector() {
1066
+ return ".release-list-header";
1067
+ }
1068
+ getBaseDrawerSelector() {
1069
+ return `${this.getHeaderSelector()} .releases-filter-drawer`;
1070
+ }
1071
+ getFilterDrawerSelector() {
1072
+ return `${this.getBaseDrawerSelector()} div[role="dialog"]`;
1073
+ }
1074
+ getStatusInputSelector() {
1075
+ return `${this.getBaseDrawerSelector()} input#release-status-filter-autocomplete`;
1076
+ }
1077
+ getBasePopperSelector() {
1078
+ return '.dot-popper[role="presentation"]';
1079
+ }
1080
+ getSelectAllStatusesButtonSelector() {
1081
+ return `${this.getBasePopperSelector()} button[data-testid="dot-action-item-btn"]`;
1082
+ }
1083
+ getTitleInputSelector() {
1084
+ return `${this.getHeaderSelector()} input#title-filter`;
1085
+ }
1086
+ getRiskLevelInputSelector() {
1087
+ return `${this.getBaseDrawerSelector()} input#risk`;
1088
+ }
1089
+ async setReleaseStatusFilter(statuses) {
1090
+ for (const status of statuses){
1091
+ await this.page.locator(this.getStatusInputSelector()).click();
1092
+ await this.page.locator(`${this.getBasePopperSelector()} ul li`).filter({
1093
+ hasText: status
1094
+ }).click();
1095
+ }
1096
+ return this;
1097
+ }
1098
+ async setReleaseTagsFilter(tags) {
1099
+ for (const tag of tags){
1100
+ await this.page.locator(`${this.getBaseDrawerSelector()} input#release-tags`).click();
1101
+ await this.page.locator(`${this.getBasePopperSelector()} ul li`).filter({
1102
+ hasText: tag.toLowerCase()
1103
+ }).click();
1104
+ }
1105
+ return this;
1106
+ }
1107
+ async setTaskTagsFilter(tags) {
1108
+ for (const tag of tags){
1109
+ await this.page.locator(`${this.getBaseDrawerSelector()} input#task-tags`).click();
1110
+ await this.page.locator(`${this.getBasePopperSelector()} ul li`).filter({
1111
+ hasText: tag.toLowerCase()
1112
+ }).click();
1113
+ }
1114
+ return this;
1115
+ }
1116
+ async setRiskLevelFilter(riskLevel) {
1117
+ await this.page.locator(this.getRiskLevelInputSelector()).click();
1118
+ await this.page.locator(`${this.getBasePopperSelector()} ul li:has-text("${riskLevel}")`).click({
1119
+ force: true
1120
+ });
1121
+ return this;
1122
+ }
1123
+ 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()} .release-list-filter-row button[data-testid="clear-all-btn"]`).click();
1144
+ return this;
1145
+ }
1146
+ async clearAllStatusFilters() {
1147
+ await this.page.locator(this.getStatusInputSelector()).click();
1148
+ await this.page.locator(`${this.getBaseDrawerSelector()} div.filter-release-status-autocomplete button[title="Clear"]`).click();
1149
+ return this;
1150
+ }
1151
+ async selectAllStatusFilters() {
1152
+ await this.page.locator(this.getStatusInputSelector()).click();
1153
+ await this.page.locator(this.getSelectAllStatusesButtonSelector()).click();
1154
+ return this;
1155
+ }
1156
+ async gotoListView() {
1157
+ await this.clickOnReleasesPageTab("List");
1158
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-list")).toBeVisible();
1159
+ }
1160
+ async gotoCalendarView() {
1161
+ await this.clickOnReleasesPageTab("Calendar");
1162
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".tl-viewport")).toBeVisible();
1163
+ }
1164
+ async clickOnReleasesPageTab(tabName) {
1165
+ await this.page.locator("releases-tabs .dot-tab-label").filter({
1166
+ hasText: tabName
1167
+ }).click();
1168
+ return this;
1169
+ }
1170
+ async toggleFilterFlaggedOnly() {
1171
+ await this.page.locator(`${this.getBaseDrawerSelector()} .flagged-releases-switch input[aria-label="Flagged releases"]`).click();
1172
+ return this;
1173
+ }
1174
+ }
1175
+
1176
+
1177
+ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $e403098cd4f59faa$export$7034f81075184002) {
1061
1178
  constructor(page){
1062
1179
  super(page);
1063
1180
  this.releaseCreatePage = new (0, $3d3f3946c54f5897$export$34addcca3f0ae43f)(page);
@@ -1124,49 +1241,12 @@ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$ex
1124
1241
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("breadcrumb").getByText("Releases")).toBeVisible();
1125
1242
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-list")).toBeVisible();
1126
1243
  }
1127
- async filterReleaseByAllStatus() {
1128
- await this.page.locator(".ci-status .remaining-tags").getByText("more").click();
1129
- await this.page.locator(".ci-status .xl-react-link").getByText("Select all").click();
1130
- }
1131
- async filterReleaseByStatus(release_status) {
1132
- await this.page.locator(".react-tagsinput-wrapper .remaining-tags").click();
1133
- await this.page.getByTitle(release_status).locator("i").first().click();
1134
- }
1135
1244
  async openReleaseByName(releaseTitle) {
1136
1245
  await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
1137
1246
  hasText: releaseTitle
1138
1247
  }).click();
1139
1248
  return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
1140
1249
  }
1141
- async openSearchFilter() {
1142
- await this.page.locator(".toggle-search-filter").click();
1143
- }
1144
- async filterReleaseByTitle(releaseTitle) {
1145
- const searchTitle = this.page.locator(".searchFilter");
1146
- const searchCount = await searchTitle.count();
1147
- if (searchCount == 0) {
1148
- await this.openSearchFilter();
1149
- await searchTitle.fill(releaseTitle);
1150
- await searchTitle.press("Enter");
1151
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible();
1152
- } else {
1153
- await searchTitle.press("Enter");
1154
- await searchTitle.fill(releaseTitle);
1155
- await searchTitle.press("Enter");
1156
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible();
1157
- }
1158
- }
1159
- async clearTitleFilter() {
1160
- const search = await this.page.locator(".searchFilter").count();
1161
- if (search == 0) {
1162
- await this.openSearchFilter();
1163
- await this.page.locator(".searchFilter").clear();
1164
- await this.page.locator(".searchFilter").press("Enter");
1165
- } else {
1166
- await this.page.locator(".searchFilter").clear();
1167
- await this.page.locator(".searchFilter").press("Enter");
1168
- }
1169
- }
1170
1250
  async createNewRelease(releaseName, description) {
1171
1251
  await this.releaseCreatePage.setName(releaseName);
1172
1252
  await this.releaseCreatePage.setDescription(description);
@@ -1179,18 +1259,6 @@ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$ex
1179
1259
  await this.releaseCreatePage.setOwner(ownerName);
1180
1260
  await this.releaseCreatePage.create();
1181
1261
  }
1182
- async gotoListView() {
1183
- await this.page.getByRole("tab", {
1184
- name: "release icon List"
1185
- }).click();
1186
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-list")).toBeVisible();
1187
- }
1188
- async gotoCalendarView() {
1189
- await this.page.getByRole("tab", {
1190
- name: "calendar icon Calendar"
1191
- }).click();
1192
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".tl-viewport")).toBeVisible();
1193
- }
1194
1262
  async openReleasesList() {
1195
1263
  await this.page.goto("./#/releases");
1196
1264
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-list")).toBeVisible();
@@ -4178,8 +4246,7 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
4178
4246
  async abort(comment = "Abort for testing") {
4179
4247
  await this.page.getByTestId("abort-btn").waitFor();
4180
4248
  await this.page.getByTestId("abort-btn").click();
4181
- await this.page.getByPlaceholder("Give feedback or place a").click();
4182
- await this.page.getByPlaceholder("Give feedback or place a").fill(comment);
4249
+ await this.page.getByPlaceholder("Provide a reason").fill(comment);
4183
4250
  await this.page.getByRole("button", {
4184
4251
  name: "Abort"
4185
4252
  }).click();
@@ -5649,6 +5716,9 @@ class $9058d40a81bdb1f5$export$b453f08936c58edb extends (0, $f8721861c660dd88$ex
5649
5716
  this.util = new (0, $2c89ba54932fbba8$export$f8f26dd395d7e1bd)(page);
5650
5717
  this.variables = new (0, $59543fc69900e8db$export$f8e64fcf447db2bf)(page);
5651
5718
  }
5719
+ getFolderSearchInputLocator() {
5720
+ return this.page.locator(".folder-list .folder-list-search input");
5721
+ }
5652
5722
  async openFoldersPage() {
5653
5723
  await this.page.goto("./#/folders");
5654
5724
  await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Folders / Home - Digital.ai Release");
@@ -5753,9 +5823,9 @@ class $9058d40a81bdb1f5$export$b453f08936c58edb extends (0, $f8721861c660dd88$ex
5753
5823
  })).not.toBeVisible();
5754
5824
  }
5755
5825
  async searchFolderByName(folderName) {
5756
- await this.page.getByLabel("Start typing to filter").click();
5757
- await this.page.getByLabel("Start typing to filter").clear();
5758
- await this.page.getByLabel("Start typing to filter").fill(folderName);
5826
+ await this.getFolderSearchInputLocator().click();
5827
+ await this.getFolderSearchInputLocator().clear();
5828
+ await this.getFolderSearchInputLocator().fill(folderName);
5759
5829
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("link", {
5760
5830
  name: folderName
5761
5831
  })).toBeVisible();
@@ -6790,7 +6860,8 @@ class $a642d735048996f9$export$922081b54f2ab994 extends (0, $f8721861c660dd88$ex
6790
6860
 
6791
6861
 
6792
6862
 
6793
- class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
6863
+
6864
+ class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $e403098cd4f59faa$export$7034f81075184002) {
6794
6865
  async openReleaseCalendarPage() {
6795
6866
  await this.page.goto("./#/releases/calendar");
6796
6867
  //Define date format to verify different calendar views
@@ -6895,61 +6966,6 @@ class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $f8721861c660dd88$ex
6895
6966
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title)).toBeVisible();
6896
6967
  }
6897
6968
  }
6898
- async filterReleaseByTitle(title) {
6899
- await this.page.getByPlaceholder("Filter by release title").click();
6900
- await this.page.getByPlaceholder("Filter by release title").fill(title);
6901
- await this.page.getByPlaceholder("Filter by release title").press("Enter");
6902
- //Verify Page has correct Year format displayed at the page bottom
6903
- await this.verifyPageContent(title);
6904
- }
6905
- async filterReleaseByTags(tags, release_title) {
6906
- await this.page.locator(".tl-filter-release-tags").locator(".react-tagsinput").click();
6907
- for (let tag of tags){
6908
- tag = tag.toString();
6909
- await this.page.locator(".tl-filter-release-tags").locator(".react-tagsinput-input").fill(tag);
6910
- await this.page.getByTitle(tag).locator("i").click();
6911
- }
6912
- await this.verifyPageContent(release_title);
6913
- }
6914
- async filterTaskByTags(tags, task_title, release_title) {
6915
- await this.page.locator(".tl-filter-task-tags").locator(".react-tagsinput").click();
6916
- for (let tag of tags){
6917
- tag = tag.toString();
6918
- await this.page.locator(".tl-filter-task-tags").locator(".react-tagsinput-input").fill(tag);
6919
- await this.page.getByTitle(tag).locator("i").click();
6920
- }
6921
- //Make sure task is visible on calnedar page
6922
- await this.verifyPageContent(task_title);
6923
- //Make sure parent release of the selected task is visible on calnedar page
6924
- await this.verifyPageContent(release_title);
6925
- }
6926
- async filterReleaseByStatus(release_status, release_title) {
6927
- if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
6928
- name: "Advanced filters"
6929
- }).click();
6930
- await this.page.locator(".tl-filter-release-status").locator(".react-tagsinput").click();
6931
- await this.page.getByTitle(release_status).locator("i").first().click();
6932
- await this.verifyPageContent(release_title);
6933
- }
6934
- async filterReleaseByRisk(release_risk, release_title) {
6935
- if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
6936
- name: "Advanced filters"
6937
- }).click();
6938
- await this.page.locator(".tl-filter-risk-filter").getByRole("combobox").click();
6939
- await this.page.getByRole("option", {
6940
- name: release_risk
6941
- }).click();
6942
- await this.verifyPageContent(release_title);
6943
- }
6944
- async filterFlaggedRelease(release_title) {
6945
- if (!await this.page.locator(".tl-filter-advanced").isVisible()) await this.page.getByRole("button", {
6946
- name: "Advanced filters"
6947
- }).click();
6948
- if (await this.page.locator(".tl-filter-flag-only.btn.btn-flat.btn-fixed.button-toggle-filter.active").isVisible()) await this.page.getByRole("button", {
6949
- name: " Flagged"
6950
- }).click();
6951
- await this.verifyPageContent(release_title);
6952
- }
6953
6969
  async viewRelease(release_title, release_id) {
6954
6970
  await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
6955
6971
  await this.page.getByRole("option", {
@@ -9399,6 +9415,9 @@ class $dbc8f157e7b24b12$export$2edf430132ca35d0 extends (0, $f8721861c660dd88$ex
9399
9415
  hasText: "Changes saved successfully"
9400
9416
  })).toBeVisible();
9401
9417
  await this.page.locator(".success").getByRole("button").click();
9418
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".success").filter({
9419
+ hasText: "Changes saved successfully"
9420
+ })).not.toBeVisible();
9402
9421
  return this;
9403
9422
  }
9404
9423
  async reset() {