@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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @digital-ai/devops-page-object-release
|
|
2
2
|
|
|
3
|
+
## 0.0.16
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 92bf617: S-111286: page objects modifications for reopen-task-scenario
|
|
8
|
+
- 63ff9f6: S-111156: page objects modifications for claim-scenario
|
|
9
|
+
- 3747dfc: S-110037: Migrated releaseProperties and ci-properties scenario to
|
|
10
|
+
- 5f07582: + global variable page object creation
|
|
11
|
+
- 28fab68: S-111782: page object modifications for skip-scenario.ts
|
|
12
|
+
- e327dee: S-111571: page object modifications for task-flag-scenario.ts
|
|
13
|
+
|
|
14
|
+
## 0.0.15
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 8d73cc7: Added methods related to release page on release attachment and flow scenario testscript migration
|
|
19
|
+
- 75e0e3d: S-106378: Create page Object for Release Group and Release timeline page
|
|
20
|
+
- a08d087: Fixtures for roles and permissions are created.
|
|
21
|
+
Pages objects created to migrate cypress test - tasks-list-scenario.
|
|
22
|
+
|
|
3
23
|
## 0.0.14
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/main.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var $kKeXs$playwrighttest = require("@playwright/test");
|
|
2
2
|
var $kKeXs$child_process = require("child_process");
|
|
3
3
|
var $kKeXs$process = require("process");
|
|
4
|
-
var $kKeXs$fs = require("fs");
|
|
5
4
|
var $kKeXs$moment = require("moment");
|
|
5
|
+
var $kKeXs$fs = require("fs");
|
|
6
6
|
|
|
7
7
|
var $parcel$global =
|
|
8
8
|
typeof globalThis !== 'undefined'
|
|
@@ -1440,13 +1440,18 @@ class $f9016705c1a1eb20$export$aa59788fdecae2f2 extends (0, $f8721861c660dd88$ex
|
|
|
1440
1440
|
hasText: fileName
|
|
1441
1441
|
}).click();
|
|
1442
1442
|
await this.page.getByLabel("delete file").click();
|
|
1443
|
+
await this.page.getByRole("button", {
|
|
1444
|
+
name: "Delete"
|
|
1445
|
+
}).waitFor({
|
|
1446
|
+
state: "visible"
|
|
1447
|
+
});
|
|
1443
1448
|
await this.page.getByRole("button", {
|
|
1444
1449
|
name: "Delete"
|
|
1445
1450
|
}).click();
|
|
1446
1451
|
}
|
|
1447
1452
|
async expectWithNoAttachment(tempFile) {
|
|
1448
|
-
const test = await this.page.locator(".task-attachments-grid .file-item-text").
|
|
1449
|
-
if (test) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toContainText(tempFile);
|
|
1453
|
+
const test = await this.page.locator(".task-attachments-grid .file-item-text").count();
|
|
1454
|
+
if (test > 0) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toContainText(tempFile);
|
|
1450
1455
|
else await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toBeVisible();
|
|
1451
1456
|
}
|
|
1452
1457
|
}
|
|
@@ -1527,11 +1532,40 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
|
|
|
1527
1532
|
await this.page.locator(".icon-fullscreen-exit").click();
|
|
1528
1533
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".icon-fullscreen-exit")).not.toBeVisible();
|
|
1529
1534
|
}
|
|
1535
|
+
async expectAssignedTo(username) {
|
|
1536
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("button", {
|
|
1537
|
+
name: username
|
|
1538
|
+
})).toBeVisible();
|
|
1539
|
+
}
|
|
1540
|
+
async assignToMe(userName, existingUsername) {
|
|
1541
|
+
await this.page.getByRole("button", {
|
|
1542
|
+
name: existingUsername
|
|
1543
|
+
}).click();
|
|
1544
|
+
await this.page.getByTestId(`render-option-${userName}`).click();
|
|
1545
|
+
}
|
|
1546
|
+
async setFlag(flagName, flagComment) {
|
|
1547
|
+
await this.page.getByTestId("flag-btn").click();
|
|
1548
|
+
await this.page.getByLabel(flagName).click();
|
|
1549
|
+
await this.page.getByPlaceholder("Set message").click();
|
|
1550
|
+
await this.page.getByPlaceholder("Set message").fill(flagComment);
|
|
1551
|
+
await this.page.getByPlaceholder("Set message").press("Enter");
|
|
1552
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("button", {
|
|
1553
|
+
name: `flag icon ${flagComment}`
|
|
1554
|
+
})).toBeVisible();
|
|
1555
|
+
}
|
|
1556
|
+
async expectFlaggedWith(flagName, flagComment) {
|
|
1557
|
+
await this.page.getByRole("button", {
|
|
1558
|
+
name: "flag icon"
|
|
1559
|
+
}).click();
|
|
1560
|
+
const regexPattern = new RegExp(`${flagComment}.*${flagName}`, "i");
|
|
1561
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(regexPattern)).toBeVisible();
|
|
1562
|
+
}
|
|
1530
1563
|
}
|
|
1531
1564
|
|
|
1532
1565
|
|
|
1533
1566
|
|
|
1534
1567
|
|
|
1568
|
+
|
|
1535
1569
|
class $8681d8a3f46f87b7$export$d1077068a9cc9f17 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
|
|
1536
1570
|
constructor(page){
|
|
1537
1571
|
super(page);
|
|
@@ -1564,9 +1598,10 @@ class $8681d8a3f46f87b7$export$d1077068a9cc9f17 extends (0, $f8721861c660dd88$ex
|
|
|
1564
1598
|
async save() {
|
|
1565
1599
|
await this.page.getByRole("button", {
|
|
1566
1600
|
name: "Save"
|
|
1567
|
-
}).
|
|
1568
|
-
|
|
1569
|
-
|
|
1601
|
+
}).waitFor();
|
|
1602
|
+
await this.page.getByRole("button", {
|
|
1603
|
+
name: "Save"
|
|
1604
|
+
}).click();
|
|
1570
1605
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".form-footer .last-saved")).toBeVisible();
|
|
1571
1606
|
}
|
|
1572
1607
|
async reset() {
|
|
@@ -1582,6 +1617,128 @@ class $8681d8a3f46f87b7$export$d1077068a9cc9f17 extends (0, $f8721861c660dd88$ex
|
|
|
1582
1617
|
hasText: filename
|
|
1583
1618
|
})).toBeVisible();
|
|
1584
1619
|
}
|
|
1620
|
+
async getAttachmentsListCount() {
|
|
1621
|
+
return await this.page.locator(".attachments tr").count();
|
|
1622
|
+
}
|
|
1623
|
+
async uploadFile(filePath) {
|
|
1624
|
+
const fileChooserPromise = this.page.waitForEvent("filechooser");
|
|
1625
|
+
await this.page.locator('input[type="file"]').click();
|
|
1626
|
+
const fileChooser = await fileChooserPromise;
|
|
1627
|
+
await fileChooser.setFiles(filePath);
|
|
1628
|
+
}
|
|
1629
|
+
async expectWithNoAttachment(filename) {
|
|
1630
|
+
const test = await this.page.locator(".attachments").isVisible();
|
|
1631
|
+
if (test) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".attachments tr td a").filter({
|
|
1632
|
+
hasText: filename
|
|
1633
|
+
})).not.toBeVisible();
|
|
1634
|
+
}
|
|
1635
|
+
async downloadFile(filename) {
|
|
1636
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1637
|
+
const downloadPromise1 = this.page.waitForEvent("download");
|
|
1638
|
+
await this.page.getByText(filename).click();
|
|
1639
|
+
const download = await downloadPromise1;
|
|
1640
|
+
// Wait for the download process to complete and save the downloaded file in given path.
|
|
1641
|
+
await download.saveAs("./core/xlr-ui/build/playwright/" + download.suggestedFilename());
|
|
1642
|
+
(0, $kKeXs$playwrighttest.expect)(download.suggestedFilename()).toBe(filename);
|
|
1643
|
+
}
|
|
1644
|
+
async deleteAttachment(fileName) {
|
|
1645
|
+
await this.page.getByRole("row", {
|
|
1646
|
+
name: fileName
|
|
1647
|
+
}).locator("span").click();
|
|
1648
|
+
await this.page.getByText("Remove").click();
|
|
1649
|
+
}
|
|
1650
|
+
async expectVariableDisplayed(variable, present) {
|
|
1651
|
+
if (present) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`#release-properties .form-group`, {
|
|
1652
|
+
hasText: variable
|
|
1653
|
+
})).toHaveCount(1);
|
|
1654
|
+
else await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`#release-properties .form-group`, {
|
|
1655
|
+
hasText: variable
|
|
1656
|
+
})).toHaveCount(0);
|
|
1657
|
+
}
|
|
1658
|
+
async setScheduledStartDate(date, monthYear) {
|
|
1659
|
+
await this.page.locator(`.scheduled-start-date .date`).click();
|
|
1660
|
+
const prev = this.page.locator(".datepicker-days .prev");
|
|
1661
|
+
const next = this.page.locator(".datepicker-days .next");
|
|
1662
|
+
const monYear = this.page.locator(".datepicker-days .datepicker-switch");
|
|
1663
|
+
const thisMonth = (0, ($parcel$interopDefault($kKeXs$moment)))(monthYear, "MMMM YYYY").isBefore();
|
|
1664
|
+
while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
|
|
1665
|
+
else await next.click();
|
|
1666
|
+
await this.page.getByRole("cell", {
|
|
1667
|
+
name: "" + date + ""
|
|
1668
|
+
}).first().click();
|
|
1669
|
+
}
|
|
1670
|
+
async setScheduledStartTime(hrs, mins, meridian) {
|
|
1671
|
+
await this.page.locator(".scheduled-start-date .time-picker-holder").click();
|
|
1672
|
+
if (typeof hrs !== "undefined") {
|
|
1673
|
+
await this.page.locator(".bootstrap-timepicker-hour").click();
|
|
1674
|
+
await this.page.locator(".bootstrap-timepicker-hour").clear();
|
|
1675
|
+
await this.page.locator(".bootstrap-timepicker-hour").fill(hrs);
|
|
1676
|
+
}
|
|
1677
|
+
if (typeof mins !== "undefined") {
|
|
1678
|
+
await this.page.locator(".bootstrap-timepicker-minute").click();
|
|
1679
|
+
await this.page.locator(".bootstrap-timepicker-minute").clear();
|
|
1680
|
+
await this.page.locator(".bootstrap-timepicker-minute").fill(mins);
|
|
1681
|
+
}
|
|
1682
|
+
if (typeof meridian !== "undefined") {
|
|
1683
|
+
await this.page.locator(".bootstrap-timepicker-meridian").click();
|
|
1684
|
+
await this.page.locator(".bootstrap-timepicker-meridian").clear();
|
|
1685
|
+
await this.page.locator(".bootstrap-timepicker-meridian").fill(meridian);
|
|
1686
|
+
}
|
|
1687
|
+
await this.page.keyboard.press("Escape");
|
|
1688
|
+
}
|
|
1689
|
+
async setDuration(days, hours, mins) {
|
|
1690
|
+
await this.page.locator(".duration-editor").click();
|
|
1691
|
+
if (typeof days !== "undefined") {
|
|
1692
|
+
await this.page.locator(".days").click();
|
|
1693
|
+
await this.page.locator(".days").clear();
|
|
1694
|
+
await this.page.locator(".days").fill(days);
|
|
1695
|
+
}
|
|
1696
|
+
if (typeof hours !== "undefined") {
|
|
1697
|
+
await this.page.locator(".hours").click();
|
|
1698
|
+
await this.page.locator(".hours").clear();
|
|
1699
|
+
await this.page.locator(".hours").fill(hours);
|
|
1700
|
+
}
|
|
1701
|
+
if (typeof mins !== "undefined") {
|
|
1702
|
+
await this.page.locator(".minutes").click();
|
|
1703
|
+
await this.page.locator(".minutes").clear();
|
|
1704
|
+
await this.page.locator(".minutes").fill(mins);
|
|
1705
|
+
}
|
|
1706
|
+
await this.page.keyboard.press("Escape");
|
|
1707
|
+
}
|
|
1708
|
+
async expectScheduledStartDateToBe(date) {
|
|
1709
|
+
(0, $kKeXs$playwrighttest.expect)(await this.page.locator(`.scheduled-start-date .date input`).getAttribute("value")).toContain(date);
|
|
1710
|
+
}
|
|
1711
|
+
async expectScheduledStartTimeToBe(date) {
|
|
1712
|
+
(0, $kKeXs$playwrighttest.expect)(await this.page.locator(`.scheduled-start-date .time input`).getAttribute("value")).toContain(date);
|
|
1713
|
+
}
|
|
1714
|
+
async expectDueDateToBe(date) {
|
|
1715
|
+
(0, $kKeXs$playwrighttest.expect)(await this.page.locator(".due-date .date input").getAttribute("value")).toContain(date);
|
|
1716
|
+
}
|
|
1717
|
+
async expectedDueDateTime(time) {
|
|
1718
|
+
(0, $kKeXs$playwrighttest.expect)(await this.page.locator(".due-date .time input").getAttribute("value")).toContain(time);
|
|
1719
|
+
}
|
|
1720
|
+
async expectDurationToBe(duration) {
|
|
1721
|
+
(0, $kKeXs$playwrighttest.expect)(await this.page.locator(".duration-editor").textContent()).toBe(duration);
|
|
1722
|
+
}
|
|
1723
|
+
async setDueDate(hrs, min, meridian) {
|
|
1724
|
+
await this.page.locator(".due-date .time-picker-holder").click();
|
|
1725
|
+
if (typeof hrs !== "undefined") {
|
|
1726
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").click();
|
|
1727
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").clear();
|
|
1728
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").fill(hrs);
|
|
1729
|
+
}
|
|
1730
|
+
if (typeof min !== "undefined") {
|
|
1731
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").click();
|
|
1732
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").clear();
|
|
1733
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").fill(min);
|
|
1734
|
+
}
|
|
1735
|
+
if (typeof meridian !== "undefined") {
|
|
1736
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").click();
|
|
1737
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").clear();
|
|
1738
|
+
await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").fill(meridian);
|
|
1739
|
+
}
|
|
1740
|
+
await this.page.keyboard.press("Escape");
|
|
1741
|
+
}
|
|
1585
1742
|
}
|
|
1586
1743
|
|
|
1587
1744
|
|
|
@@ -1606,6 +1763,16 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
|
|
|
1606
1763
|
getPhase(phaseName) {
|
|
1607
1764
|
return new $9b9a8c3da392d020$var$Phase(this.page, phaseName);
|
|
1608
1765
|
}
|
|
1766
|
+
async expectNotFlagged() {
|
|
1767
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".flag-none-icon")).toBeHidden();
|
|
1768
|
+
}
|
|
1769
|
+
async expectFlagOnTaskCard() {
|
|
1770
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".risk-flag-icon")).toBeVisible();
|
|
1771
|
+
}
|
|
1772
|
+
async refresh() {
|
|
1773
|
+
await this.page.reload();
|
|
1774
|
+
await this.page.waitForSelector("#release");
|
|
1775
|
+
}
|
|
1609
1776
|
async start() {
|
|
1610
1777
|
await this.page.getByTestId("start-btn").click();
|
|
1611
1778
|
await this.page.getByRole("button", {
|
|
@@ -1659,6 +1826,25 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
|
|
|
1659
1826
|
timeout: 10000
|
|
1660
1827
|
});
|
|
1661
1828
|
}
|
|
1829
|
+
async waitForTaskPlanned(title) {
|
|
1830
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.task:has-text('${title}').planned`)).toBeVisible();
|
|
1831
|
+
}
|
|
1832
|
+
async openManualTaskDetails(title) {
|
|
1833
|
+
await this.page.locator(`text=${title}`).click({
|
|
1834
|
+
force: true
|
|
1835
|
+
});
|
|
1836
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("div").filter({
|
|
1837
|
+
hasText: title
|
|
1838
|
+
}).first()).toBeVisible();
|
|
1839
|
+
}
|
|
1840
|
+
async reopenTask(comment) {
|
|
1841
|
+
await this.page.locator("div").filter({
|
|
1842
|
+
hasText: /^Reopen$/
|
|
1843
|
+
}).click();
|
|
1844
|
+
await this.page.getByTestId("task-action-comment").click();
|
|
1845
|
+
await this.page.getByTestId("task-action-comment").fill(comment);
|
|
1846
|
+
await this.page.getByTestId("task-action-confirm").click();
|
|
1847
|
+
}
|
|
1662
1848
|
async openTaskDrawer(taskName) {
|
|
1663
1849
|
await this.page.locator(".task-header").getByText(taskName, {
|
|
1664
1850
|
exact: true
|
|
@@ -1754,6 +1940,16 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
|
|
|
1754
1940
|
}
|
|
1755
1941
|
}
|
|
1756
1942
|
}
|
|
1943
|
+
async expectTitleToBeInBreadcrumbLink(title) {
|
|
1944
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".dot-breadcrumbs a", {
|
|
1945
|
+
hasText: title
|
|
1946
|
+
})).toBeVisible();
|
|
1947
|
+
}
|
|
1948
|
+
async expectHasPhase(title) {
|
|
1949
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`#release-content .phase-title`, {
|
|
1950
|
+
hasText: title
|
|
1951
|
+
})).toBeVisible();
|
|
1952
|
+
}
|
|
1757
1953
|
}
|
|
1758
1954
|
class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
|
|
1759
1955
|
constructor(page, phaseName){
|
|
@@ -2206,15 +2402,46 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
|
|
|
2206
2402
|
}
|
|
2207
2403
|
async openTask(taskName) {
|
|
2208
2404
|
await this.filterTaskByTitle(taskName);
|
|
2209
|
-
await this.page.getByText(taskName).click();
|
|
2405
|
+
await this.page.getByText(taskName).first().click();
|
|
2406
|
+
}
|
|
2407
|
+
async skip(taskName, comment) {
|
|
2408
|
+
await this.page.locator(`.row.task-inner`, {
|
|
2409
|
+
hasText: taskName
|
|
2410
|
+
}).locator("span.skip").click();
|
|
2411
|
+
await this.page.getByPlaceholder("Give feedback or place a comment...").click();
|
|
2412
|
+
await this.page.getByPlaceholder("Give feedback or place a comment...").fill(comment);
|
|
2413
|
+
await this.page.getByRole("button", {
|
|
2414
|
+
name: "Skip",
|
|
2415
|
+
exact: true
|
|
2416
|
+
}).click();
|
|
2417
|
+
}
|
|
2418
|
+
async waitForTaskInProgress(taskName) {
|
|
2419
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.row.task-inner`, {
|
|
2420
|
+
hasText: taskName
|
|
2421
|
+
}).getByText("In progress")).toBeVisible();
|
|
2422
|
+
}
|
|
2423
|
+
async openTaskInReleaseView(taskName) {
|
|
2424
|
+
await this.page.locator(`.row.task-inner`, {
|
|
2425
|
+
hasText: taskName
|
|
2426
|
+
}).locator("a.view-in-release").click();
|
|
2427
|
+
}
|
|
2428
|
+
async openCalendarViaTaskDueDate(taskName) {
|
|
2429
|
+
await this.page.locator(`.row.task-inner`, {
|
|
2430
|
+
hasText: taskName
|
|
2431
|
+
}).locator(`.calendar-link a`).click();
|
|
2432
|
+
}
|
|
2433
|
+
async openTaskDrawer(taskName) {
|
|
2434
|
+
await this.page.locator(`.row.task-inner`, {
|
|
2435
|
+
hasText: taskName
|
|
2436
|
+
}).getByText(taskName).click();
|
|
2210
2437
|
}
|
|
2211
2438
|
async filterTaskByTitle(taskname) {
|
|
2212
|
-
await this.page.locator(".
|
|
2439
|
+
await this.page.locator(".searchFilter").click();
|
|
2213
2440
|
await this.page.locator(".searchFilter").fill(taskname);
|
|
2214
2441
|
await this.page.locator(".searchFilter").press("Enter");
|
|
2215
2442
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("//div[@data-task-title]").filter({
|
|
2216
2443
|
hasText: taskname
|
|
2217
|
-
})).toBeVisible();
|
|
2444
|
+
}).first()).toBeVisible();
|
|
2218
2445
|
}
|
|
2219
2446
|
async filterTasksByTag(tag, taskTitleForValidation) {
|
|
2220
2447
|
await this.page.locator(".toggle-search-filter").click();
|
|
@@ -2249,9 +2476,41 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
|
|
|
2249
2476
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".view-in-release")).not.toBeVisible();
|
|
2250
2477
|
}
|
|
2251
2478
|
}
|
|
2479
|
+
async openTaskList() {
|
|
2480
|
+
await this.page.goto("./#/tasks");
|
|
2481
|
+
}
|
|
2482
|
+
async clickOnAssigneeButton(title) {
|
|
2483
|
+
await this.page.locator(`.btn-group-filter.btn-group button.btn.btn-flat[title="${title}"]`).click();
|
|
2484
|
+
}
|
|
2485
|
+
async assignTaskToMe(title) {
|
|
2486
|
+
await this.page.locator(`.task-line`).filter({
|
|
2487
|
+
hasText: title
|
|
2488
|
+
}).locator(`.assign-to-me`).click();
|
|
2489
|
+
await this.page.locator('.modal:visible >> text="Assign to me"').click();
|
|
2490
|
+
}
|
|
2491
|
+
async expectTaskAssignedToMe(title) {
|
|
2492
|
+
await this.expectTaskAssignedTo(title, "me");
|
|
2493
|
+
}
|
|
2494
|
+
async expectTaskAssignedTo(title, user) {
|
|
2495
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.task-line:has-text("${title}") >> text="${user}"`).first()).toHaveCount(1);
|
|
2496
|
+
}
|
|
2252
2497
|
async expectTaskTitle(taskTitle) {
|
|
2253
2498
|
(0, $kKeXs$playwrighttest.expect)(await this.page.locator("#tasks0").innerText()).toContain(taskTitle);
|
|
2254
2499
|
}
|
|
2500
|
+
async expectGroupView(expected = true) {
|
|
2501
|
+
if (expected) {
|
|
2502
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).toBeChecked();
|
|
2503
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).toBeVisible();
|
|
2504
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).not.toBeVisible();
|
|
2505
|
+
} else {
|
|
2506
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).not.toBeChecked();
|
|
2507
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).not.toBeVisible();
|
|
2508
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).toBeVisible();
|
|
2509
|
+
}
|
|
2510
|
+
}
|
|
2511
|
+
async changeGroupView() {
|
|
2512
|
+
await this.page.locator("#group-tasks-by-release").click();
|
|
2513
|
+
}
|
|
2255
2514
|
}
|
|
2256
2515
|
|
|
2257
2516
|
|
|
@@ -2609,6 +2868,143 @@ class $8b6ce149dd48e48b$export$7e1d435fa474ee21 extends (0, $f8721861c660dd88$ex
|
|
|
2609
2868
|
}
|
|
2610
2869
|
|
|
2611
2870
|
|
|
2871
|
+
|
|
2872
|
+
|
|
2873
|
+
class $a6a3c1345fc4767e$export$b6fbc3e67030138f extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
|
|
2874
|
+
async setStatus(status) {
|
|
2875
|
+
await this.page.locator(".react-tagsinput").click({
|
|
2876
|
+
force: true
|
|
2877
|
+
});
|
|
2878
|
+
await this.page.getByText("Clear all").click();
|
|
2879
|
+
await this.page.locator(".react-tagsinput").click({
|
|
2880
|
+
force: true
|
|
2881
|
+
});
|
|
2882
|
+
if (status === "Select all") await this.page.getByText(status).click();
|
|
2883
|
+
else await this.page.getByTitle(status).locator("i").first().click();
|
|
2884
|
+
}
|
|
2885
|
+
async openReleaseGroup(title) {
|
|
2886
|
+
await this.page.locator("xlr-release-group-row").filter({
|
|
2887
|
+
hasText: title
|
|
2888
|
+
}).getByRole("link").click();
|
|
2889
|
+
await this.page.getByTitle(title).click();
|
|
2890
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveURL(/.*ReleaseGroup/);
|
|
2891
|
+
}
|
|
2892
|
+
async expectReleaseGroupStatus(status) {
|
|
2893
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-status")).toContainText(status);
|
|
2894
|
+
}
|
|
2895
|
+
async expectReleaseGroupDisplayed(title) {
|
|
2896
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
|
|
2897
|
+
exact: true
|
|
2898
|
+
})).toBeVisible();
|
|
2899
|
+
}
|
|
2900
|
+
async expectReleaseGroupNotDisplayed(title) {
|
|
2901
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
|
|
2902
|
+
exact: true
|
|
2903
|
+
})).not.toBeVisible();
|
|
2904
|
+
}
|
|
2905
|
+
async searchReleaseGroupByTitle(title) {
|
|
2906
|
+
await this.page.getByPlaceholder("Search for groups...", {
|
|
2907
|
+
exact: true
|
|
2908
|
+
}).click();
|
|
2909
|
+
await this.page.getByPlaceholder("Search for groups...", {
|
|
2910
|
+
exact: true
|
|
2911
|
+
}).fill(title);
|
|
2912
|
+
await this.page.getByPlaceholder("Search for groups...", {
|
|
2913
|
+
exact: true
|
|
2914
|
+
}).press("Enter");
|
|
2915
|
+
}
|
|
2916
|
+
async deleteReleaseGroup(title) {
|
|
2917
|
+
await this.page.locator(".fc-list-item-line").filter({
|
|
2918
|
+
hasText: title
|
|
2919
|
+
}).locator(".fc-item-delete").click();
|
|
2920
|
+
await this.page.getByRole("button", {
|
|
2921
|
+
name: "Delete"
|
|
2922
|
+
}).click();
|
|
2923
|
+
}
|
|
2924
|
+
async clickReleaseGroupEdit(title) {
|
|
2925
|
+
await this.page.locator(".fc-list-item-line").filter({
|
|
2926
|
+
hasText: title
|
|
2927
|
+
}).locator(".fc-item-update").click();
|
|
2928
|
+
}
|
|
2929
|
+
async enterReleaseGroupDetails(new_title) {
|
|
2930
|
+
await this.page.locator(".modal-body").locator("#title").fill(new_title);
|
|
2931
|
+
}
|
|
2932
|
+
async clickSaveButton() {
|
|
2933
|
+
await this.page.locator(".modal-footer").getByRole("button", {
|
|
2934
|
+
name: "Save"
|
|
2935
|
+
}).click();
|
|
2936
|
+
}
|
|
2937
|
+
async clickCancelButton() {
|
|
2938
|
+
await this.page.locator(".modal-footer").getByRole("button", {
|
|
2939
|
+
name: "Cancel"
|
|
2940
|
+
}).click();
|
|
2941
|
+
}
|
|
2942
|
+
}
|
|
2943
|
+
|
|
2944
|
+
|
|
2945
|
+
|
|
2946
|
+
|
|
2947
|
+
class $3fad6a9449b6416f$export$1a0994e9c202d529 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
|
|
2948
|
+
async expectReleaseDisplayed(title) {
|
|
2949
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
|
|
2950
|
+
exact: true
|
|
2951
|
+
})).toBeVisible();
|
|
2952
|
+
}
|
|
2953
|
+
async expectReleaseNotDisplayed(title) {
|
|
2954
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
|
|
2955
|
+
exact: true
|
|
2956
|
+
})).not.toBeVisible({
|
|
2957
|
+
timeout: 10000
|
|
2958
|
+
});
|
|
2959
|
+
}
|
|
2960
|
+
async expectPhaseDisplayed(title) {
|
|
2961
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
|
|
2962
|
+
exact: true
|
|
2963
|
+
})).toBeVisible();
|
|
2964
|
+
}
|
|
2965
|
+
async openContextMenu(title) {
|
|
2966
|
+
await this.page.locator(".timeline-row-name").filter({
|
|
2967
|
+
hasText: title
|
|
2968
|
+
}).locator(".options-icon").click();
|
|
2969
|
+
}
|
|
2970
|
+
async removeFromReleaseGroup() {
|
|
2971
|
+
await this.page.getByRole("menuitem", {
|
|
2972
|
+
name: "Remove from group"
|
|
2973
|
+
}).locator("a").click();
|
|
2974
|
+
await this.page.getByRole("button", {
|
|
2975
|
+
name: "Remove"
|
|
2976
|
+
}).click();
|
|
2977
|
+
}
|
|
2978
|
+
async expectNumberOfReleases(num_of_release) {
|
|
2979
|
+
const elementCount = await this.page.locator(".timeline-row-name-release").count();
|
|
2980
|
+
(0, $kKeXs$playwrighttest.expect)(elementCount).toBe(num_of_release);
|
|
2981
|
+
}
|
|
2982
|
+
async openAddReleaseList() {
|
|
2983
|
+
await this.page.getByRole("button", {
|
|
2984
|
+
name: "Add release"
|
|
2985
|
+
}).click();
|
|
2986
|
+
}
|
|
2987
|
+
async filterReleases(title) {
|
|
2988
|
+
await this.page.getByPlaceholder("Search for a release...").click();
|
|
2989
|
+
await this.page.getByPlaceholder("Search for a release...").fill(title);
|
|
2990
|
+
await this.page.waitForTimeout(5000);
|
|
2991
|
+
await this.page.getByPlaceholder("Search for a release...").press("Enter");
|
|
2992
|
+
}
|
|
2993
|
+
async expectNumberOfReleasesOnModal(num_of_release) {
|
|
2994
|
+
const elementCount = await this.page.locator(".release-modal-line").count();
|
|
2995
|
+
(0, $kKeXs$playwrighttest.expect)(elementCount).toBe(num_of_release);
|
|
2996
|
+
}
|
|
2997
|
+
async selectAllReleaseCheckbox() {
|
|
2998
|
+
await this.page.getByLabel("Select all").check();
|
|
2999
|
+
}
|
|
3000
|
+
async addReleasesToGroup() {
|
|
3001
|
+
await this.page.getByRole("button", {
|
|
3002
|
+
name: "Add"
|
|
3003
|
+
}).click();
|
|
3004
|
+
}
|
|
3005
|
+
}
|
|
3006
|
+
|
|
3007
|
+
|
|
2612
3008
|
class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
|
|
2613
3009
|
constructor(page){
|
|
2614
3010
|
this.page = page;
|
|
@@ -2622,6 +3018,8 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
|
|
|
2622
3018
|
this.taskDetailsPage = new (0, $a642d735048996f9$export$922081b54f2ab994)(page);
|
|
2623
3019
|
this.releaseCalendarPage = new (0, $a8855257f8bb2b12$export$43682cddead1dd78)(page);
|
|
2624
3020
|
this.releaseListPage = new (0, $87643f2d97b0644e$export$a678525e79c4ccc4)(page);
|
|
3021
|
+
this.releaseGroupPage = new (0, $a6a3c1345fc4767e$export$b6fbc3e67030138f)(page);
|
|
3022
|
+
this.releaseGroupTimelinePage = new (0, $3fad6a9449b6416f$export$1a0994e9c202d529)(page);
|
|
2625
3023
|
this.util = new (0, $4efca3d4eadf892b$export$6adb8dd3f0d1e432)(page);
|
|
2626
3024
|
}
|
|
2627
3025
|
async openTemplate(id) {
|
|
@@ -2755,6 +3153,7 @@ class $258749e0671c845a$export$f14c0e3f98d164c0 extends (0, $f8721861c660dd88$ex
|
|
|
2755
3153
|
timeout: 10000
|
|
2756
3154
|
});
|
|
2757
3155
|
await this.page.waitForTimeout(1000);
|
|
3156
|
+
await this.closePendoModalWindow();
|
|
2758
3157
|
}
|
|
2759
3158
|
/**
|
|
2760
3159
|
* Logout as authenticated user
|
|
@@ -2777,6 +3176,10 @@ class $258749e0671c845a$export$f14c0e3f98d164c0 extends (0, $f8721861c660dd88$ex
|
|
|
2777
3176
|
const val = await this.page.locator("top-toolbar .avatar-wrapper span.dot-tooltip").getAttribute("aria-label");
|
|
2778
3177
|
(0, $kKeXs$playwrighttest.expect)(val).toContain(username);
|
|
2779
3178
|
}
|
|
3179
|
+
async closePendoModalWindow() {
|
|
3180
|
+
await this.page.waitForTimeout(1000);
|
|
3181
|
+
if (await this.page.locator("._pendo-close-guide").count() > 0) await this.page.locator("._pendo-close-guide").click();
|
|
3182
|
+
}
|
|
2780
3183
|
}
|
|
2781
3184
|
|
|
2782
3185
|
|
|
@@ -3670,6 +4073,15 @@ class $6998c6a53a9eb4fa$var$Fixtures {
|
|
|
3670
4073
|
this.triggerIds.push(trigger.id);
|
|
3671
4074
|
return this.doPost("fixtures/trigger", trigger);
|
|
3672
4075
|
}
|
|
4076
|
+
roles(rolePrincipals) {
|
|
4077
|
+
return this.doPost("fixtures/roles/principals", rolePrincipals);
|
|
4078
|
+
}
|
|
4079
|
+
permissions(rolePermissions) {
|
|
4080
|
+
return this.doPost("fixtures/roles/permissions/global", rolePermissions);
|
|
4081
|
+
}
|
|
4082
|
+
deleteRole(roleName) {
|
|
4083
|
+
return this.doDelete(`fixtures/role/${roleName}`);
|
|
4084
|
+
}
|
|
3673
4085
|
deleteArchivedRelease(id) {
|
|
3674
4086
|
const releaseId = id.includes("Applications/") ? id : `Applications/${id}`;
|
|
3675
4087
|
return this.doDelete("fixtures/cis", [
|
|
@@ -3698,8 +4110,7 @@ class $6998c6a53a9eb4fa$var$Fixtures {
|
|
|
3698
4110
|
]);
|
|
3699
4111
|
}
|
|
3700
4112
|
deleteFolder(folderId) {
|
|
3701
|
-
|
|
3702
|
-
return this.doDelete(`api/v1/folders/${id}`);
|
|
4113
|
+
return this.doDelete(`api/v1/folders/${folderId}`);
|
|
3703
4114
|
}
|
|
3704
4115
|
activityLogs(id, logs) {
|
|
3705
4116
|
return this.doPost(`fixtures/activityLogs/${id}`, logs);
|
|
@@ -3850,6 +4261,9 @@ class $6998c6a53a9eb4fa$var$Fixtures {
|
|
|
3850
4261
|
}
|
|
3851
4262
|
]);
|
|
3852
4263
|
}
|
|
4264
|
+
async createReleaseGroup(releaseGroup) {
|
|
4265
|
+
return this.doPost("fixtures/release-groups", releaseGroup);
|
|
4266
|
+
}
|
|
3853
4267
|
doPost(url, body) {
|
|
3854
4268
|
return this.request.post(url, {
|
|
3855
4269
|
data: body,
|