@digital-ai/devops-page-object-release 0.0.14 → 0.0.16
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 +20 -0
- package/dist/main.js +425 -11
- package/dist/main.js.map +1 -1
- package/dist/module.js +425 -11
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +95 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/module.js
CHANGED
|
@@ -2,8 +2,8 @@ import {test as $hOLA6$test, expect as $hOLA6$expect} from "@playwright/test";
|
|
|
2
2
|
import {execFile as $hOLA6$execFile} from "child_process";
|
|
3
3
|
import $hOLA6$lodashisNil from "lodash/isNil";
|
|
4
4
|
import {env as $hOLA6$env} from "process";
|
|
5
|
-
import {promises as $hOLA6$promises} from "fs";
|
|
6
5
|
import $hOLA6$moment from "moment";
|
|
6
|
+
import {promises as $hOLA6$promises} from "fs";
|
|
7
7
|
import $hOLA6$lodashisUndefined from "lodash/isUndefined";
|
|
8
8
|
import $hOLA6$lodasheach from "lodash/each";
|
|
9
9
|
import $hOLA6$lodashforEach from "lodash/forEach";
|
|
@@ -504,13 +504,18 @@ class $9c357602b6f466e7$export$aa59788fdecae2f2 extends (0, $9626bc9256ce31f7$ex
|
|
|
504
504
|
hasText: fileName
|
|
505
505
|
}).click();
|
|
506
506
|
await this.page.getByLabel("delete file").click();
|
|
507
|
+
await this.page.getByRole("button", {
|
|
508
|
+
name: "Delete"
|
|
509
|
+
}).waitFor({
|
|
510
|
+
state: "visible"
|
|
511
|
+
});
|
|
507
512
|
await this.page.getByRole("button", {
|
|
508
513
|
name: "Delete"
|
|
509
514
|
}).click();
|
|
510
515
|
}
|
|
511
516
|
async expectWithNoAttachment(tempFile) {
|
|
512
|
-
const test = await this.page.locator(".task-attachments-grid .file-item-text").
|
|
513
|
-
if (test) await (0, $hOLA6$expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toContainText(tempFile);
|
|
517
|
+
const test = await this.page.locator(".task-attachments-grid .file-item-text").count();
|
|
518
|
+
if (test > 0) await (0, $hOLA6$expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toContainText(tempFile);
|
|
514
519
|
else await (0, $hOLA6$expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toBeVisible();
|
|
515
520
|
}
|
|
516
521
|
}
|
|
@@ -591,11 +596,40 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
|
|
|
591
596
|
await this.page.locator(".icon-fullscreen-exit").click();
|
|
592
597
|
await (0, $hOLA6$expect)(this.page.locator(".icon-fullscreen-exit")).not.toBeVisible();
|
|
593
598
|
}
|
|
599
|
+
async expectAssignedTo(username) {
|
|
600
|
+
await (0, $hOLA6$expect)(this.page.getByRole("button", {
|
|
601
|
+
name: username
|
|
602
|
+
})).toBeVisible();
|
|
603
|
+
}
|
|
604
|
+
async assignToMe(userName, existingUsername) {
|
|
605
|
+
await this.page.getByRole("button", {
|
|
606
|
+
name: existingUsername
|
|
607
|
+
}).click();
|
|
608
|
+
await this.page.getByTestId(`render-option-${userName}`).click();
|
|
609
|
+
}
|
|
610
|
+
async setFlag(flagName, flagComment) {
|
|
611
|
+
await this.page.getByTestId("flag-btn").click();
|
|
612
|
+
await this.page.getByLabel(flagName).click();
|
|
613
|
+
await this.page.getByPlaceholder("Set message").click();
|
|
614
|
+
await this.page.getByPlaceholder("Set message").fill(flagComment);
|
|
615
|
+
await this.page.getByPlaceholder("Set message").press("Enter");
|
|
616
|
+
await (0, $hOLA6$expect)(this.page.getByRole("button", {
|
|
617
|
+
name: `flag icon ${flagComment}`
|
|
618
|
+
})).toBeVisible();
|
|
619
|
+
}
|
|
620
|
+
async expectFlaggedWith(flagName, flagComment) {
|
|
621
|
+
await this.page.getByRole("button", {
|
|
622
|
+
name: "flag icon"
|
|
623
|
+
}).click();
|
|
624
|
+
const regexPattern = new RegExp(`${flagComment}.*${flagName}`, "i");
|
|
625
|
+
await (0, $hOLA6$expect)(this.page.getByText(regexPattern)).toBeVisible();
|
|
626
|
+
}
|
|
594
627
|
}
|
|
595
628
|
|
|
596
629
|
|
|
597
630
|
|
|
598
631
|
|
|
632
|
+
|
|
599
633
|
class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
600
634
|
constructor(page){
|
|
601
635
|
super(page);
|
|
@@ -628,9 +662,10 @@ class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$ex
|
|
|
628
662
|
async save() {
|
|
629
663
|
await this.page.getByRole("button", {
|
|
630
664
|
name: "Save"
|
|
631
|
-
}).
|
|
632
|
-
|
|
633
|
-
|
|
665
|
+
}).waitFor();
|
|
666
|
+
await this.page.getByRole("button", {
|
|
667
|
+
name: "Save"
|
|
668
|
+
}).click();
|
|
634
669
|
await (0, $hOLA6$expect)(this.page.locator(".form-footer .last-saved")).toBeVisible();
|
|
635
670
|
}
|
|
636
671
|
async reset() {
|
|
@@ -646,6 +681,128 @@ class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$ex
|
|
|
646
681
|
hasText: filename
|
|
647
682
|
})).toBeVisible();
|
|
648
683
|
}
|
|
684
|
+
async getAttachmentsListCount() {
|
|
685
|
+
return await this.page.locator(".attachments tr").count();
|
|
686
|
+
}
|
|
687
|
+
async uploadFile(filePath) {
|
|
688
|
+
const fileChooserPromise = this.page.waitForEvent("filechooser");
|
|
689
|
+
await this.page.locator('input[type="file"]').click();
|
|
690
|
+
const fileChooser = await fileChooserPromise;
|
|
691
|
+
await fileChooser.setFiles(filePath);
|
|
692
|
+
}
|
|
693
|
+
async expectWithNoAttachment(filename) {
|
|
694
|
+
const test = await this.page.locator(".attachments").isVisible();
|
|
695
|
+
if (test) await (0, $hOLA6$expect)(this.page.locator(".attachments tr td a").filter({
|
|
696
|
+
hasText: filename
|
|
697
|
+
})).not.toBeVisible();
|
|
698
|
+
}
|
|
699
|
+
async downloadFile(filename) {
|
|
700
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
701
|
+
const downloadPromise1 = this.page.waitForEvent("download");
|
|
702
|
+
await this.page.getByText(filename).click();
|
|
703
|
+
const download = await downloadPromise1;
|
|
704
|
+
// Wait for the download process to complete and save the downloaded file in given path.
|
|
705
|
+
await download.saveAs("./core/xlr-ui/build/playwright/" + download.suggestedFilename());
|
|
706
|
+
(0, $hOLA6$expect)(download.suggestedFilename()).toBe(filename);
|
|
707
|
+
}
|
|
708
|
+
async deleteAttachment(fileName) {
|
|
709
|
+
await this.page.getByRole("row", {
|
|
710
|
+
name: fileName
|
|
711
|
+
}).locator("span").click();
|
|
712
|
+
await this.page.getByText("Remove").click();
|
|
713
|
+
}
|
|
714
|
+
async expectVariableDisplayed(variable, present) {
|
|
715
|
+
if (present) await (0, $hOLA6$expect)(this.page.locator(`#release-properties .form-group`, {
|
|
716
|
+
hasText: variable
|
|
717
|
+
})).toHaveCount(1);
|
|
718
|
+
else await (0, $hOLA6$expect)(this.page.locator(`#release-properties .form-group`, {
|
|
719
|
+
hasText: variable
|
|
720
|
+
})).toHaveCount(0);
|
|
721
|
+
}
|
|
722
|
+
async setScheduledStartDate(date, monthYear) {
|
|
723
|
+
await this.page.locator(`.scheduled-start-date .date`).click();
|
|
724
|
+
const prev = this.page.locator(".datepicker-days .prev");
|
|
725
|
+
const next = this.page.locator(".datepicker-days .next");
|
|
726
|
+
const monYear = this.page.locator(".datepicker-days .datepicker-switch");
|
|
727
|
+
const thisMonth = (0, $hOLA6$moment)(monthYear, "MMMM YYYY").isBefore();
|
|
728
|
+
while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
|
|
729
|
+
else await next.click();
|
|
730
|
+
await this.page.getByRole("cell", {
|
|
731
|
+
name: "" + date + ""
|
|
732
|
+
}).first().click();
|
|
733
|
+
}
|
|
734
|
+
async setScheduledStartTime(hrs, mins, meridian) {
|
|
735
|
+
await this.page.locator(".scheduled-start-date .time-picker-holder").click();
|
|
736
|
+
if (typeof hrs !== "undefined") {
|
|
737
|
+
await this.page.locator(".bootstrap-timepicker-hour").click();
|
|
738
|
+
await this.page.locator(".bootstrap-timepicker-hour").clear();
|
|
739
|
+
await this.page.locator(".bootstrap-timepicker-hour").fill(hrs);
|
|
740
|
+
}
|
|
741
|
+
if (typeof mins !== "undefined") {
|
|
742
|
+
await this.page.locator(".bootstrap-timepicker-minute").click();
|
|
743
|
+
await this.page.locator(".bootstrap-timepicker-minute").clear();
|
|
744
|
+
await this.page.locator(".bootstrap-timepicker-minute").fill(mins);
|
|
745
|
+
}
|
|
746
|
+
if (typeof meridian !== "undefined") {
|
|
747
|
+
await this.page.locator(".bootstrap-timepicker-meridian").click();
|
|
748
|
+
await this.page.locator(".bootstrap-timepicker-meridian").clear();
|
|
749
|
+
await this.page.locator(".bootstrap-timepicker-meridian").fill(meridian);
|
|
750
|
+
}
|
|
751
|
+
await this.page.keyboard.press("Escape");
|
|
752
|
+
}
|
|
753
|
+
async setDuration(days, hours, mins) {
|
|
754
|
+
await this.page.locator(".duration-editor").click();
|
|
755
|
+
if (typeof days !== "undefined") {
|
|
756
|
+
await this.page.locator(".days").click();
|
|
757
|
+
await this.page.locator(".days").clear();
|
|
758
|
+
await this.page.locator(".days").fill(days);
|
|
759
|
+
}
|
|
760
|
+
if (typeof hours !== "undefined") {
|
|
761
|
+
await this.page.locator(".hours").click();
|
|
762
|
+
await this.page.locator(".hours").clear();
|
|
763
|
+
await this.page.locator(".hours").fill(hours);
|
|
764
|
+
}
|
|
765
|
+
if (typeof mins !== "undefined") {
|
|
766
|
+
await this.page.locator(".minutes").click();
|
|
767
|
+
await this.page.locator(".minutes").clear();
|
|
768
|
+
await this.page.locator(".minutes").fill(mins);
|
|
769
|
+
}
|
|
770
|
+
await this.page.keyboard.press("Escape");
|
|
771
|
+
}
|
|
772
|
+
async expectScheduledStartDateToBe(date) {
|
|
773
|
+
(0, $hOLA6$expect)(await this.page.locator(`.scheduled-start-date .date input`).getAttribute("value")).toContain(date);
|
|
774
|
+
}
|
|
775
|
+
async expectScheduledStartTimeToBe(date) {
|
|
776
|
+
(0, $hOLA6$expect)(await this.page.locator(`.scheduled-start-date .time input`).getAttribute("value")).toContain(date);
|
|
777
|
+
}
|
|
778
|
+
async expectDueDateToBe(date) {
|
|
779
|
+
(0, $hOLA6$expect)(await this.page.locator(".due-date .date input").getAttribute("value")).toContain(date);
|
|
780
|
+
}
|
|
781
|
+
async expectedDueDateTime(time) {
|
|
782
|
+
(0, $hOLA6$expect)(await this.page.locator(".due-date .time input").getAttribute("value")).toContain(time);
|
|
783
|
+
}
|
|
784
|
+
async expectDurationToBe(duration) {
|
|
785
|
+
(0, $hOLA6$expect)(await this.page.locator(".duration-editor").textContent()).toBe(duration);
|
|
786
|
+
}
|
|
787
|
+
async setDueDate(hrs, min, meridian) {
|
|
788
|
+
await this.page.locator(".due-date .time-picker-holder").click();
|
|
789
|
+
if (typeof hrs !== "undefined") {
|
|
790
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").click();
|
|
791
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").clear();
|
|
792
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").fill(hrs);
|
|
793
|
+
}
|
|
794
|
+
if (typeof min !== "undefined") {
|
|
795
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").click();
|
|
796
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").clear();
|
|
797
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").fill(min);
|
|
798
|
+
}
|
|
799
|
+
if (typeof meridian !== "undefined") {
|
|
800
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").click();
|
|
801
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").clear();
|
|
802
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").fill(meridian);
|
|
803
|
+
}
|
|
804
|
+
await this.page.keyboard.press("Escape");
|
|
805
|
+
}
|
|
649
806
|
}
|
|
650
807
|
|
|
651
808
|
|
|
@@ -670,6 +827,16 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
670
827
|
getPhase(phaseName) {
|
|
671
828
|
return new $43cbcdfccb6c2a76$var$Phase(this.page, phaseName);
|
|
672
829
|
}
|
|
830
|
+
async expectNotFlagged() {
|
|
831
|
+
await (0, $hOLA6$expect)(this.page.locator(".flag-none-icon")).toBeHidden();
|
|
832
|
+
}
|
|
833
|
+
async expectFlagOnTaskCard() {
|
|
834
|
+
await (0, $hOLA6$expect)(this.page.locator(".risk-flag-icon")).toBeVisible();
|
|
835
|
+
}
|
|
836
|
+
async refresh() {
|
|
837
|
+
await this.page.reload();
|
|
838
|
+
await this.page.waitForSelector("#release");
|
|
839
|
+
}
|
|
673
840
|
async start() {
|
|
674
841
|
await this.page.getByTestId("start-btn").click();
|
|
675
842
|
await this.page.getByRole("button", {
|
|
@@ -723,6 +890,25 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
723
890
|
timeout: 10000
|
|
724
891
|
});
|
|
725
892
|
}
|
|
893
|
+
async waitForTaskPlanned(title) {
|
|
894
|
+
await (0, $hOLA6$expect)(this.page.locator(`.task:has-text('${title}').planned`)).toBeVisible();
|
|
895
|
+
}
|
|
896
|
+
async openManualTaskDetails(title) {
|
|
897
|
+
await this.page.locator(`text=${title}`).click({
|
|
898
|
+
force: true
|
|
899
|
+
});
|
|
900
|
+
await (0, $hOLA6$expect)(this.page.locator("div").filter({
|
|
901
|
+
hasText: title
|
|
902
|
+
}).first()).toBeVisible();
|
|
903
|
+
}
|
|
904
|
+
async reopenTask(comment) {
|
|
905
|
+
await this.page.locator("div").filter({
|
|
906
|
+
hasText: /^Reopen$/
|
|
907
|
+
}).click();
|
|
908
|
+
await this.page.getByTestId("task-action-comment").click();
|
|
909
|
+
await this.page.getByTestId("task-action-comment").fill(comment);
|
|
910
|
+
await this.page.getByTestId("task-action-confirm").click();
|
|
911
|
+
}
|
|
726
912
|
async openTaskDrawer(taskName) {
|
|
727
913
|
await this.page.locator(".task-header").getByText(taskName, {
|
|
728
914
|
exact: true
|
|
@@ -818,6 +1004,16 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
818
1004
|
}
|
|
819
1005
|
}
|
|
820
1006
|
}
|
|
1007
|
+
async expectTitleToBeInBreadcrumbLink(title) {
|
|
1008
|
+
await (0, $hOLA6$expect)(this.page.locator(".dot-breadcrumbs a", {
|
|
1009
|
+
hasText: title
|
|
1010
|
+
})).toBeVisible();
|
|
1011
|
+
}
|
|
1012
|
+
async expectHasPhase(title) {
|
|
1013
|
+
await (0, $hOLA6$expect)(this.page.locator(`#release-content .phase-title`, {
|
|
1014
|
+
hasText: title
|
|
1015
|
+
})).toBeVisible();
|
|
1016
|
+
}
|
|
821
1017
|
}
|
|
822
1018
|
class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
823
1019
|
constructor(page, phaseName){
|
|
@@ -1270,15 +1466,46 @@ class $c37c93912f458e81$export$60c3bfa6385e2a10 extends (0, $9626bc9256ce31f7$ex
|
|
|
1270
1466
|
}
|
|
1271
1467
|
async openTask(taskName) {
|
|
1272
1468
|
await this.filterTaskByTitle(taskName);
|
|
1273
|
-
await this.page.getByText(taskName).click();
|
|
1469
|
+
await this.page.getByText(taskName).first().click();
|
|
1470
|
+
}
|
|
1471
|
+
async skip(taskName, comment) {
|
|
1472
|
+
await this.page.locator(`.row.task-inner`, {
|
|
1473
|
+
hasText: taskName
|
|
1474
|
+
}).locator("span.skip").click();
|
|
1475
|
+
await this.page.getByPlaceholder("Give feedback or place a comment...").click();
|
|
1476
|
+
await this.page.getByPlaceholder("Give feedback or place a comment...").fill(comment);
|
|
1477
|
+
await this.page.getByRole("button", {
|
|
1478
|
+
name: "Skip",
|
|
1479
|
+
exact: true
|
|
1480
|
+
}).click();
|
|
1481
|
+
}
|
|
1482
|
+
async waitForTaskInProgress(taskName) {
|
|
1483
|
+
await (0, $hOLA6$expect)(this.page.locator(`.row.task-inner`, {
|
|
1484
|
+
hasText: taskName
|
|
1485
|
+
}).getByText("In progress")).toBeVisible();
|
|
1486
|
+
}
|
|
1487
|
+
async openTaskInReleaseView(taskName) {
|
|
1488
|
+
await this.page.locator(`.row.task-inner`, {
|
|
1489
|
+
hasText: taskName
|
|
1490
|
+
}).locator("a.view-in-release").click();
|
|
1491
|
+
}
|
|
1492
|
+
async openCalendarViaTaskDueDate(taskName) {
|
|
1493
|
+
await this.page.locator(`.row.task-inner`, {
|
|
1494
|
+
hasText: taskName
|
|
1495
|
+
}).locator(`.calendar-link a`).click();
|
|
1496
|
+
}
|
|
1497
|
+
async openTaskDrawer(taskName) {
|
|
1498
|
+
await this.page.locator(`.row.task-inner`, {
|
|
1499
|
+
hasText: taskName
|
|
1500
|
+
}).getByText(taskName).click();
|
|
1274
1501
|
}
|
|
1275
1502
|
async filterTaskByTitle(taskname) {
|
|
1276
|
-
await this.page.locator(".
|
|
1503
|
+
await this.page.locator(".searchFilter").click();
|
|
1277
1504
|
await this.page.locator(".searchFilter").fill(taskname);
|
|
1278
1505
|
await this.page.locator(".searchFilter").press("Enter");
|
|
1279
1506
|
await (0, $hOLA6$expect)(this.page.locator("//div[@data-task-title]").filter({
|
|
1280
1507
|
hasText: taskname
|
|
1281
|
-
})).toBeVisible();
|
|
1508
|
+
}).first()).toBeVisible();
|
|
1282
1509
|
}
|
|
1283
1510
|
async filterTasksByTag(tag, taskTitleForValidation) {
|
|
1284
1511
|
await this.page.locator(".toggle-search-filter").click();
|
|
@@ -1313,9 +1540,41 @@ class $c37c93912f458e81$export$60c3bfa6385e2a10 extends (0, $9626bc9256ce31f7$ex
|
|
|
1313
1540
|
await (0, $hOLA6$expect)(this.page.locator(".view-in-release")).not.toBeVisible();
|
|
1314
1541
|
}
|
|
1315
1542
|
}
|
|
1543
|
+
async openTaskList() {
|
|
1544
|
+
await this.page.goto("./#/tasks");
|
|
1545
|
+
}
|
|
1546
|
+
async clickOnAssigneeButton(title) {
|
|
1547
|
+
await this.page.locator(`.btn-group-filter.btn-group button.btn.btn-flat[title="${title}"]`).click();
|
|
1548
|
+
}
|
|
1549
|
+
async assignTaskToMe(title) {
|
|
1550
|
+
await this.page.locator(`.task-line`).filter({
|
|
1551
|
+
hasText: title
|
|
1552
|
+
}).locator(`.assign-to-me`).click();
|
|
1553
|
+
await this.page.locator('.modal:visible >> text="Assign to me"').click();
|
|
1554
|
+
}
|
|
1555
|
+
async expectTaskAssignedToMe(title) {
|
|
1556
|
+
await this.expectTaskAssignedTo(title, "me");
|
|
1557
|
+
}
|
|
1558
|
+
async expectTaskAssignedTo(title, user) {
|
|
1559
|
+
await (0, $hOLA6$expect)(this.page.locator(`.task-line:has-text("${title}") >> text="${user}"`).first()).toHaveCount(1);
|
|
1560
|
+
}
|
|
1316
1561
|
async expectTaskTitle(taskTitle) {
|
|
1317
1562
|
(0, $hOLA6$expect)(await this.page.locator("#tasks0").innerText()).toContain(taskTitle);
|
|
1318
1563
|
}
|
|
1564
|
+
async expectGroupView(expected = true) {
|
|
1565
|
+
if (expected) {
|
|
1566
|
+
await (0, $hOLA6$expect)(this.page.locator("#group-tasks-by-release")).toBeChecked();
|
|
1567
|
+
await (0, $hOLA6$expect)(this.page.locator("#task-list-grouped-view")).toBeVisible();
|
|
1568
|
+
await (0, $hOLA6$expect)(this.page.locator("#task-ungrouped-view")).not.toBeVisible();
|
|
1569
|
+
} else {
|
|
1570
|
+
await (0, $hOLA6$expect)(this.page.locator("#group-tasks-by-release")).not.toBeChecked();
|
|
1571
|
+
await (0, $hOLA6$expect)(this.page.locator("#task-list-grouped-view")).not.toBeVisible();
|
|
1572
|
+
await (0, $hOLA6$expect)(this.page.locator("#task-ungrouped-view")).toBeVisible();
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
async changeGroupView() {
|
|
1576
|
+
await this.page.locator("#group-tasks-by-release").click();
|
|
1577
|
+
}
|
|
1319
1578
|
}
|
|
1320
1579
|
|
|
1321
1580
|
|
|
@@ -1673,6 +1932,143 @@ class $171d52b372748c0b$export$7e1d435fa474ee21 extends (0, $9626bc9256ce31f7$ex
|
|
|
1673
1932
|
}
|
|
1674
1933
|
|
|
1675
1934
|
|
|
1935
|
+
|
|
1936
|
+
|
|
1937
|
+
class $cc2d15e53de5cef7$export$b6fbc3e67030138f extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1938
|
+
async setStatus(status) {
|
|
1939
|
+
await this.page.locator(".react-tagsinput").click({
|
|
1940
|
+
force: true
|
|
1941
|
+
});
|
|
1942
|
+
await this.page.getByText("Clear all").click();
|
|
1943
|
+
await this.page.locator(".react-tagsinput").click({
|
|
1944
|
+
force: true
|
|
1945
|
+
});
|
|
1946
|
+
if (status === "Select all") await this.page.getByText(status).click();
|
|
1947
|
+
else await this.page.getByTitle(status).locator("i").first().click();
|
|
1948
|
+
}
|
|
1949
|
+
async openReleaseGroup(title) {
|
|
1950
|
+
await this.page.locator("xlr-release-group-row").filter({
|
|
1951
|
+
hasText: title
|
|
1952
|
+
}).getByRole("link").click();
|
|
1953
|
+
await this.page.getByTitle(title).click();
|
|
1954
|
+
await (0, $hOLA6$expect)(this.page).toHaveURL(/.*ReleaseGroup/);
|
|
1955
|
+
}
|
|
1956
|
+
async expectReleaseGroupStatus(status) {
|
|
1957
|
+
await (0, $hOLA6$expect)(this.page.locator(".release-status")).toContainText(status);
|
|
1958
|
+
}
|
|
1959
|
+
async expectReleaseGroupDisplayed(title) {
|
|
1960
|
+
await (0, $hOLA6$expect)(this.page.getByText(title, {
|
|
1961
|
+
exact: true
|
|
1962
|
+
})).toBeVisible();
|
|
1963
|
+
}
|
|
1964
|
+
async expectReleaseGroupNotDisplayed(title) {
|
|
1965
|
+
await (0, $hOLA6$expect)(this.page.getByText(title, {
|
|
1966
|
+
exact: true
|
|
1967
|
+
})).not.toBeVisible();
|
|
1968
|
+
}
|
|
1969
|
+
async searchReleaseGroupByTitle(title) {
|
|
1970
|
+
await this.page.getByPlaceholder("Search for groups...", {
|
|
1971
|
+
exact: true
|
|
1972
|
+
}).click();
|
|
1973
|
+
await this.page.getByPlaceholder("Search for groups...", {
|
|
1974
|
+
exact: true
|
|
1975
|
+
}).fill(title);
|
|
1976
|
+
await this.page.getByPlaceholder("Search for groups...", {
|
|
1977
|
+
exact: true
|
|
1978
|
+
}).press("Enter");
|
|
1979
|
+
}
|
|
1980
|
+
async deleteReleaseGroup(title) {
|
|
1981
|
+
await this.page.locator(".fc-list-item-line").filter({
|
|
1982
|
+
hasText: title
|
|
1983
|
+
}).locator(".fc-item-delete").click();
|
|
1984
|
+
await this.page.getByRole("button", {
|
|
1985
|
+
name: "Delete"
|
|
1986
|
+
}).click();
|
|
1987
|
+
}
|
|
1988
|
+
async clickReleaseGroupEdit(title) {
|
|
1989
|
+
await this.page.locator(".fc-list-item-line").filter({
|
|
1990
|
+
hasText: title
|
|
1991
|
+
}).locator(".fc-item-update").click();
|
|
1992
|
+
}
|
|
1993
|
+
async enterReleaseGroupDetails(new_title) {
|
|
1994
|
+
await this.page.locator(".modal-body").locator("#title").fill(new_title);
|
|
1995
|
+
}
|
|
1996
|
+
async clickSaveButton() {
|
|
1997
|
+
await this.page.locator(".modal-footer").getByRole("button", {
|
|
1998
|
+
name: "Save"
|
|
1999
|
+
}).click();
|
|
2000
|
+
}
|
|
2001
|
+
async clickCancelButton() {
|
|
2002
|
+
await this.page.locator(".modal-footer").getByRole("button", {
|
|
2003
|
+
name: "Cancel"
|
|
2004
|
+
}).click();
|
|
2005
|
+
}
|
|
2006
|
+
}
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
class $cc231ea61b77c7a2$export$1a0994e9c202d529 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
2012
|
+
async expectReleaseDisplayed(title) {
|
|
2013
|
+
await (0, $hOLA6$expect)(this.page.getByText(title, {
|
|
2014
|
+
exact: true
|
|
2015
|
+
})).toBeVisible();
|
|
2016
|
+
}
|
|
2017
|
+
async expectReleaseNotDisplayed(title) {
|
|
2018
|
+
await (0, $hOLA6$expect)(this.page.getByText(title, {
|
|
2019
|
+
exact: true
|
|
2020
|
+
})).not.toBeVisible({
|
|
2021
|
+
timeout: 10000
|
|
2022
|
+
});
|
|
2023
|
+
}
|
|
2024
|
+
async expectPhaseDisplayed(title) {
|
|
2025
|
+
await (0, $hOLA6$expect)(this.page.getByText(title, {
|
|
2026
|
+
exact: true
|
|
2027
|
+
})).toBeVisible();
|
|
2028
|
+
}
|
|
2029
|
+
async openContextMenu(title) {
|
|
2030
|
+
await this.page.locator(".timeline-row-name").filter({
|
|
2031
|
+
hasText: title
|
|
2032
|
+
}).locator(".options-icon").click();
|
|
2033
|
+
}
|
|
2034
|
+
async removeFromReleaseGroup() {
|
|
2035
|
+
await this.page.getByRole("menuitem", {
|
|
2036
|
+
name: "Remove from group"
|
|
2037
|
+
}).locator("a").click();
|
|
2038
|
+
await this.page.getByRole("button", {
|
|
2039
|
+
name: "Remove"
|
|
2040
|
+
}).click();
|
|
2041
|
+
}
|
|
2042
|
+
async expectNumberOfReleases(num_of_release) {
|
|
2043
|
+
const elementCount = await this.page.locator(".timeline-row-name-release").count();
|
|
2044
|
+
(0, $hOLA6$expect)(elementCount).toBe(num_of_release);
|
|
2045
|
+
}
|
|
2046
|
+
async openAddReleaseList() {
|
|
2047
|
+
await this.page.getByRole("button", {
|
|
2048
|
+
name: "Add release"
|
|
2049
|
+
}).click();
|
|
2050
|
+
}
|
|
2051
|
+
async filterReleases(title) {
|
|
2052
|
+
await this.page.getByPlaceholder("Search for a release...").click();
|
|
2053
|
+
await this.page.getByPlaceholder("Search for a release...").fill(title);
|
|
2054
|
+
await this.page.waitForTimeout(5000);
|
|
2055
|
+
await this.page.getByPlaceholder("Search for a release...").press("Enter");
|
|
2056
|
+
}
|
|
2057
|
+
async expectNumberOfReleasesOnModal(num_of_release) {
|
|
2058
|
+
const elementCount = await this.page.locator(".release-modal-line").count();
|
|
2059
|
+
(0, $hOLA6$expect)(elementCount).toBe(num_of_release);
|
|
2060
|
+
}
|
|
2061
|
+
async selectAllReleaseCheckbox() {
|
|
2062
|
+
await this.page.getByLabel("Select all").check();
|
|
2063
|
+
}
|
|
2064
|
+
async addReleasesToGroup() {
|
|
2065
|
+
await this.page.getByRole("button", {
|
|
2066
|
+
name: "Add"
|
|
2067
|
+
}).click();
|
|
2068
|
+
}
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
|
|
1676
2072
|
class $e72552cbf941ecfa$export$b8a61e5c71402559 {
|
|
1677
2073
|
constructor(page){
|
|
1678
2074
|
this.page = page;
|
|
@@ -1686,6 +2082,8 @@ class $e72552cbf941ecfa$export$b8a61e5c71402559 {
|
|
|
1686
2082
|
this.taskDetailsPage = new (0, $9ca6e63d357957dd$export$922081b54f2ab994)(page);
|
|
1687
2083
|
this.releaseCalendarPage = new (0, $3a340a3f4fd8f04d$export$43682cddead1dd78)(page);
|
|
1688
2084
|
this.releaseListPage = new (0, $5359280e98d97ff9$export$a678525e79c4ccc4)(page);
|
|
2085
|
+
this.releaseGroupPage = new (0, $cc2d15e53de5cef7$export$b6fbc3e67030138f)(page);
|
|
2086
|
+
this.releaseGroupTimelinePage = new (0, $cc231ea61b77c7a2$export$1a0994e9c202d529)(page);
|
|
1689
2087
|
this.util = new (0, $aa992f812fb1e470$export$6adb8dd3f0d1e432)(page);
|
|
1690
2088
|
}
|
|
1691
2089
|
async openTemplate(id) {
|
|
@@ -1819,6 +2217,7 @@ class $4444bee76761dfb1$export$f14c0e3f98d164c0 extends (0, $9626bc9256ce31f7$ex
|
|
|
1819
2217
|
timeout: 10000
|
|
1820
2218
|
});
|
|
1821
2219
|
await this.page.waitForTimeout(1000);
|
|
2220
|
+
await this.closePendoModalWindow();
|
|
1822
2221
|
}
|
|
1823
2222
|
/**
|
|
1824
2223
|
* Logout as authenticated user
|
|
@@ -1841,6 +2240,10 @@ class $4444bee76761dfb1$export$f14c0e3f98d164c0 extends (0, $9626bc9256ce31f7$ex
|
|
|
1841
2240
|
const val = await this.page.locator("top-toolbar .avatar-wrapper span.dot-tooltip").getAttribute("aria-label");
|
|
1842
2241
|
(0, $hOLA6$expect)(val).toContain(username);
|
|
1843
2242
|
}
|
|
2243
|
+
async closePendoModalWindow() {
|
|
2244
|
+
await this.page.waitForTimeout(1000);
|
|
2245
|
+
if (await this.page.locator("._pendo-close-guide").count() > 0) await this.page.locator("._pendo-close-guide").click();
|
|
2246
|
+
}
|
|
1844
2247
|
}
|
|
1845
2248
|
|
|
1846
2249
|
|
|
@@ -2060,6 +2463,15 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
2060
2463
|
this.triggerIds.push(trigger.id);
|
|
2061
2464
|
return this.doPost("fixtures/trigger", trigger);
|
|
2062
2465
|
}
|
|
2466
|
+
roles(rolePrincipals) {
|
|
2467
|
+
return this.doPost("fixtures/roles/principals", rolePrincipals);
|
|
2468
|
+
}
|
|
2469
|
+
permissions(rolePermissions) {
|
|
2470
|
+
return this.doPost("fixtures/roles/permissions/global", rolePermissions);
|
|
2471
|
+
}
|
|
2472
|
+
deleteRole(roleName) {
|
|
2473
|
+
return this.doDelete(`fixtures/role/${roleName}`);
|
|
2474
|
+
}
|
|
2063
2475
|
deleteArchivedRelease(id) {
|
|
2064
2476
|
const releaseId = id.includes("Applications/") ? id : `Applications/${id}`;
|
|
2065
2477
|
return this.doDelete("fixtures/cis", [
|
|
@@ -2088,8 +2500,7 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
2088
2500
|
]);
|
|
2089
2501
|
}
|
|
2090
2502
|
deleteFolder(folderId) {
|
|
2091
|
-
|
|
2092
|
-
return this.doDelete(`api/v1/folders/${id}`);
|
|
2503
|
+
return this.doDelete(`api/v1/folders/${folderId}`);
|
|
2093
2504
|
}
|
|
2094
2505
|
activityLogs(id, logs) {
|
|
2095
2506
|
return this.doPost(`fixtures/activityLogs/${id}`, logs);
|
|
@@ -2240,6 +2651,9 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
2240
2651
|
}
|
|
2241
2652
|
]);
|
|
2242
2653
|
}
|
|
2654
|
+
async createReleaseGroup(releaseGroup) {
|
|
2655
|
+
return this.doPost("fixtures/release-groups", releaseGroup);
|
|
2656
|
+
}
|
|
2243
2657
|
doPost(url, body) {
|
|
2244
2658
|
return this.request.post(url, {
|
|
2245
2659
|
data: body,
|