@digital-ai/devops-page-object-release 0.0.0-pikachu-20250825164742 → 0.0.0-snapshot-20250901092606

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,22 @@
1
1
  # @digital-ai/devops-page-object-release
2
2
 
3
- ## 0.0.0-pikachu-20250825164742
3
+ ## 0.0.0-snapshot-20250901092606
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - b7e9f9c: S-123064 `Releases filter` - adjust page objects to follow new filter components
7
+ - 3485020: S-124144 Fix `expectTaskFailureManualPermission` selector
8
+
9
+ ## 0.0.75
10
+
11
+ ### Patch Changes
12
+
13
+ - 4e5b25c: S-123725: Modified the method - addNewInstance in connectionsPage
14
+
15
+ ## 0.0.74
16
+
17
+ ### Patch Changes
18
+
19
+ - 7e19b70: S-123733: Update phase title selector
8
20
 
9
21
  ## 0.0.73
10
22
 
package/dist/main.js CHANGED
@@ -954,7 +954,6 @@ $edb0b0405039996a$exports = $edb0b0405039996a$var$isNil;
954
954
 
955
955
 
956
956
 
957
-
958
957
  class $f8721861c660dd88$export$2b65d1d97338f32b {
959
958
  constructor(page){
960
959
  this.page = page;
@@ -962,6 +961,8 @@ class $f8721861c660dd88$export$2b65d1d97338f32b {
962
961
  }
963
962
 
964
963
 
964
+
965
+
965
966
  class $3d3f3946c54f5897$export$34addcca3f0ae43f extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
966
967
  constructor(page){
967
968
  super(page);
@@ -1056,125 +1057,7 @@ class $3d3f3946c54f5897$export$34addcca3f0ae43f extends (0, $f8721861c660dd88$ex
1056
1057
  }
1057
1058
 
1058
1059
 
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) {
1060
+ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1178
1061
  constructor(page){
1179
1062
  super(page);
1180
1063
  this.releaseCreatePage = new (0, $3d3f3946c54f5897$export$34addcca3f0ae43f)(page);
@@ -1241,12 +1124,49 @@ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $e403098cd4f59faa$ex
1241
1124
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("breadcrumb").getByText("Releases")).toBeVisible();
1242
1125
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-list")).toBeVisible();
1243
1126
  }
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
+ }
1244
1135
  async openReleaseByName(releaseTitle) {
1245
1136
  await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
1246
1137
  hasText: releaseTitle
1247
1138
  }).click();
1248
1139
  return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
1249
1140
  }
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
+ }
1250
1170
  async createNewRelease(releaseName, description) {
1251
1171
  await this.releaseCreatePage.setName(releaseName);
1252
1172
  await this.releaseCreatePage.setDescription(description);
@@ -1259,6 +1179,18 @@ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $e403098cd4f59faa$ex
1259
1179
  await this.releaseCreatePage.setOwner(ownerName);
1260
1180
  await this.releaseCreatePage.create();
1261
1181
  }
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
+ }
1262
1194
  async openReleasesList() {
1263
1195
  await this.page.goto("./#/releases");
1264
1196
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-list")).toBeVisible();
@@ -4666,9 +4598,9 @@ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97
4666
4598
  }
4667
4599
  async setTitle(title) {
4668
4600
  await this.phaseLocator.locator(".phase-header .display").click();
4669
- await this.phaseLocator.locator(".phase-header input").clear();
4670
- await this.phaseLocator.locator(".phase-header input").fill(title);
4671
- await this.phaseLocator.locator(".phase-header input").blur();
4601
+ await this.phaseLocator.locator('.phase-header input[type="text"]').clear();
4602
+ await this.phaseLocator.locator('.phase-header input[type="text"]').fill(title);
4603
+ await this.phaseLocator.locator('.phase-header input[type="text"]').blur();
4672
4604
  }
4673
4605
  async isMenuItemEnabled(menuName, taskTitle, group = false) {
4674
4606
  await this.openContextMenuForTask(taskTitle, group);
@@ -5021,7 +4953,7 @@ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97
5021
4953
  }
5022
4954
  await this.page.getByTestId("save-select-task-btn").click();
5023
4955
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator("p").filter({
5024
- hasText: "Your request has been rejected, your permissions may have been revoked."
4956
+ hasText: "You don’t have permission to view this page."
5025
4957
  })).toBeVisible();
5026
4958
  }
5027
4959
  async expectCurrentTaskCount(count) {
@@ -5717,9 +5649,6 @@ class $9058d40a81bdb1f5$export$b453f08936c58edb extends (0, $f8721861c660dd88$ex
5717
5649
  this.util = new (0, $2c89ba54932fbba8$export$f8f26dd395d7e1bd)(page);
5718
5650
  this.variables = new (0, $59543fc69900e8db$export$f8e64fcf447db2bf)(page);
5719
5651
  }
5720
- getFolderSearchInputLocator() {
5721
- return this.page.locator(".folder-list .folder-list-search input");
5722
- }
5723
5652
  async openFoldersPage() {
5724
5653
  await this.page.goto("./#/folders");
5725
5654
  await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Folders / Home - Digital.ai Release");
@@ -5824,9 +5753,9 @@ class $9058d40a81bdb1f5$export$b453f08936c58edb extends (0, $f8721861c660dd88$ex
5824
5753
  })).not.toBeVisible();
5825
5754
  }
5826
5755
  async searchFolderByName(folderName) {
5827
- await this.getFolderSearchInputLocator().click();
5828
- await this.getFolderSearchInputLocator().clear();
5829
- await this.getFolderSearchInputLocator().fill(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);
5830
5759
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("link", {
5831
5760
  name: folderName
5832
5761
  })).toBeVisible();
@@ -6861,8 +6790,7 @@ class $a642d735048996f9$export$922081b54f2ab994 extends (0, $f8721861c660dd88$ex
6861
6790
 
6862
6791
 
6863
6792
 
6864
-
6865
- class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $e403098cd4f59faa$export$7034f81075184002) {
6793
+ class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
6866
6794
  async openReleaseCalendarPage() {
6867
6795
  await this.page.goto("./#/releases/calendar");
6868
6796
  //Define date format to verify different calendar views
@@ -6967,6 +6895,61 @@ class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $e403098cd4f59faa$ex
6967
6895
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title)).toBeVisible();
6968
6896
  }
6969
6897
  }
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
+ }
6970
6953
  async viewRelease(release_title, release_id) {
6971
6954
  await this.page.locator(".tl-header-navigation").getByRole("combobox").click();
6972
6955
  await this.page.getByRole("option", {
@@ -8244,9 +8227,9 @@ class $959d38250779aa22$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97
8244
8227
  }
8245
8228
  async setTitle(title) {
8246
8229
  await this.phaseLocator.locator(".phase-header .display").click();
8247
- await this.phaseLocator.locator(".phase-header input").clear();
8248
- await this.phaseLocator.locator(".phase-header input").fill(title);
8249
- await this.phaseLocator.locator(".phase-header input").blur();
8230
+ await this.phaseLocator.locator('.phase-header input[type="text"]').clear();
8231
+ await this.phaseLocator.locator('.phase-header input[type="text"]').fill(title);
8232
+ await this.phaseLocator.locator('.phase-header input[type="text"]').blur();
8250
8233
  }
8251
8234
  async expectTaskBorderWithColor(taskName, color) {
8252
8235
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS("border-top-color", color);
@@ -9511,7 +9494,7 @@ class $3ec0e9cf832fdde8$export$9823ddf5e80770e7 extends (0, $f8721861c660dd88$ex
9511
9494
  async addNewInstance(typeName) {
9512
9495
  await this.page.locator(`.configuration-type`).filter({
9513
9496
  hasText: typeName
9514
- }).locator(`.new-instance .button`).click({
9497
+ }).locator(`.new-instance .button`).first().click({
9515
9498
  force: true
9516
9499
  });
9517
9500
  return new $3ec0e9cf832fdde8$var$ConfigurationInstancePage(this.page);