@digital-ai/devops-page-object-release 0.0.26 → 0.0.27
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 +9 -0
- package/dist/main.js +636 -59
- package/dist/main.js.map +1 -1
- package/dist/module.js +636 -59
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +154 -23
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/module.js
CHANGED
|
@@ -310,9 +310,12 @@ class $dfc4ce40cbd0eb71$export$f8e64fcf447db2bf extends (0, $9626bc9256ce31f7$ex
|
|
|
310
310
|
await this.page.locator(".variable-label input").fill(labelname);
|
|
311
311
|
if (description) await this.page.locator(".variable-description input").fill(description);
|
|
312
312
|
}
|
|
313
|
-
async selectVariableTextType(
|
|
313
|
+
async selectVariableTextType(valueName, multiline) {
|
|
314
314
|
await this.page.getByRole("combobox").selectOption("StringVariable");
|
|
315
|
-
|
|
315
|
+
if (multiline) {
|
|
316
|
+
await this.clickMultiline();
|
|
317
|
+
await this.page.locator(".variable-value textarea").fill(valueName);
|
|
318
|
+
} else await this.page.locator(".variable-value input").fill(valueName);
|
|
316
319
|
}
|
|
317
320
|
async selectVariableListboxType(possiblevalue, defaultValue, required) {
|
|
318
321
|
await this.page.getByRole("combobox").selectOption("DropDownListBox");
|
|
@@ -326,7 +329,6 @@ class $dfc4ce40cbd0eb71$export$f8e64fcf447db2bf extends (0, $9626bc9256ce31f7$ex
|
|
|
326
329
|
}
|
|
327
330
|
await this.page.locator(".variable-value select").type(defaultValue);
|
|
328
331
|
if (required) await this.page.getByRole("checkbox").check();
|
|
329
|
-
else await this.page.getByRole("checkbox").uncheck();
|
|
330
332
|
}
|
|
331
333
|
async selectVariablePasswordType(possiblevalue) {
|
|
332
334
|
await this.page.getByRole("combobox").selectOption("PasswordStringVariable");
|
|
@@ -351,9 +353,10 @@ class $dfc4ce40cbd0eb71$export$f8e64fcf447db2bf extends (0, $9626bc9256ce31f7$ex
|
|
|
351
353
|
exact: true
|
|
352
354
|
}).click();
|
|
353
355
|
}
|
|
354
|
-
async
|
|
356
|
+
async selectVariableByDate(date, monthYear) {
|
|
355
357
|
await this.page.getByRole("combobox").selectOption("DateVariable");
|
|
356
358
|
await this.page.getByText("Select date").click();
|
|
359
|
+
await this.setDate(date, monthYear);
|
|
357
360
|
}
|
|
358
361
|
async setDate(date, monthYear) {
|
|
359
362
|
await this.dateUtil.setDate(date, monthYear);
|
|
@@ -431,12 +434,21 @@ class $dfc4ce40cbd0eb71$export$f8e64fcf447db2bf extends (0, $9626bc9256ce31f7$ex
|
|
|
431
434
|
if (required) await this.page.getByRole("checkbox").check();
|
|
432
435
|
else await this.page.getByRole("checkbox").uncheck();
|
|
433
436
|
}
|
|
437
|
+
async clickMultiline() {
|
|
438
|
+
await this.page.locator("#multiline").click();
|
|
439
|
+
}
|
|
434
440
|
async searchFolderVariable(variableName) {
|
|
435
441
|
await this.page.locator(".searchFilter").fill(variableName);
|
|
436
442
|
}
|
|
437
443
|
async clearFolderVarSearch() {
|
|
438
444
|
await this.page.locator(".searchFilter").clear();
|
|
439
445
|
}
|
|
446
|
+
async clickFolderVariableButton() {
|
|
447
|
+
await this.page.getByText("Folder variables").click();
|
|
448
|
+
}
|
|
449
|
+
async clickReleaseVariableButton() {
|
|
450
|
+
await this.page.getByText("Release variables").click();
|
|
451
|
+
}
|
|
440
452
|
}
|
|
441
453
|
class $dfc4ce40cbd0eb71$var$VariableModal extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
442
454
|
constructor(page){
|
|
@@ -548,6 +560,9 @@ class $dfc4ce40cbd0eb71$var$VariableModal extends (0, $9626bc9256ce31f7$export$2
|
|
|
548
560
|
async setValue(value) {
|
|
549
561
|
await this.page.locator(".variable-value input").fill(value);
|
|
550
562
|
}
|
|
563
|
+
async clearValue() {
|
|
564
|
+
await this.page.locator(".variable-value input").clear();
|
|
565
|
+
}
|
|
551
566
|
async clickMultiline() {
|
|
552
567
|
await this.page.locator("#multiline").click();
|
|
553
568
|
}
|
|
@@ -763,9 +778,21 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
|
|
|
763
778
|
async setVariable(propertyName, variableName) {
|
|
764
779
|
await this.railLocator.locator(`input[id="${propertyName}"]`).fill(variableName);
|
|
765
780
|
}
|
|
781
|
+
async expectVariable(propertyName) {
|
|
782
|
+
await (0, $hOLA6$expect)(this.railLocator.locator(`input[id="${propertyName}"]`)).toBeVisible();
|
|
783
|
+
}
|
|
766
784
|
async expectValueFromString(propertyName, propertyValue) {
|
|
767
785
|
return await (0, $hOLA6$expect)(this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`)).toHaveText(propertyValue);
|
|
768
786
|
}
|
|
787
|
+
async expectTo(value) {
|
|
788
|
+
return await (0, $hOLA6$expect)(this.railLocator.getByTestId(`dot-autocomplete-chip`)).toHaveText(value);
|
|
789
|
+
}
|
|
790
|
+
async expectSubjectToBe(value) {
|
|
791
|
+
return (0, $hOLA6$expect)(await this.page.locator("#notification-subject").getAttribute("value")).toContain(value);
|
|
792
|
+
}
|
|
793
|
+
async expectBodyToBe(value) {
|
|
794
|
+
return await (0, $hOLA6$expect)(this.page.locator(".notification-body-field p")).toHaveText(value);
|
|
795
|
+
}
|
|
769
796
|
async setValueFromMap(propertyName, key, value) {
|
|
770
797
|
await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] button.add-new-button`).click();
|
|
771
798
|
await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] input[id="new-row-key-input"]`).fill(key);
|
|
@@ -853,21 +880,29 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
|
|
|
853
880
|
}).click();
|
|
854
881
|
}
|
|
855
882
|
}
|
|
856
|
-
async
|
|
883
|
+
async validateAutoCompleteOptionsInDescription(descriptionName, expectedVariableCount, variableToSelection) {
|
|
857
884
|
await this.page.getByLabel("Double-click to edit").waitFor({
|
|
858
885
|
timeout: 10000
|
|
859
886
|
});
|
|
860
887
|
await this.page.getByLabel("Double-click to edit").hover();
|
|
861
888
|
await this.page.locator(".markdown-viewer-actions").getByTestId("edit-button").click();
|
|
862
889
|
await this.page.locator("#task-description-input").fill(descriptionName);
|
|
863
|
-
await (0, $hOLA6$expect)(this.page.locator(".dot-popper-content-wrapper .option-name")).toHaveCount(
|
|
864
|
-
await this.page.locator(".dot-popper-content-wrapper .option-name").filter({
|
|
865
|
-
hasText:
|
|
890
|
+
await (0, $hOLA6$expect)(this.page.locator(".dot-popper-content-wrapper .option-name")).toHaveCount(expectedVariableCount);
|
|
891
|
+
if (variableToSelection) await this.page.locator(".dot-popper-content-wrapper .option-name").filter({
|
|
892
|
+
hasText: variableToSelection
|
|
866
893
|
}).click();
|
|
867
894
|
await this.page.getByRole("button", {
|
|
868
895
|
name: "Save"
|
|
869
896
|
}).click();
|
|
870
|
-
|
|
897
|
+
}
|
|
898
|
+
// eslint-disable-next-line max-params
|
|
899
|
+
async validateAutoCompleteOptions(fieldLabel, value, expectedVariableCount, variableToSelect) {
|
|
900
|
+
await this.page.getByLabel(fieldLabel).click();
|
|
901
|
+
await this.page.getByLabel(fieldLabel).fill(value);
|
|
902
|
+
await (0, $hOLA6$expect)(this.page.getByRole("option")).toHaveCount(expectedVariableCount);
|
|
903
|
+
if (variableToSelect) await this.page.getByRole("option", {
|
|
904
|
+
name: variableToSelect
|
|
905
|
+
}).click();
|
|
871
906
|
}
|
|
872
907
|
async setReleaseTitle(releaseName) {
|
|
873
908
|
await this.page.getByLabel("Release title *").fill(releaseName);
|
|
@@ -947,6 +982,51 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
|
|
|
947
982
|
name: "Abort"
|
|
948
983
|
}).isVisible()).toBe(visible);
|
|
949
984
|
}
|
|
985
|
+
async setPattern(patternName) {
|
|
986
|
+
await this.page.locator("#patternId").click();
|
|
987
|
+
await this.page.locator("#patternId").fill(patternName);
|
|
988
|
+
await this.page.getByRole("option", {
|
|
989
|
+
name: patternName
|
|
990
|
+
}).click();
|
|
991
|
+
}
|
|
992
|
+
async setStartDate(date) {
|
|
993
|
+
await this.page.locator("#startDate").click();
|
|
994
|
+
await this.page.locator("#startDate").fill(date);
|
|
995
|
+
}
|
|
996
|
+
async setEndDate(date) {
|
|
997
|
+
await this.page.locator("#endDate").click();
|
|
998
|
+
await this.page.locator("#endDate").fill(date);
|
|
999
|
+
}
|
|
1000
|
+
async clickVariableButton(objectID, variableValue) {
|
|
1001
|
+
await this.page.locator(`div[data-testid="${objectID}"] .icon-variable`).click();
|
|
1002
|
+
await this.page.locator(`#${objectID}`).fill(variableValue);
|
|
1003
|
+
await this.page.getByRole("option", {
|
|
1004
|
+
name: variableValue
|
|
1005
|
+
}).click();
|
|
1006
|
+
}
|
|
1007
|
+
async enableFallback() {
|
|
1008
|
+
await this.page.getByLabel("Fallback").check();
|
|
1009
|
+
}
|
|
1010
|
+
async expectDescription(description) {
|
|
1011
|
+
await (0, $hOLA6$expect)(this.page.getByTestId("dot-accordion-details")).toHaveText(description);
|
|
1012
|
+
}
|
|
1013
|
+
async editDescription(description) {
|
|
1014
|
+
await this.page.getByLabel("Double-click to edit").waitFor({
|
|
1015
|
+
timeout: 10000
|
|
1016
|
+
});
|
|
1017
|
+
await this.page.getByLabel("Double-click to edit").hover();
|
|
1018
|
+
await this.page.locator(".markdown-viewer-actions").getByTestId("edit-button").click();
|
|
1019
|
+
await this.page.locator("#task-description-input").clear();
|
|
1020
|
+
await this.page.locator("#task-description-input").fill(description);
|
|
1021
|
+
await this.page.getByRole("button", {
|
|
1022
|
+
name: "Save"
|
|
1023
|
+
}).click();
|
|
1024
|
+
}
|
|
1025
|
+
async expectedGateConditionDisplayed(title) {
|
|
1026
|
+
await (0, $hOLA6$expect)(this.page.locator(".gate-task-condition-input").filter({
|
|
1027
|
+
hasText: title
|
|
1028
|
+
})).toBeVisible();
|
|
1029
|
+
}
|
|
950
1030
|
}
|
|
951
1031
|
class $90bb70a7e909e500$export$fbbf45eff21470e3 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
952
1032
|
constructor(page){
|
|
@@ -958,18 +1038,15 @@ class $90bb70a7e909e500$export$fbbf45eff21470e3 extends (0, $9626bc9256ce31f7$ex
|
|
|
958
1038
|
}
|
|
959
1039
|
async getRelease() {
|
|
960
1040
|
await this.release.isVisible();
|
|
961
|
-
|
|
962
|
-
return releaseValue;
|
|
1041
|
+
return await this.release.getAttribute("value");
|
|
963
1042
|
}
|
|
964
1043
|
async getPhase() {
|
|
965
1044
|
await this.phase.isVisible();
|
|
966
|
-
|
|
967
|
-
return phaseValue;
|
|
1045
|
+
return await this.phase.getAttribute("value");
|
|
968
1046
|
}
|
|
969
1047
|
async getTask() {
|
|
970
1048
|
await this.task.isVisible();
|
|
971
|
-
|
|
972
|
-
return taskValue;
|
|
1049
|
+
return await this.task.getAttribute("value");
|
|
973
1050
|
}
|
|
974
1051
|
async setRelease(releaseTitle) {
|
|
975
1052
|
await this.release.click();
|
|
@@ -1013,8 +1090,8 @@ class $90bb70a7e909e500$export$fbbf45eff21470e3 extends (0, $9626bc9256ce31f7$ex
|
|
|
1013
1090
|
}
|
|
1014
1091
|
async expectVariableModeEnabled(mode) {
|
|
1015
1092
|
await (0, $hOLA6$expect)(this.dependencyLocator.getByLabel("input-variable")).toBeVisible();
|
|
1016
|
-
const
|
|
1017
|
-
(0, $hOLA6$expect)(
|
|
1093
|
+
const variableMode = await this.dependencyLocator.getByLabel("input-variable").getAttribute("aria-pressed");
|
|
1094
|
+
(0, $hOLA6$expect)(variableMode).toBe("" + mode + "");
|
|
1018
1095
|
}
|
|
1019
1096
|
async clickVariable() {
|
|
1020
1097
|
await this.dependencyLocator.getByLabel("input-variable").waitFor();
|
|
@@ -1028,15 +1105,15 @@ class $90bb70a7e909e500$export$fbbf45eff21470e3 extends (0, $9626bc9256ce31f7$ex
|
|
|
1028
1105
|
(0, $hOLA6$expect)(options[i]).toContain(option);
|
|
1029
1106
|
}
|
|
1030
1107
|
}
|
|
1031
|
-
async enterNewVariable(
|
|
1108
|
+
async enterNewVariable(variableName) {
|
|
1032
1109
|
await this.page.getByLabel("Please select a variable of").click();
|
|
1033
|
-
await this.page.getByLabel("Please select a variable of").fill(
|
|
1110
|
+
await this.page.getByLabel("Please select a variable of").fill(variableName);
|
|
1034
1111
|
await this.page.getByTestId("dot-action-item-btn").click();
|
|
1035
1112
|
}
|
|
1036
|
-
async selectVariable(
|
|
1113
|
+
async selectVariable(variableName) {
|
|
1037
1114
|
await this.page.getByLabel("Please select a variable of").click();
|
|
1038
1115
|
await this.page.getByRole("option", {
|
|
1039
|
-
name:
|
|
1116
|
+
name: variableName
|
|
1040
1117
|
}).click();
|
|
1041
1118
|
}
|
|
1042
1119
|
}
|
|
@@ -1045,11 +1122,11 @@ class $90bb70a7e909e500$export$fbbf45eff21470e3 extends (0, $9626bc9256ce31f7$ex
|
|
|
1045
1122
|
|
|
1046
1123
|
|
|
1047
1124
|
class $69e86f559cdf2bd0$export$15d3f9b095bb5188 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1048
|
-
async expectCommentToContain(
|
|
1049
|
-
|
|
1125
|
+
async expectCommentToContain(comment) {
|
|
1126
|
+
(0, $hOLA6$expect)(await this.page.locator(".markdown-wrapper").textContent()).toContain(comment);
|
|
1050
1127
|
}
|
|
1051
1128
|
async expectTaskIsCommentable(isCommentable) {
|
|
1052
|
-
(0, $hOLA6$expect)(await this.page.locator("#task-comment").count()).toBe(isCommentable ? 1 : 0);
|
|
1129
|
+
return (0, $hOLA6$expect)(await this.page.locator("#task-comment").count()).toBe(isCommentable ? 1 : 0);
|
|
1053
1130
|
}
|
|
1054
1131
|
}
|
|
1055
1132
|
|
|
@@ -1107,9 +1184,12 @@ class $9c357602b6f466e7$export$aa59788fdecae2f2 extends (0, $9626bc9256ce31f7$ex
|
|
|
1107
1184
|
|
|
1108
1185
|
|
|
1109
1186
|
|
|
1110
|
-
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
class $499d3d8c8706756b$export$e3515314c13bc477 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1111
1190
|
constructor(page){
|
|
1112
1191
|
super(page);
|
|
1192
|
+
this.dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(page);
|
|
1113
1193
|
}
|
|
1114
1194
|
async expectStartDateToBeDisplayed() {
|
|
1115
1195
|
(0, $hOLA6$expect)(await this.page.locator(".flex-section.column").filter({
|
|
@@ -1121,6 +1201,66 @@ class $499d3d8c8706756b$export$b7be47b40aa877fc extends (0, $9626bc9256ce31f7$ex
|
|
|
1121
1201
|
hasText: "End Date"
|
|
1122
1202
|
}).locator(".task-date-view-content").isVisible()).toBe(true);
|
|
1123
1203
|
}
|
|
1204
|
+
async switchWaitForScheduledDate() {
|
|
1205
|
+
await this.page.locator(".wait-for-start input").click();
|
|
1206
|
+
}
|
|
1207
|
+
async expectWaitForScheduledDateToBeChecked() {
|
|
1208
|
+
await (0, $hOLA6$expect)(this.page.locator(".wait-for-start input")).toBeChecked();
|
|
1209
|
+
}
|
|
1210
|
+
async expectWaitForScheduledDateToBeUnchecked() {
|
|
1211
|
+
await (0, $hOLA6$expect)(this.page.locator(".wait-for-start input")).not.toBeChecked();
|
|
1212
|
+
}
|
|
1213
|
+
async setDueTime(day, hour, minute) {
|
|
1214
|
+
await this.page.locator(".duration-view-content").click();
|
|
1215
|
+
if (day) {
|
|
1216
|
+
await this.page.locator("#days").clear();
|
|
1217
|
+
await this.page.locator("#days").fill(day);
|
|
1218
|
+
}
|
|
1219
|
+
if (hour) {
|
|
1220
|
+
await this.page.locator("#hours").clear();
|
|
1221
|
+
await this.page.locator("#hours").fill(hour);
|
|
1222
|
+
}
|
|
1223
|
+
if (minute) {
|
|
1224
|
+
await this.page.locator("#minutes").clear();
|
|
1225
|
+
await this.page.locator("#minutes").fill(minute);
|
|
1226
|
+
}
|
|
1227
|
+
await this.page.getByTestId("save-button").click();
|
|
1228
|
+
}
|
|
1229
|
+
async setStartDate(date, monthYear) {
|
|
1230
|
+
await this.page.locator(".flex-section.column").filter({
|
|
1231
|
+
hasText: "Start date"
|
|
1232
|
+
}).locator(".task-date").waitFor({
|
|
1233
|
+
timeout: 10000
|
|
1234
|
+
});
|
|
1235
|
+
await this.page.locator(".flex-section.column").filter({
|
|
1236
|
+
hasText: "Start date"
|
|
1237
|
+
}).locator(".task-date").click();
|
|
1238
|
+
await this.setDate(date, monthYear);
|
|
1239
|
+
}
|
|
1240
|
+
async setEndDate(date, monthYear) {
|
|
1241
|
+
await this.page.locator(".flex-section.column").filter({
|
|
1242
|
+
hasText: "End date"
|
|
1243
|
+
}).locator(".task-date").waitFor({
|
|
1244
|
+
timeout: 10000
|
|
1245
|
+
});
|
|
1246
|
+
await this.page.locator(".flex-section.column").filter({
|
|
1247
|
+
hasText: "End date"
|
|
1248
|
+
}).locator(".task-date").click();
|
|
1249
|
+
await this.setDate(date, monthYear);
|
|
1250
|
+
}
|
|
1251
|
+
async setDate(date, monthYear) {
|
|
1252
|
+
const prev = this.page.getByTestId("ArrowLeftIcon");
|
|
1253
|
+
const next = this.page.getByTestId("ArrowRightIcon");
|
|
1254
|
+
const monYear = this.page.locator(".MuiPickersCalendarHeader-label");
|
|
1255
|
+
const currentDate = await monYear.textContent();
|
|
1256
|
+
const thisMonth = (0, $hOLA6$moment)(monthYear, "MMMM YYYY").isBefore(currentDate);
|
|
1257
|
+
while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
|
|
1258
|
+
else await next.click();
|
|
1259
|
+
await this.page.getByRole("gridcell", {
|
|
1260
|
+
name: "" + date + "",
|
|
1261
|
+
exact: true
|
|
1262
|
+
}).first().click();
|
|
1263
|
+
}
|
|
1124
1264
|
}
|
|
1125
1265
|
|
|
1126
1266
|
|
|
@@ -1139,6 +1279,8 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
|
|
|
1139
1279
|
this.config = new (0, $e44e9af564fb00f7$export$64c93bc7fb9ca44e)(page);
|
|
1140
1280
|
this.condition = new (0, $3fa741329d8067d5$export$d4865631ba74f3e2)(page);
|
|
1141
1281
|
this.overview = new (0, $90bb70a7e909e500$export$519356f6c50361f7)(page);
|
|
1282
|
+
this.scheduling = new (0, $499d3d8c8706756b$export$e3515314c13bc477)(page);
|
|
1283
|
+
this.startButton = this.page.getByTestId("single-action-button");
|
|
1142
1284
|
this.skipMenu = this.page.getByRole("menuitem", {
|
|
1143
1285
|
name: "Skip"
|
|
1144
1286
|
});
|
|
@@ -1162,7 +1304,7 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
|
|
|
1162
1304
|
}
|
|
1163
1305
|
async openSchedulingRail() {
|
|
1164
1306
|
await this.openRail("Scheduling");
|
|
1165
|
-
return new (0, $499d3d8c8706756b$export$
|
|
1307
|
+
return new (0, $499d3d8c8706756b$export$e3515314c13bc477)(this.page);
|
|
1166
1308
|
}
|
|
1167
1309
|
async openConditionRail() {
|
|
1168
1310
|
await this.openRail("Conditions");
|
|
@@ -1208,6 +1350,12 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
|
|
|
1208
1350
|
async expectTaskTitle(taskTitle) {
|
|
1209
1351
|
await (0, $hOLA6$expect)(this.page.locator(".task-drawer .task-title-input .dot-view-mode-typography")).toContainText(taskTitle);
|
|
1210
1352
|
}
|
|
1353
|
+
async setTitle(title) {
|
|
1354
|
+
await this.page.getByTestId("task-title-input-view-mode-typography").click();
|
|
1355
|
+
await this.page.getByTestId("task-title-input-input").clear();
|
|
1356
|
+
await this.page.getByTestId("task-title-input-input").fill(title);
|
|
1357
|
+
await this.page.getByTestId("task-title-input-input").press("Enter");
|
|
1358
|
+
}
|
|
1211
1359
|
async expectTypeToContain(taskType) {
|
|
1212
1360
|
await (0, $hOLA6$expect)(this.page.locator(".task-drawer .task-type")).toContainText(taskType);
|
|
1213
1361
|
}
|
|
@@ -1232,26 +1380,16 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
|
|
|
1232
1380
|
name: username
|
|
1233
1381
|
})).toBeVisible();
|
|
1234
1382
|
}
|
|
1235
|
-
async
|
|
1236
|
-
await (0, $hOLA6$expect)(this.
|
|
1237
|
-
|
|
1238
|
-
async startNow(comment) {
|
|
1239
|
-
await this.page.getByTestId("single-action-button").click();
|
|
1240
|
-
await this.page.getByTestId("task-action-comment").fill(comment);
|
|
1241
|
-
await this.page.getByTestId("dot-button").click();
|
|
1242
|
-
await (0, $hOLA6$expect)(this.page.getByTestId("single-action-button")).not.toBeVisible();
|
|
1243
|
-
}
|
|
1244
|
-
async expectCommentsToContain(text) {
|
|
1245
|
-
await (0, $hOLA6$expect)(this.page.locator(".task-comment-body .markdown-wrapper p")).toContainText(text);
|
|
1383
|
+
async expectStartButtonToBeEnabled(isEnabled = true) {
|
|
1384
|
+
if (isEnabled) await (0, $hOLA6$expect)(this.startButton).toBeEnabled();
|
|
1385
|
+
else await (0, $hOLA6$expect)(this.startButton).not.toBeEnabled();
|
|
1246
1386
|
}
|
|
1247
|
-
async
|
|
1248
|
-
await this.
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
await
|
|
1252
|
-
|
|
1253
|
-
async expectWaitForScheduledDateToBeUnchecked() {
|
|
1254
|
-
await (0, $hOLA6$expect)(this.page.locator(".wait-for-start input")).not.toBeChecked();
|
|
1387
|
+
async startTask(comment) {
|
|
1388
|
+
await this.startButton.click();
|
|
1389
|
+
await this.completeButton.click();
|
|
1390
|
+
await this.commentBox.fill(comment);
|
|
1391
|
+
await this.completeButton.click();
|
|
1392
|
+
await (0, $hOLA6$expect)(this.startButton).not.toBeVisible();
|
|
1255
1393
|
}
|
|
1256
1394
|
// Other locators are flaky and it can be replaced if we get locator change in the frontend
|
|
1257
1395
|
async clickOnStartDate() {
|
|
@@ -1311,10 +1449,12 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
|
|
|
1311
1449
|
|
|
1312
1450
|
|
|
1313
1451
|
|
|
1452
|
+
|
|
1314
1453
|
class $a546aadb4e6fa16a$export$5a82be0a2a261cc6 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1315
1454
|
constructor(page){
|
|
1316
1455
|
super(page);
|
|
1317
1456
|
this.releaseHeader = this.page.locator(".release-header");
|
|
1457
|
+
this.taskDrawer = new (0, $8e39246218b802fc$export$e946776eae644790)(page);
|
|
1318
1458
|
}
|
|
1319
1459
|
async enableShowDates() {
|
|
1320
1460
|
await this.page.locator("#toggleIsDatesColumnsShown").check();
|
|
@@ -1328,6 +1468,105 @@ class $a546aadb4e6fa16a$export$5a82be0a2a261cc6 extends (0, $9626bc9256ce31f7$ex
|
|
|
1328
1468
|
async expectPlanningDateColumnsShown() {
|
|
1329
1469
|
(0, $hOLA6$expect)(await this.page.locator(`#gantt .gantt_grid_data .gantt_row`).first().locator(`.gantt_cell`).count()).toEqual(4);
|
|
1330
1470
|
}
|
|
1471
|
+
async expectReleaseOnBreadcrumb(title) {
|
|
1472
|
+
await (0, $hOLA6$expect)(this.page.getByRole("link", {
|
|
1473
|
+
name: title
|
|
1474
|
+
})).toBeVisible();
|
|
1475
|
+
}
|
|
1476
|
+
async expectPhaseDisplayed(phaseName) {
|
|
1477
|
+
await (0, $hOLA6$expect)(this.page.getByTitle(phaseName, {
|
|
1478
|
+
exact: true
|
|
1479
|
+
})).toBeVisible();
|
|
1480
|
+
}
|
|
1481
|
+
async expectTaskDisplayed(taskName, isDisplayed = true) {
|
|
1482
|
+
if (isDisplayed) await (0, $hOLA6$expect)(this.page.getByTitle(taskName)).toBeVisible();
|
|
1483
|
+
else await (0, $hOLA6$expect)(this.page.getByTitle(taskName)).not.toBeVisible();
|
|
1484
|
+
}
|
|
1485
|
+
async expandGanttTree(title) {
|
|
1486
|
+
return await this.page.locator(".gantt_cell").filter({
|
|
1487
|
+
hasText: title
|
|
1488
|
+
}).locator(".gantt_open").click();
|
|
1489
|
+
}
|
|
1490
|
+
async expectDifferentWidth(title1, title2) {
|
|
1491
|
+
const releaseWidth = await this.page.locator(`.gantt_task_content`).getByText(title1, {
|
|
1492
|
+
exact: true
|
|
1493
|
+
}).getAttribute("style");
|
|
1494
|
+
const PhaseWidth = await this.page.locator(`.gantt_task_content`).getByText(title2, {
|
|
1495
|
+
exact: true
|
|
1496
|
+
}).getAttribute("style");
|
|
1497
|
+
return (0, $hOLA6$expect)(releaseWidth).not.toEqual(PhaseWidth);
|
|
1498
|
+
}
|
|
1499
|
+
async expectSameWidth(title1, title2) {
|
|
1500
|
+
const releaseWidth = await this.page.locator(`.gantt_task_content`).getByText(title1, {
|
|
1501
|
+
exact: true
|
|
1502
|
+
}).getAttribute("style");
|
|
1503
|
+
const PhaseWidth = await this.page.locator(`.gantt_task_content`).getByText(title2, {
|
|
1504
|
+
exact: true
|
|
1505
|
+
}).getAttribute("style");
|
|
1506
|
+
return (0, $hOLA6$expect)(releaseWidth).toEqual(PhaseWidth);
|
|
1507
|
+
}
|
|
1508
|
+
async expectElementWithClasses(title, classes) {
|
|
1509
|
+
const eleNumber = await this.page.locator(`.${classes.join(".")}`).locator(`.gantt_task_content`).getByText(title, {
|
|
1510
|
+
exact: true
|
|
1511
|
+
}).count();
|
|
1512
|
+
return (0, $hOLA6$expect)(eleNumber).toBe(1);
|
|
1513
|
+
}
|
|
1514
|
+
async resizeToDayIndex(title, index) {
|
|
1515
|
+
await this.page.locator(`#gantt .gantt_container .gantt_task_line`).filter({
|
|
1516
|
+
hasText: title
|
|
1517
|
+
}).click();
|
|
1518
|
+
await this.page.locator(`.gantt_task_line`).filter({
|
|
1519
|
+
hasText: title
|
|
1520
|
+
}).locator(`.gantt_task_drag.task_right`).hover();
|
|
1521
|
+
const objId = await this.page.locator(`.gantt_task_line`).filter({
|
|
1522
|
+
hasText: title
|
|
1523
|
+
}).getAttribute("task_id");
|
|
1524
|
+
await this.page.mouse.down();
|
|
1525
|
+
await this.page.locator(`div[task_id='${objId}']`).locator(".gantt_task_cell").nth(index).hover();
|
|
1526
|
+
await this.page.mouse.up();
|
|
1527
|
+
}
|
|
1528
|
+
async expectLinksToBeDisplayed(countOfLinks) {
|
|
1529
|
+
(0, $hOLA6$expect)(await this.page.locator(".gantt_task_link").count()).toEqual(countOfLinks);
|
|
1530
|
+
}
|
|
1531
|
+
async expectLeftHandleVisibility(title, visible) {
|
|
1532
|
+
const objId = await this.page.locator(`.gantt_task_line`).filter({
|
|
1533
|
+
hasText: title
|
|
1534
|
+
}).getAttribute("task_id");
|
|
1535
|
+
if (visible) {
|
|
1536
|
+
await this.page.locator("#gantt .gantt_container .gantt_task_line").filter({
|
|
1537
|
+
hasText: title
|
|
1538
|
+
}).hover();
|
|
1539
|
+
await (0, $hOLA6$expect)(this.page.locator("#gantt .gantt_container ").locator(`div[task_id="${objId}"].gantt-no-left-handle`)).not.toBeVisible();
|
|
1540
|
+
} else {
|
|
1541
|
+
await this.page.locator("#gantt .gantt_container .gantt_task_line").filter({
|
|
1542
|
+
hasText: title
|
|
1543
|
+
}).hover();
|
|
1544
|
+
await (0, $hOLA6$expect)(this.page.locator("#gantt .gantt_container ").locator(`div[task_id="${objId}"].gantt-no-left-handle`)).toBeVisible();
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
async expectRightHandleVisibility(title, visible) {
|
|
1548
|
+
const objId = await this.page.locator(`.gantt_task_line`).filter({
|
|
1549
|
+
hasText: title
|
|
1550
|
+
}).getAttribute("task_id");
|
|
1551
|
+
if (visible) {
|
|
1552
|
+
await this.page.locator("#gantt .gantt_container .gantt_task_line").filter({
|
|
1553
|
+
hasText: title
|
|
1554
|
+
}).hover();
|
|
1555
|
+
await (0, $hOLA6$expect)(this.page.locator("#gantt .gantt_container").locator(`div[task_id='${objId}'].gantt-no-right-handle`)).not.toBeVisible();
|
|
1556
|
+
} else {
|
|
1557
|
+
await this.page.locator("#gantt .gantt_container .gantt_task_line").filter({
|
|
1558
|
+
hasText: title
|
|
1559
|
+
}).hover();
|
|
1560
|
+
await (0, $hOLA6$expect)(this.page.locator("#gantt .gantt_container").locator(`div[task_id='${objId}'].gantt-no-right-handle`)).toBeVisible();
|
|
1561
|
+
}
|
|
1562
|
+
}
|
|
1563
|
+
async openTaskDrawer(title) {
|
|
1564
|
+
await this.page.getByTitle(title).dblclick();
|
|
1565
|
+
return this.taskDrawer;
|
|
1566
|
+
}
|
|
1567
|
+
async openPhaseDetails(phaseName) {
|
|
1568
|
+
await this.page.getByTitle(phaseName).dblclick();
|
|
1569
|
+
}
|
|
1331
1570
|
getRow(phaseName) {
|
|
1332
1571
|
return new $a546aadb4e6fa16a$var$GanttRow(this.page, phaseName);
|
|
1333
1572
|
}
|
|
@@ -1361,20 +1600,20 @@ class $a546aadb4e6fa16a$var$GanttRow extends (0, $9626bc9256ce31f7$export$2b65d1
|
|
|
1361
1600
|
await this.dateUtil.setDate(date, monthYear);
|
|
1362
1601
|
}
|
|
1363
1602
|
async expectStartDateToBe(date) {
|
|
1364
|
-
const dateTimePicker =
|
|
1365
|
-
this.dateUtil.expectDateToBe(dateTimePicker, date);
|
|
1603
|
+
const dateTimePicker = this.getFirstDate();
|
|
1604
|
+
await this.dateUtil.expectDateToBe(await dateTimePicker, date);
|
|
1366
1605
|
}
|
|
1367
1606
|
async expectEndDateToBe(date) {
|
|
1368
|
-
const dateTimePicker =
|
|
1369
|
-
this.dateUtil.expectDateToBe(dateTimePicker, date);
|
|
1607
|
+
const dateTimePicker = this.getLastDate();
|
|
1608
|
+
await this.dateUtil.expectDateToBe(await dateTimePicker, date);
|
|
1370
1609
|
}
|
|
1371
1610
|
async removeStartDate() {
|
|
1372
1611
|
const dateTimePicker = await this.getFirstDateEditor();
|
|
1373
1612
|
await this.dateUtil.removeDate(dateTimePicker);
|
|
1374
1613
|
}
|
|
1375
1614
|
async removeEndDate() {
|
|
1376
|
-
const dateTimePicker =
|
|
1377
|
-
await this.dateUtil.removeDate(dateTimePicker);
|
|
1615
|
+
const dateTimePicker = this.getLastDateEditor();
|
|
1616
|
+
await this.dateUtil.removeDate(await dateTimePicker);
|
|
1378
1617
|
}
|
|
1379
1618
|
async expectStartDateToBeInferred() {
|
|
1380
1619
|
const dateTimePicker = await this.getFirstDateEditor();
|
|
@@ -1420,6 +1659,7 @@ class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$ex
|
|
|
1420
1659
|
await this.page.locator("#release-form-title").fill(name);
|
|
1421
1660
|
}
|
|
1422
1661
|
async setDescription(description) {
|
|
1662
|
+
await this.page.locator(".task-description").hover();
|
|
1423
1663
|
await this.page.locator(".display > .xl-icon").first().click();
|
|
1424
1664
|
await this.page.locator("textarea").click();
|
|
1425
1665
|
await this.page.locator("textarea").clear();
|
|
@@ -1592,6 +1832,35 @@ class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$ex
|
|
|
1592
1832
|
async expectDescriptionToBe(description) {
|
|
1593
1833
|
(0, $hOLA6$expect)(await this.page.locator(".release-description p").textContent()).toContain(description);
|
|
1594
1834
|
}
|
|
1835
|
+
async expectReleaseNameToBe(name) {
|
|
1836
|
+
await (0, $hOLA6$expect)(this.page.locator('form[name="releasePropertiesForm"]')).toContainText("Properties for " + name);
|
|
1837
|
+
}
|
|
1838
|
+
async expectStartDateReadonly() {
|
|
1839
|
+
await (0, $hOLA6$expect)(this.page.locator("#release-properties .form-group").filter({
|
|
1840
|
+
hasText: "Start date"
|
|
1841
|
+
}).locator(".date-editor.readonly")).toBeVisible();
|
|
1842
|
+
}
|
|
1843
|
+
async expectEndDateReadonly() {
|
|
1844
|
+
await (0, $hOLA6$expect)(this.page.locator("#release-properties .form-group").filter({
|
|
1845
|
+
hasText: "End date"
|
|
1846
|
+
}).locator(".date-editor.readonly")).toBeVisible();
|
|
1847
|
+
}
|
|
1848
|
+
async setOwner(user) {
|
|
1849
|
+
await this.page.locator(".release-owner").click();
|
|
1850
|
+
await this.page.locator(".release-owner input").clear();
|
|
1851
|
+
await this.page.locator(".release-owner input").fill(user);
|
|
1852
|
+
}
|
|
1853
|
+
async expectPageTitleToBeInBreadcrumbLink(releaseName) {
|
|
1854
|
+
(0, $hOLA6$expect)(await this.page.locator(".dot-breadcrumbs a").allTextContents()).toContain(releaseName);
|
|
1855
|
+
}
|
|
1856
|
+
async reloadPage() {
|
|
1857
|
+
await this.page.reload({
|
|
1858
|
+
timeout: 3000
|
|
1859
|
+
});
|
|
1860
|
+
}
|
|
1861
|
+
async expectOwnerToBe(user) {
|
|
1862
|
+
await (0, $hOLA6$expect)(this.page.locator(".release-owner")).toContainText(user);
|
|
1863
|
+
}
|
|
1595
1864
|
}
|
|
1596
1865
|
|
|
1597
1866
|
|
|
@@ -1617,6 +1886,212 @@ class $96c6280ff1c47b81$export$3bc3e140e0dcb075 extends (0, $9626bc9256ce31f7$ex
|
|
|
1617
1886
|
|
|
1618
1887
|
|
|
1619
1888
|
|
|
1889
|
+
class $19b7e7e46cfe3be0$export$649fde34d823ece7 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1890
|
+
constructor(page){
|
|
1891
|
+
super(page);
|
|
1892
|
+
this.commentBox = this.page.locator(`.input-block-level`);
|
|
1893
|
+
this.dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(page);
|
|
1894
|
+
this.refreshButton = this.page.getByTestId("refresh-btn");
|
|
1895
|
+
this.taskDrawer = new (0, $8e39246218b802fc$export$e946776eae644790)(page);
|
|
1896
|
+
}
|
|
1897
|
+
async openContextMenuForTask(taskTitle) {
|
|
1898
|
+
await this.page.locator(".name-cell-wrapper").filter({
|
|
1899
|
+
hasText: taskTitle
|
|
1900
|
+
}).locator(".context-menu-button").click();
|
|
1901
|
+
}
|
|
1902
|
+
// eslint-disable-next-line max-params
|
|
1903
|
+
async callMenuOptionsForTask(taskTitle, option, taskGroup, taskType) {
|
|
1904
|
+
await this.openContextMenuForTask(taskTitle);
|
|
1905
|
+
await this.page.locator(".dropdown-menu li").getByText(option).click();
|
|
1906
|
+
if (await this.commentBox.isVisible()) await this.commentBox.fill(" Automation Test Comment");
|
|
1907
|
+
else if (await this.page.getByRole("heading", {
|
|
1908
|
+
name: "Change task type"
|
|
1909
|
+
}).isVisible()) {
|
|
1910
|
+
await this.page.getByPlaceholder("Start typing to filter task").click();
|
|
1911
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1912
|
+
// @ts-ignore
|
|
1913
|
+
await this.page.locator("#task-selector").fill(taskGroup);
|
|
1914
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1915
|
+
// @ts-ignore
|
|
1916
|
+
await this.page.getByTestId(taskType).click();
|
|
1917
|
+
}
|
|
1918
|
+
if (await this.page.getByRole("button", {
|
|
1919
|
+
name: option,
|
|
1920
|
+
exact: true
|
|
1921
|
+
}).isVisible()) await this.page.getByRole("button", {
|
|
1922
|
+
name: option,
|
|
1923
|
+
exact: true
|
|
1924
|
+
}).click();
|
|
1925
|
+
}
|
|
1926
|
+
async expectAssignToUser(taskTitle, username) {
|
|
1927
|
+
await this.refreshButton.click();
|
|
1928
|
+
(0, $hOLA6$expect)(await this.page.locator(".ui-grid-row").filter({
|
|
1929
|
+
hasText: taskTitle
|
|
1930
|
+
}).locator(`span[display-user="row.entity.planItem.owner"] span`).textContent()).toContain(username);
|
|
1931
|
+
}
|
|
1932
|
+
async expectToHasGateIcon(taskTitle) {
|
|
1933
|
+
await (0, $hOLA6$expect)(this.page.locator(".ui-grid-row").filter({
|
|
1934
|
+
hasText: taskTitle
|
|
1935
|
+
}).locator(".marker-check-icon")).toBeVisible();
|
|
1936
|
+
}
|
|
1937
|
+
async expectTaskRowCountToBe(title, expectedCount) {
|
|
1938
|
+
await this.refreshButton.click();
|
|
1939
|
+
(0, $hOLA6$expect)(await this.page.locator(".name-cell-title").filter({
|
|
1940
|
+
hasText: title
|
|
1941
|
+
}).count()).toBe(expectedCount);
|
|
1942
|
+
}
|
|
1943
|
+
async setHeaderFilter(columnTitle, valueToFilter) {
|
|
1944
|
+
const filter = this.page.locator(`.ui-grid-header-cell`).filter({
|
|
1945
|
+
hasText: columnTitle
|
|
1946
|
+
}).locator(`input`);
|
|
1947
|
+
await filter.clear();
|
|
1948
|
+
await filter.fill(valueToFilter);
|
|
1949
|
+
}
|
|
1950
|
+
async expectRowCountToBe(cellCount) {
|
|
1951
|
+
const cont = await this.page.locator(".ui-grid-canvas .name-cell").count();
|
|
1952
|
+
(0, $hOLA6$expect)(cont).toBe(cellCount);
|
|
1953
|
+
}
|
|
1954
|
+
async filterStartDate(date, monthYear) {
|
|
1955
|
+
await this.page.locator(`.ui-grid-header-cell`).filter({
|
|
1956
|
+
hasText: "Start Date"
|
|
1957
|
+
}).locator(`input`).click();
|
|
1958
|
+
await this.dateUtil.setDate(date, monthYear);
|
|
1959
|
+
}
|
|
1960
|
+
async filterEndDate(date, monthYear) {
|
|
1961
|
+
await this.page.locator(`.ui-grid-header-cell`).filter({
|
|
1962
|
+
hasText: "End Date"
|
|
1963
|
+
}).locator(`input`).click();
|
|
1964
|
+
await this.dateUtil.setDate(date, monthYear);
|
|
1965
|
+
}
|
|
1966
|
+
async openTaskDrawer(taskTitle) {
|
|
1967
|
+
await this.page.locator(".name-cell-title").filter({
|
|
1968
|
+
hasText: taskTitle
|
|
1969
|
+
}).click();
|
|
1970
|
+
return this.taskDrawer;
|
|
1971
|
+
}
|
|
1972
|
+
async collapseNthRowByIndex(Indexnumber) {
|
|
1973
|
+
await this.page.locator(".task-group-toggle .xl-icon.arrow-down-icon").nth(Indexnumber).click();
|
|
1974
|
+
}
|
|
1975
|
+
async closePhaseModal() {
|
|
1976
|
+
await this.page.locator("button[type='button'] i[class='xl-icon close-icon']").click();
|
|
1977
|
+
}
|
|
1978
|
+
async expectTaskToHaveStatus(taskTitle, status) {
|
|
1979
|
+
await this.refreshButton.click();
|
|
1980
|
+
(0, $hOLA6$expect)(await this.page.locator(".ui-grid-row").filter({
|
|
1981
|
+
hasText: taskTitle
|
|
1982
|
+
}).locator(".label ").textContent()).toContain(status);
|
|
1983
|
+
}
|
|
1984
|
+
async expectOverdueOnEndDate(taskTitle) {
|
|
1985
|
+
(0, $hOLA6$expect)(await this.page.locator(`.ui-grid-row`).filter({
|
|
1986
|
+
hasText: taskTitle
|
|
1987
|
+
}).locator(`i.xl-icon.delay-icon.overdue-icon`).isVisible()).toBe(true);
|
|
1988
|
+
}
|
|
1989
|
+
async selectTask(taskTitle) {
|
|
1990
|
+
await this.page.locator(`.ui-grid-cell-contents`).filter({
|
|
1991
|
+
hasText: taskTitle
|
|
1992
|
+
}).locator(`.item-selector`).click({
|
|
1993
|
+
force: true
|
|
1994
|
+
});
|
|
1995
|
+
}
|
|
1996
|
+
async expectSelectedTasksCounter(text) {
|
|
1997
|
+
await (0, $hOLA6$expect)(this.page.getByTestId("release-grid-selected-tasks")).toBeVisible();
|
|
1998
|
+
(0, $hOLA6$expect)(await this.page.getByTestId("release-grid-selected-tasks").textContent()).toContain(text);
|
|
1999
|
+
}
|
|
2000
|
+
async clearSelection() {
|
|
2001
|
+
await this.page.getByTestId("release-grid-unselect-btn").click();
|
|
2002
|
+
return this;
|
|
2003
|
+
}
|
|
2004
|
+
async assignSelectedTasks(owner, team) {
|
|
2005
|
+
await this.page.getByText("Assign to").click();
|
|
2006
|
+
if (owner) {
|
|
2007
|
+
const ownerSelector = this.page.locator(".task-owner");
|
|
2008
|
+
await ownerSelector.focus();
|
|
2009
|
+
await ownerSelector.click();
|
|
2010
|
+
await this.page.getByLabel("*").fill(owner);
|
|
2011
|
+
await this.page.locator("a").filter({
|
|
2012
|
+
hasText: owner
|
|
2013
|
+
}).click();
|
|
2014
|
+
}
|
|
2015
|
+
if (team) {
|
|
2016
|
+
const teamSelector = this.page.locator(".task-team > .display");
|
|
2017
|
+
await teamSelector.focus();
|
|
2018
|
+
await teamSelector.click();
|
|
2019
|
+
await this.page.getByLabel(team, {
|
|
2020
|
+
exact: true
|
|
2021
|
+
}).selectOption(team);
|
|
2022
|
+
}
|
|
2023
|
+
await this.page.getByRole("button", {
|
|
2024
|
+
name: "Assign"
|
|
2025
|
+
}).click();
|
|
2026
|
+
return this;
|
|
2027
|
+
}
|
|
2028
|
+
async expectSuccessMessage(successMessage) {
|
|
2029
|
+
await (0, $hOLA6$expect)(this.page.getByLabel("success")).toContainText(successMessage);
|
|
2030
|
+
return this;
|
|
2031
|
+
}
|
|
2032
|
+
async completeSelectedTasks(comment) {
|
|
2033
|
+
await this.page.getByTestId("release-grid-complete-btn").click();
|
|
2034
|
+
await this.page.getByPlaceholder("Give feedback or place a").fill(comment);
|
|
2035
|
+
await this.page.getByRole("button", {
|
|
2036
|
+
name: "Complete"
|
|
2037
|
+
}).click();
|
|
2038
|
+
return this;
|
|
2039
|
+
}
|
|
2040
|
+
async selectFromMoreActions(menuItem) {
|
|
2041
|
+
await this.page.getByTestId("release-grid-dropdown-btn").click();
|
|
2042
|
+
await this.page.getByRole("menuitem", {
|
|
2043
|
+
name: menuItem
|
|
2044
|
+
}).click();
|
|
2045
|
+
if (await this.commentBox.isVisible() == true) await this.commentBox.fill(" Automation Test Comment");
|
|
2046
|
+
if (await this.page.getByRole("button", {
|
|
2047
|
+
name: menuItem,
|
|
2048
|
+
exact: true
|
|
2049
|
+
}).isVisible() == true) await this.page.getByRole("button", {
|
|
2050
|
+
name: menuItem,
|
|
2051
|
+
exact: true
|
|
2052
|
+
}).click();
|
|
2053
|
+
return this;
|
|
2054
|
+
}
|
|
2055
|
+
async addCommentToSelectedTask(comment) {
|
|
2056
|
+
await this.page.getByTestId("release-grid-comment-btn").click();
|
|
2057
|
+
await this.page.getByPlaceholder("Give feedback or place a").click();
|
|
2058
|
+
await this.page.getByPlaceholder("Give feedback or place a").fill(comment);
|
|
2059
|
+
await this.page.getByRole("button", {
|
|
2060
|
+
name: "Comment"
|
|
2061
|
+
}).click();
|
|
2062
|
+
await (0, $hOLA6$expect)(this.page.getByLabel("success")).toBeVisible();
|
|
2063
|
+
return this;
|
|
2064
|
+
}
|
|
2065
|
+
async selectSubtasks(item) {
|
|
2066
|
+
await this.page.locator(`.ui-grid-cell-contents`).filter({
|
|
2067
|
+
hasText: item
|
|
2068
|
+
}).locator(`.tasks-group-select`).click({
|
|
2069
|
+
force: true
|
|
2070
|
+
});
|
|
2071
|
+
return this;
|
|
2072
|
+
}
|
|
2073
|
+
async shiftSelectFromTo(taskFrom, taskTo) {
|
|
2074
|
+
await this.page.locator(`.ui-grid-cell-contents`).filter({
|
|
2075
|
+
hasText: taskFrom
|
|
2076
|
+
}).locator(`.item-selector`).click({
|
|
2077
|
+
force: true
|
|
2078
|
+
});
|
|
2079
|
+
await this.page.keyboard.down("Shift");
|
|
2080
|
+
await this.page.locator(`.ui-grid-cell-contents`).filter({
|
|
2081
|
+
hasText: taskTo
|
|
2082
|
+
}).locator(`.item-selector`).click({
|
|
2083
|
+
force: true
|
|
2084
|
+
});
|
|
2085
|
+
await this.page.keyboard.up("Shift");
|
|
2086
|
+
return this;
|
|
2087
|
+
}
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
|
|
2091
|
+
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
|
|
1620
2095
|
class $87bbb6d35ad31a00$export$f8f26dd395d7e1bd extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1621
2096
|
constructor(page){
|
|
1622
2097
|
super(page);
|
|
@@ -1700,8 +2175,10 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1700
2175
|
defaultTimeout = 10000;
|
|
1701
2176
|
constructor(page){
|
|
1702
2177
|
super(page);
|
|
2178
|
+
this.addPhaseBtn = this.page.getByTestId("add-phase-btn");
|
|
1703
2179
|
this.createPage = new (0, $05d91a1d3381a287$export$34addcca3f0ae43f)(page);
|
|
1704
2180
|
this.ganttPage = new (0, $a546aadb4e6fa16a$export$5a82be0a2a261cc6)(page);
|
|
2181
|
+
this.tableView = new (0, $19b7e7e46cfe3be0$export$649fde34d823ece7)(page);
|
|
1705
2182
|
this.taskDrawer = new (0, $8e39246218b802fc$export$e946776eae644790)(page);
|
|
1706
2183
|
this.teamsPermissions = new (0, $96c6280ff1c47b81$export$3bc3e140e0dcb075)(page);
|
|
1707
2184
|
this.phaseTitle = this.page.locator(".phase .phase-title");
|
|
@@ -1721,6 +2198,7 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1721
2198
|
await this.page.getByRole("button", {
|
|
1722
2199
|
name: "Abort"
|
|
1723
2200
|
}).click();
|
|
2201
|
+
await this.page.locator(".progress-status-and-percentage").waitFor();
|
|
1724
2202
|
await (0, $hOLA6$expect)(this.page.locator(".progress-status-and-percentage")).toContainText("Aborted");
|
|
1725
2203
|
}
|
|
1726
2204
|
getPhase(phaseName) {
|
|
@@ -1744,6 +2222,7 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1744
2222
|
await this.page.getByRole("button", {
|
|
1745
2223
|
name: "Start"
|
|
1746
2224
|
}).click();
|
|
2225
|
+
await this.page.waitForSelector("#release");
|
|
1747
2226
|
}
|
|
1748
2227
|
async waitForCompletion(timeout = this.defaultTimeout) {
|
|
1749
2228
|
await this.page.locator("#release.completed").waitFor({
|
|
@@ -1757,6 +2236,13 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1757
2236
|
timeout: timeout
|
|
1758
2237
|
});
|
|
1759
2238
|
}
|
|
2239
|
+
async waitForTaskNeedsInput(taskTitle) {
|
|
2240
|
+
await (0, $hOLA6$expect)(this.page.locator(".task.waiting_for_input").getByText(taskTitle, {
|
|
2241
|
+
exact: true
|
|
2242
|
+
})).toBeVisible({
|
|
2243
|
+
timeout: 10000
|
|
2244
|
+
});
|
|
2245
|
+
}
|
|
1760
2246
|
async waitForTaskCompletedInAdvance(taskTitle, timeout = this.defaultTimeout) {
|
|
1761
2247
|
await (0, $hOLA6$expect)(this.page.locator(".task.completed_in_advance").getByText(taskTitle, {
|
|
1762
2248
|
exact: true
|
|
@@ -1941,6 +2427,10 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1941
2427
|
});
|
|
1942
2428
|
(0, $hOLA6$expect)(await this.page.locator(".progress-status-and-percentage").textContent()).toContain("Aborted");
|
|
1943
2429
|
}
|
|
2430
|
+
async expectInProgressStatusToBePresent() {
|
|
2431
|
+
await this.page.getByTestId("refresh-btn").click();
|
|
2432
|
+
(0, $hOLA6$expect)(await this.page.locator(".progress-status-and-percentage").textContent()).toContain("In progress");
|
|
2433
|
+
}
|
|
1944
2434
|
async openTableView() {
|
|
1945
2435
|
await this.util.openSideNavMenu("Table");
|
|
1946
2436
|
await (0, $hOLA6$expect)(this.page.locator(".release-grid-container")).toBeVisible();
|
|
@@ -1973,7 +2463,7 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1973
2463
|
})).toBeVisible();
|
|
1974
2464
|
}
|
|
1975
2465
|
async addNewPhase(phaseName) {
|
|
1976
|
-
await this.
|
|
2466
|
+
await this.addPhaseBtn.click();
|
|
1977
2467
|
if (phaseName) {
|
|
1978
2468
|
await this.phaseTitle.getByText("New Phase").click();
|
|
1979
2469
|
await this.phaseTitle.getByRole("textbox").clear();
|
|
@@ -2045,6 +2535,12 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
2045
2535
|
await this.page.getByTestId("restart-btn").click();
|
|
2046
2536
|
return new $43cbcdfccb6c2a76$var$RestartPhaseModel(this.page);
|
|
2047
2537
|
}
|
|
2538
|
+
async expectAddPhaseNotVisible() {
|
|
2539
|
+
await (0, $hOLA6$expect)(this.addPhaseBtn).not.toBeVisible();
|
|
2540
|
+
}
|
|
2541
|
+
async expectAddTaskNotVisible() {
|
|
2542
|
+
await (0, $hOLA6$expect)(this.page.locator(".add-task.link")).not.toBeVisible();
|
|
2543
|
+
}
|
|
2048
2544
|
}
|
|
2049
2545
|
class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
2050
2546
|
constructor(page, phaseName){
|
|
@@ -2137,6 +2633,23 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
|
|
|
2137
2633
|
exact: true
|
|
2138
2634
|
}).click();
|
|
2139
2635
|
}
|
|
2636
|
+
async completeFromContextMenu(taskTitle, comment) {
|
|
2637
|
+
await this.openContextMenuForTask(taskTitle);
|
|
2638
|
+
await this.page.locator(".dropdown-menu li").getByText("Complete").click();
|
|
2639
|
+
await this.commentBox.fill(comment);
|
|
2640
|
+
await this.page.getByRole("button", {
|
|
2641
|
+
name: "Complete",
|
|
2642
|
+
exact: true
|
|
2643
|
+
}).click();
|
|
2644
|
+
}
|
|
2645
|
+
async assignToMeFromContextMenu(taskTitle) {
|
|
2646
|
+
await this.openContextMenuForTask(taskTitle);
|
|
2647
|
+
await this.page.locator(".dropdown-menu li").getByText("Assign to me").click();
|
|
2648
|
+
}
|
|
2649
|
+
async duplicateFromContextMenu(taskTitle) {
|
|
2650
|
+
await this.openContextMenuForTask(taskTitle);
|
|
2651
|
+
await this.page.locator(".dropdown-menu li").getByText("Duplicate").click();
|
|
2652
|
+
}
|
|
2140
2653
|
async expectTemplateLabelNotToBePresent() {
|
|
2141
2654
|
await (0, $hOLA6$expect)(this.page.locator(".dot-chip").filter({
|
|
2142
2655
|
hasText: "TEMPLATE"
|
|
@@ -2215,7 +2728,15 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
|
|
|
2215
2728
|
})).not.toBeVisible();
|
|
2216
2729
|
}
|
|
2217
2730
|
async expectCompletedPhase() {
|
|
2218
|
-
await (0, $hOLA6$expect)(this.
|
|
2731
|
+
await (0, $hOLA6$expect)(this.page.getByText("View all completed phases")).toBeVisible();
|
|
2732
|
+
}
|
|
2733
|
+
async clickViewAllCompletedPhase() {
|
|
2734
|
+
await this.page.getByText("View all completed phases").click();
|
|
2735
|
+
}
|
|
2736
|
+
async expectTaskToBePresent(taskName) {
|
|
2737
|
+
await (0, $hOLA6$expect)(this.phaseLocator.locator(".task").filter({
|
|
2738
|
+
hasText: taskName
|
|
2739
|
+
})).toBeVisible();
|
|
2219
2740
|
}
|
|
2220
2741
|
}
|
|
2221
2742
|
class $43cbcdfccb6c2a76$var$RestartPhaseModel extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
@@ -2344,6 +2865,9 @@ class $4cdce1306be47ecd$export$eace2be4de1d3377 extends (0, $9626bc9256ce31f7$ex
|
|
|
2344
2865
|
hasText: "Deleted release delivery successfully"
|
|
2345
2866
|
})).toBeVisible();
|
|
2346
2867
|
}
|
|
2868
|
+
async expectDeliveryDisplayed(deliveryName) {
|
|
2869
|
+
(0, $hOLA6$expect)(await this.page.locator(".fc-list-item-title").textContent()).toContain(deliveryName);
|
|
2870
|
+
}
|
|
2347
2871
|
}
|
|
2348
2872
|
|
|
2349
2873
|
|
|
@@ -2890,6 +3414,14 @@ class $50c91328c9110668$export$b453f08936c58edb extends (0, $9626bc9256ce31f7$ex
|
|
|
2890
3414
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Variables")).toBeVisible();
|
|
2891
3415
|
return this.variables;
|
|
2892
3416
|
}
|
|
3417
|
+
async openCustomDashboard() {
|
|
3418
|
+
await this.util.openSideNavMenu("Custom dashboards");
|
|
3419
|
+
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Custom dashboards")).toBeVisible();
|
|
3420
|
+
}
|
|
3421
|
+
async openReleaseByName(releaseName) {
|
|
3422
|
+
await this.page.getByTitle(releaseName).click();
|
|
3423
|
+
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Flow")).toBeVisible();
|
|
3424
|
+
}
|
|
2893
3425
|
}
|
|
2894
3426
|
|
|
2895
3427
|
|
|
@@ -5486,6 +6018,7 @@ class $2cbb78eec86d0a9f$export$2edf430132ca35d0 extends (0, $9626bc9256ce31f7$ex
|
|
|
5486
6018
|
}
|
|
5487
6019
|
|
|
5488
6020
|
|
|
6021
|
+
|
|
5489
6022
|
class $e72552cbf941ecfa$export$b8a61e5c71402559 {
|
|
5490
6023
|
constructor(page){
|
|
5491
6024
|
this.page = page;
|
|
@@ -5510,6 +6043,7 @@ class $e72552cbf941ecfa$export$b8a61e5c71402559 {
|
|
|
5510
6043
|
this.releaseGroupPage = new (0, $cc2d15e53de5cef7$export$b6fbc3e67030138f)(page);
|
|
5511
6044
|
this.releaseGroupTimelinePage = new (0, $cc231ea61b77c7a2$export$1a0994e9c202d529)(page);
|
|
5512
6045
|
this.releaseListPage = new (0, $5359280e98d97ff9$export$a678525e79c4ccc4)(page);
|
|
6046
|
+
this.releaseGanttPage = new (0, $a546aadb4e6fa16a$export$5a82be0a2a261cc6)(page);
|
|
5513
6047
|
this.rolesPage = new (0, $208f399edeb35aa2$export$7a5b979a220f477c)(page);
|
|
5514
6048
|
this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
|
|
5515
6049
|
this.workflowCatalogPage = new (0, $2c7e9876d54521fb$export$5628dfd1b9e94785)(page);
|
|
@@ -5530,6 +6064,10 @@ class $e72552cbf941ecfa$export$b8a61e5c71402559 {
|
|
|
5530
6064
|
async openRelease(id) {
|
|
5531
6065
|
return this.openReleaseOrTemplate(id, true);
|
|
5532
6066
|
}
|
|
6067
|
+
async openPlannerView(releaseId) {
|
|
6068
|
+
await this.page.goto(`#/releases/${releaseId}/planner`);
|
|
6069
|
+
return new (0, $a546aadb4e6fa16a$export$5a82be0a2a261cc6)(this.page);
|
|
6070
|
+
}
|
|
5533
6071
|
async openApplicationsPage() {
|
|
5534
6072
|
return new (0, $c313b10398604df2$export$1533b625ec0c75e2)(this.page).goToApplicationsPage();
|
|
5535
6073
|
}
|
|
@@ -5737,7 +6275,9 @@ const $f86fbaaa8b4e8c61$export$45f0aca2596a2bb3 = function() {
|
|
|
5737
6275
|
processTasks(subTask, task, idx);
|
|
5738
6276
|
});
|
|
5739
6277
|
(0, $hOLA6$lodasheach)(task.templateVariables, function(variable, idx) {
|
|
5740
|
-
if (variable.value !== undefined)
|
|
6278
|
+
if (variable.value !== undefined) // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6279
|
+
// @ts-ignore
|
|
6280
|
+
(0, $hOLA6$lodashdefaults)(variable, getVariableEntity(variable.value, variable.key, task.id, idx));
|
|
5741
6281
|
});
|
|
5742
6282
|
(0, $hOLA6$lodasheach)(task.attachments, function(attachment, idx) {
|
|
5743
6283
|
attachment.type = ATTACHMENT_TYPE;
|
|
@@ -5808,7 +6348,9 @@ const $f86fbaaa8b4e8c61$export$45f0aca2596a2bb3 = function() {
|
|
|
5808
6348
|
attachment.id = `${release.id}/Attachment${index}`;
|
|
5809
6349
|
});
|
|
5810
6350
|
(0, $hOLA6$lodashforEach)(release.variables, function(variable, index) {
|
|
5811
|
-
if (variable.value !== undefined)
|
|
6351
|
+
if (variable.value !== undefined) // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6352
|
+
// @ts-ignore
|
|
6353
|
+
(0, $hOLA6$lodashdefaults)(variable, getVariableEntity(variable.value, variable.key, release.id, index));
|
|
5812
6354
|
if (variable.valueProvider) (0, $hOLA6$lodashdefaults)(variable.valueProvider, getValueProviderConfigurationEntity(variable.id));
|
|
5813
6355
|
});
|
|
5814
6356
|
(0, $hOLA6$lodashforEach)((0, $hOLA6$lodashtoPairs)(release.variableValues), function(keyValue, index) {
|
|
@@ -5865,6 +6407,7 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
5865
6407
|
folderIds = [];
|
|
5866
6408
|
usernames = [];
|
|
5867
6409
|
userProfiles = [];
|
|
6410
|
+
folderVariableIds = [];
|
|
5868
6411
|
constructor(request, page){
|
|
5869
6412
|
this.request = request;
|
|
5870
6413
|
this.page = page;
|
|
@@ -5916,18 +6459,26 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
5916
6459
|
folder.type = "xlrelease.Folder";
|
|
5917
6460
|
let teams = folder.teams;
|
|
5918
6461
|
delete folder.teams;
|
|
5919
|
-
|
|
5920
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */ const children = folder.children || [];
|
|
6462
|
+
const children = folder.children || [];
|
|
5921
6463
|
delete folder.children;
|
|
6464
|
+
const folderVariables = (folder.variables || []).map((variable)=>{
|
|
6465
|
+
variable.folderId = folder.id;
|
|
6466
|
+
return variable;
|
|
6467
|
+
});
|
|
6468
|
+
delete folder.variables;
|
|
5922
6469
|
const response = await this.doPost(`api/v1/folders/${parentId}`, folder);
|
|
5923
6470
|
// Add the folder ID to the list
|
|
5924
6471
|
this.folderIds.push(folder.id);
|
|
5925
6472
|
// If teams are provided, send a request to add teams to the folder
|
|
5926
6473
|
if (teams) {
|
|
5927
6474
|
teams = this.addSystemTeams(teams);
|
|
5928
|
-
|
|
5929
|
-
|
|
6475
|
+
return await this.doPost(`api/v1/folders/${folder.id}/teams`, teams);
|
|
6476
|
+
}
|
|
6477
|
+
if (children && children.length > 0) {
|
|
6478
|
+
await this.folderVariable(folderVariables);
|
|
6479
|
+
return await this.folder(children[0]);
|
|
5930
6480
|
}
|
|
6481
|
+
if (folderVariables && folderVariables.length > 0) return await this.folderVariable(folderVariables);
|
|
5931
6482
|
return response;
|
|
5932
6483
|
}
|
|
5933
6484
|
createFolder(folderJson) {
|
|
@@ -5936,6 +6487,18 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
5936
6487
|
folderJson
|
|
5937
6488
|
]);
|
|
5938
6489
|
}
|
|
6490
|
+
async folderVariable(variable) {
|
|
6491
|
+
// Flatten and process the variables
|
|
6492
|
+
const variables = [].concat(variable).flat()// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
6493
|
+
.map((variable)=>{
|
|
6494
|
+
variable.id = null;
|
|
6495
|
+
variable.type = variable.type || "xlrelease.StringVariable";
|
|
6496
|
+
variable.requiresValue = false;
|
|
6497
|
+
variable.showOnReleaseStart = false;
|
|
6498
|
+
return variable;
|
|
6499
|
+
});
|
|
6500
|
+
return await this.doPost("fixtures/folders/variables", variables);
|
|
6501
|
+
}
|
|
5939
6502
|
trigger(trigger) {
|
|
5940
6503
|
this.triggerIds.push(trigger.id);
|
|
5941
6504
|
return this.doPost("fixtures/trigger", trigger);
|
|
@@ -5949,6 +6512,9 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
5949
6512
|
globalRoles(rolePrincipals) {
|
|
5950
6513
|
return this.doPost(`api/v1/roles/${rolePrincipals.name}`, rolePrincipals);
|
|
5951
6514
|
}
|
|
6515
|
+
dashboard(dashboard) {
|
|
6516
|
+
return this.doPost("fixtures/dashboard", dashboard);
|
|
6517
|
+
}
|
|
5952
6518
|
deleteGlobalRole(roleName) {
|
|
5953
6519
|
return this.doDelete(`api/v1/roles/${roleName}`);
|
|
5954
6520
|
}
|
|
@@ -6025,6 +6591,17 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
6025
6591
|
deleteRiskProfile(riskProfileId) {
|
|
6026
6592
|
return this.doDelete(`fixtures/riskProfiles/${riskProfileId}`);
|
|
6027
6593
|
}
|
|
6594
|
+
// Release delivery pattern
|
|
6595
|
+
createDeliveryPattern(delivery, shouldResetPattern = true) {
|
|
6596
|
+
return this.doPost(`fixtures/deliveries/patterns/${shouldResetPattern}`, delivery);
|
|
6597
|
+
}
|
|
6598
|
+
// Release deliveries
|
|
6599
|
+
createDelivery(delivery) {
|
|
6600
|
+
return this.doPost("fixtures/deliveries", delivery);
|
|
6601
|
+
}
|
|
6602
|
+
deleteDelivery(delivery) {
|
|
6603
|
+
return this.doDelete(`fixtures/deliveries/${delivery}`);
|
|
6604
|
+
}
|
|
6028
6605
|
async cleanAll() {
|
|
6029
6606
|
for (const username of this.usernames)await this.deleteUser(username);
|
|
6030
6607
|
for (const userProfile of this.userProfiles)await this.deleteUserProfile(userProfile);
|