@digital-ai/devops-page-object-release 0.0.0-snapshot-20251030121554 → 0.0.0-snapshot-20251031105320
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 +2 -2
- package/dist/main.js +95 -77
- package/dist/main.js.map +1 -1
- package/dist/module.js +95 -77
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +15 -16
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# @digital-ai/devops-page-object-release
|
|
2
2
|
|
|
3
|
-
## 0.0.0-snapshot-
|
|
3
|
+
## 0.0.0-snapshot-20251031105320
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 867ee27: S-125939: Migrated Release flag 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 ".
|
|
1066
|
+
return ".release-list-header";
|
|
1068
1067
|
}
|
|
1069
1068
|
getBaseDrawerSelector() {
|
|
1070
|
-
return
|
|
1071
|
-
}
|
|
1072
|
-
getTitleInputSelector() {
|
|
1073
|
-
return `${this.getHeaderSelector()} input#title-filter`;
|
|
1074
|
-
}
|
|
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);
|
|
1069
|
+
return `${this.getHeaderSelector()} .filter-drawer`;
|
|
1097
1070
|
}
|
|
1098
|
-
|
|
1099
|
-
|
|
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.
|
|
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("
|
|
3137
|
+
const handle = await this.page.locator(".dot-drawer-paper").elementHandle();
|
|
3149
3138
|
await handle?.waitForElementState("stable");
|
|
3150
3139
|
}
|
|
3151
3140
|
async openOverviewRail() {
|
|
@@ -3314,10 +3303,10 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
|
|
|
3314
3303
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".user-task-assigned-wrapper .clickable-avatar")).toBeVisible();
|
|
3315
3304
|
}
|
|
3316
3305
|
async removeAssignToUser(userName) {
|
|
3317
|
-
await this.
|
|
3306
|
+
await this.page.getByRole("button", {
|
|
3318
3307
|
name: userName
|
|
3319
3308
|
}).click();
|
|
3320
|
-
await this.
|
|
3309
|
+
await this.page.getByRole("button", {
|
|
3321
3310
|
name: "Clear"
|
|
3322
3311
|
}).click();
|
|
3323
3312
|
return this;
|
|
@@ -3334,7 +3323,7 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
|
|
|
3334
3323
|
}
|
|
3335
3324
|
async removeAssignedTeam(teamName) {
|
|
3336
3325
|
await this.page.locator(".team-task-assigned-wrapper .editable").getByText(teamName).click();
|
|
3337
|
-
await this.
|
|
3326
|
+
await this.page.getByRole("button", {
|
|
3338
3327
|
name: "Clear"
|
|
3339
3328
|
}).click();
|
|
3340
3329
|
return this;
|
|
@@ -3853,6 +3842,22 @@ class $8681d8a3f46f87b7$export$d1077068a9cc9f17 extends (0, $f8721861c660dd88$ex
|
|
|
3853
3842
|
async expectStartFromReleaseURLToBe(parentReleaseURL) {
|
|
3854
3843
|
(0, $kKeXs$playwrighttest.expect)(await this.page.locator(".started-from-release").getAttribute("href")).toContain(parentReleaseURL);
|
|
3855
3844
|
}
|
|
3845
|
+
async expectFlaggedWith(flagName, flagComment) {
|
|
3846
|
+
const flagButton = this.page.locator(".flags .dropdown-button");
|
|
3847
|
+
await (0, $kKeXs$playwrighttest.expect)(flagButton).toHaveClass(new RegExp(`\\b${flagName}\\b`));
|
|
3848
|
+
const input = this.page.locator(".flags input");
|
|
3849
|
+
await (0, $kKeXs$playwrighttest.expect)(input).toBeVisible();
|
|
3850
|
+
await (0, $kKeXs$playwrighttest.expect)(input).toHaveValue(flagComment);
|
|
3851
|
+
}
|
|
3852
|
+
async flag(flagName, flagComment) {
|
|
3853
|
+
const flagDropdown = this.page.locator("#release-properties .flags .dropdown-button");
|
|
3854
|
+
await flagDropdown.click();
|
|
3855
|
+
const flagPopover = this.page.locator(".flags .flag-picker-popover");
|
|
3856
|
+
const flagOption = flagPopover.locator(`div.${flagName}`);
|
|
3857
|
+
await flagOption.click();
|
|
3858
|
+
await this.page.getByPlaceholder("Set status text...").click();
|
|
3859
|
+
await this.page.getByPlaceholder("Set status text...").fill(flagComment);
|
|
3860
|
+
}
|
|
3856
3861
|
}
|
|
3857
3862
|
|
|
3858
3863
|
|
|
@@ -7764,23 +7769,13 @@ class $fd4eef3ad2b2e612$var$DeleteVariableModel extends (0, $f8721861c660dd88$ex
|
|
|
7764
7769
|
|
|
7765
7770
|
|
|
7766
7771
|
|
|
7767
|
-
|
|
7768
|
-
class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$export$48c33d2414f51608) {
|
|
7772
|
+
class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
|
|
7769
7773
|
constructor(page){
|
|
7770
7774
|
super(page);
|
|
7771
7775
|
this.commentBox = this.page.locator(`.input-block-level`);
|
|
7772
7776
|
this.gridView = new $ed2d4739e27d43c1$var$GridView(page);
|
|
7773
7777
|
this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
|
|
7774
7778
|
}
|
|
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
7779
|
async openTask(taskName) {
|
|
7785
7780
|
await this.filterTaskByTitle(taskName);
|
|
7786
7781
|
await this.page.getByText(taskName).first().click();
|
|
@@ -7846,7 +7841,9 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$ex
|
|
|
7846
7841
|
await this.taskDrawer.waitForTaskDrawer();
|
|
7847
7842
|
}
|
|
7848
7843
|
async filterTaskByTitle(taskname) {
|
|
7849
|
-
await this.
|
|
7844
|
+
await this.page.locator(".searchFilter").click();
|
|
7845
|
+
await this.page.locator(".searchFilter").fill(taskname);
|
|
7846
|
+
await this.page.locator(".searchFilter").press("Enter");
|
|
7850
7847
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("//div[@data-task-title]").filter({
|
|
7851
7848
|
hasText: taskname
|
|
7852
7849
|
}).first()).toBeVisible();
|
|
@@ -7891,13 +7888,13 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$ex
|
|
|
7891
7888
|
await this.page.locator(`.btn-group-filter.btn-group button.btn.btn-flat[title="${title}"]`).click();
|
|
7892
7889
|
}
|
|
7893
7890
|
async clickOnAssignedToMe() {
|
|
7894
|
-
await this.page.locator(`
|
|
7891
|
+
await this.page.locator(`button[title="Assigned to me"]`).click();
|
|
7895
7892
|
}
|
|
7896
7893
|
async clickOnAssignedToMyTeams() {
|
|
7897
|
-
await this.page.locator(`
|
|
7894
|
+
await this.page.locator(`button[title="Assigned to my teams"]`).click();
|
|
7898
7895
|
}
|
|
7899
7896
|
async clickOnAssignedToAllAvailable() {
|
|
7900
|
-
await this.page.locator(`
|
|
7897
|
+
await this.page.locator(`button[title="All available"]`).click();
|
|
7901
7898
|
}
|
|
7902
7899
|
async expectTaskToNotBeDisplayed(taskTitle) {
|
|
7903
7900
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.row.task-inner`).filter({
|
|
@@ -7927,30 +7924,38 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$ex
|
|
|
7927
7924
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`#tasks-content #task-list-grouped-view div:has-text('${releaseTitle}') .task`)).toHaveCount(expectedCount);
|
|
7928
7925
|
}
|
|
7929
7926
|
async setSearchFilter(filterText) {
|
|
7930
|
-
await this.
|
|
7927
|
+
await this.page.locator(".searchFilter").fill(filterText);
|
|
7931
7928
|
}
|
|
7932
7929
|
async clearSearchFilter() {
|
|
7933
|
-
await this.
|
|
7930
|
+
await this.page.locator(".searchFilter").clear();
|
|
7934
7931
|
}
|
|
7935
7932
|
async setTagsFilter(filterText) {
|
|
7936
|
-
await this.page.locator("input
|
|
7937
|
-
await this.page.locator("input
|
|
7938
|
-
await this.page.locator("input#task-tags").press("Enter");
|
|
7933
|
+
await this.page.locator(".tag-input").fill(filterText);
|
|
7934
|
+
await this.page.locator(".tag-input").press("Enter");
|
|
7939
7935
|
}
|
|
7940
|
-
async
|
|
7941
|
-
await this.page.locator(
|
|
7942
|
-
await this.page.locator(`${this.getBaseDrawerSelector()} div.filter-task-status-autocomplete button[title="Clear"]`).click();
|
|
7943
|
-
return this;
|
|
7936
|
+
async clickOnStatusField() {
|
|
7937
|
+
await this.page.locator(".ci-filter-status.ng-isolate-scope").click();
|
|
7944
7938
|
}
|
|
7945
7939
|
async clickOnStatus(statusNames) {
|
|
7946
|
-
await this.
|
|
7947
|
-
|
|
7948
|
-
|
|
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"
|
|
7949
7950
|
}).click();
|
|
7951
|
+
await this.clickOnTasksLabel();
|
|
7950
7952
|
}
|
|
7951
7953
|
async clickOnStatusSelectAll() {
|
|
7952
|
-
await this.
|
|
7953
|
-
await this.page.locator(
|
|
7954
|
+
await this.clickOnStatusField();
|
|
7955
|
+
await this.page.locator("a.xl-react-link", {
|
|
7956
|
+
hasText: "Select all"
|
|
7957
|
+
}).click();
|
|
7958
|
+
await this.clickOnTasksLabel();
|
|
7954
7959
|
}
|
|
7955
7960
|
async assignTaskToMe(title) {
|
|
7956
7961
|
await this.page.locator(`.task-line`).filter({
|
|
@@ -7967,22 +7972,35 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $96d547f0e8ead553$ex
|
|
|
7967
7972
|
async expectTaskTitle(taskTitle) {
|
|
7968
7973
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#tasks0")).toContainText(taskTitle);
|
|
7969
7974
|
}
|
|
7975
|
+
async clickOnTasksLabel() {
|
|
7976
|
+
await this.page.getByLabel("breadcrumb").getByText("Tasks").click();
|
|
7977
|
+
}
|
|
7970
7978
|
async expectGroupView(expected = true) {
|
|
7971
7979
|
if (expected) {
|
|
7972
|
-
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(
|
|
7980
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).toBeChecked();
|
|
7973
7981
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).toBeVisible();
|
|
7974
7982
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).not.toBeVisible();
|
|
7975
7983
|
} else {
|
|
7976
|
-
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(
|
|
7984
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).not.toBeChecked();
|
|
7977
7985
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).not.toBeVisible();
|
|
7978
7986
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).toBeVisible();
|
|
7979
7987
|
}
|
|
7980
7988
|
}
|
|
7981
7989
|
async changeGroupView() {
|
|
7982
|
-
await this.page.locator(
|
|
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();
|
|
7983
8001
|
}
|
|
7984
8002
|
async switchToGridView() {
|
|
7985
|
-
await this.page.locator(
|
|
8003
|
+
await this.page.locator(".xl-icon.grid-icon").click();
|
|
7986
8004
|
return this.gridView;
|
|
7987
8005
|
}
|
|
7988
8006
|
}
|