@digital-ai/devops-page-object-release 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @digital-ai/devops-page-object-release
2
2
 
3
+ ## 0.0.15
4
+
5
+ ### Patch Changes
6
+
7
+ - 8d73cc7: Added methods related to release page on release attachment and flow scenario testscript migration
8
+ - 75e0e3d: S-106378: Create page Object for Release Group and Release timeline page
9
+ - a08d087: Fixtures for roles and permissions are created.
10
+ Pages objects created to migrate cypress test - tasks-list-scenario.
11
+
3
12
  ## 0.0.14
4
13
 
5
14
  ### Patch Changes
package/dist/main.js CHANGED
@@ -1582,6 +1582,36 @@ class $8681d8a3f46f87b7$export$d1077068a9cc9f17 extends (0, $f8721861c660dd88$ex
1582
1582
  hasText: filename
1583
1583
  })).toBeVisible();
1584
1584
  }
1585
+ async getAttachmentsListCount() {
1586
+ return await this.page.locator(".attachments tr").count();
1587
+ }
1588
+ async uploadFile(filePath) {
1589
+ const fileChooserPromise = this.page.waitForEvent("filechooser");
1590
+ await this.page.locator('input[type="file"]').click();
1591
+ const fileChooser = await fileChooserPromise;
1592
+ await fileChooser.setFiles(filePath);
1593
+ }
1594
+ async expectWithNoAttachment(filename) {
1595
+ const test = await this.page.locator(".attachments").isVisible();
1596
+ if (test) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".attachments tr td a").filter({
1597
+ hasText: filename
1598
+ })).not.toBeVisible();
1599
+ }
1600
+ async downloadFile(filename) {
1601
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
1602
+ const downloadPromise1 = this.page.waitForEvent("download");
1603
+ await this.page.getByText(filename).click();
1604
+ const download = await downloadPromise1;
1605
+ // Wait for the download process to complete and save the downloaded file in given path.
1606
+ await download.saveAs("./core/xlr-ui/build/playwright/" + download.suggestedFilename());
1607
+ (0, $kKeXs$playwrighttest.expect)(download.suggestedFilename()).toBe(filename);
1608
+ }
1609
+ async deleteAttachment(fileName) {
1610
+ await this.page.getByRole("row", {
1611
+ name: fileName
1612
+ }).locator("span").click();
1613
+ await this.page.getByText("Remove").click();
1614
+ }
1585
1615
  }
1586
1616
 
1587
1617
 
@@ -1754,6 +1784,11 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
1754
1784
  }
1755
1785
  }
1756
1786
  }
1787
+ async expectTitleToBeInBreadcrumbLink(title) {
1788
+ (0, $kKeXs$playwrighttest.expect)(this.page.locator(".dot-breadcrumbs a", {
1789
+ hasText: title
1790
+ })).toBeVisible();
1791
+ }
1757
1792
  }
1758
1793
  class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1759
1794
  constructor(page, phaseName){
@@ -2208,6 +2243,16 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
2208
2243
  await this.filterTaskByTitle(taskName);
2209
2244
  await this.page.getByText(taskName).click();
2210
2245
  }
2246
+ async openTaskInReleaseView(taskName) {
2247
+ await this.page.locator(`.row.task-inner`, {
2248
+ hasText: taskName
2249
+ }).locator("a.view-in-release").click();
2250
+ }
2251
+ async openCalendarViaTaskDueDate(taskName) {
2252
+ await this.page.locator(`.row.task-inner`, {
2253
+ hasText: taskName
2254
+ }).locator(`.calendar-link a`).click();
2255
+ }
2211
2256
  async filterTaskByTitle(taskname) {
2212
2257
  await this.page.locator(".toggle-search-filter").click();
2213
2258
  await this.page.locator(".searchFilter").fill(taskname);
@@ -2252,6 +2297,20 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
2252
2297
  async expectTaskTitle(taskTitle) {
2253
2298
  (0, $kKeXs$playwrighttest.expect)(await this.page.locator("#tasks0").innerText()).toContain(taskTitle);
2254
2299
  }
2300
+ async expectGroupView(expected = true) {
2301
+ if (expected) {
2302
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).toBeChecked();
2303
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).toBeVisible();
2304
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).not.toBeVisible();
2305
+ } else {
2306
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#group-tasks-by-release")).not.toBeChecked();
2307
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-list-grouped-view")).not.toBeVisible();
2308
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#task-ungrouped-view")).toBeVisible();
2309
+ }
2310
+ }
2311
+ async changeGroupView() {
2312
+ await this.page.locator("#group-tasks-by-release").click();
2313
+ }
2255
2314
  }
2256
2315
 
2257
2316
 
@@ -2609,6 +2668,143 @@ class $8b6ce149dd48e48b$export$7e1d435fa474ee21 extends (0, $f8721861c660dd88$ex
2609
2668
  }
2610
2669
 
2611
2670
 
2671
+
2672
+
2673
+ class $a6a3c1345fc4767e$export$b6fbc3e67030138f extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2674
+ async setStatus(status) {
2675
+ await this.page.locator(".react-tagsinput").click({
2676
+ force: true
2677
+ });
2678
+ await this.page.getByText("Clear all").click();
2679
+ await this.page.locator(".react-tagsinput").click({
2680
+ force: true
2681
+ });
2682
+ if (status === "Select all") await this.page.getByText(status).click();
2683
+ else await this.page.getByTitle(status).locator("i").first().click();
2684
+ }
2685
+ async openReleaseGroup(title) {
2686
+ await this.page.locator("xlr-release-group-row").filter({
2687
+ hasText: title
2688
+ }).getByRole("link").click();
2689
+ await this.page.getByTitle(title).click();
2690
+ await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveURL(/.*ReleaseGroup/);
2691
+ }
2692
+ async expectReleaseGroupStatus(status) {
2693
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-status")).toContainText(status);
2694
+ }
2695
+ async expectReleaseGroupDisplayed(title) {
2696
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
2697
+ exact: true
2698
+ })).toBeVisible();
2699
+ }
2700
+ async expectReleaseGroupNotDisplayed(title) {
2701
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
2702
+ exact: true
2703
+ })).not.toBeVisible();
2704
+ }
2705
+ async searchReleaseGroupByTitle(title) {
2706
+ await this.page.getByPlaceholder("Search for groups...", {
2707
+ exact: true
2708
+ }).click();
2709
+ await this.page.getByPlaceholder("Search for groups...", {
2710
+ exact: true
2711
+ }).fill(title);
2712
+ await this.page.getByPlaceholder("Search for groups...", {
2713
+ exact: true
2714
+ }).press("Enter");
2715
+ }
2716
+ async deleteReleaseGroup(title) {
2717
+ await this.page.locator(".fc-list-item-line").filter({
2718
+ hasText: title
2719
+ }).locator(".fc-item-delete").click();
2720
+ await this.page.getByRole("button", {
2721
+ name: "Delete"
2722
+ }).click();
2723
+ }
2724
+ async clickReleaseGroupEdit(title) {
2725
+ await this.page.locator(".fc-list-item-line").filter({
2726
+ hasText: title
2727
+ }).locator(".fc-item-update").click();
2728
+ }
2729
+ async enterReleaseGroupDetails(new_title) {
2730
+ await this.page.locator(".modal-body").locator("#title").fill(new_title);
2731
+ }
2732
+ async clickSaveButton() {
2733
+ await this.page.locator(".modal-footer").getByRole("button", {
2734
+ name: "Save"
2735
+ }).click();
2736
+ }
2737
+ async clickCancelButton() {
2738
+ await this.page.locator(".modal-footer").getByRole("button", {
2739
+ name: "Cancel"
2740
+ }).click();
2741
+ }
2742
+ }
2743
+
2744
+
2745
+
2746
+
2747
+ class $3fad6a9449b6416f$export$1a0994e9c202d529 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2748
+ async expectReleaseDisplayed(title) {
2749
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
2750
+ exact: true
2751
+ })).toBeVisible();
2752
+ }
2753
+ async expectReleaseNotDisplayed(title) {
2754
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
2755
+ exact: true
2756
+ })).not.toBeVisible({
2757
+ timeout: 10000
2758
+ });
2759
+ }
2760
+ async expectPhaseDisplayed(title) {
2761
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
2762
+ exact: true
2763
+ })).toBeVisible();
2764
+ }
2765
+ async openContextMenu(title) {
2766
+ await this.page.locator(".timeline-row-name").filter({
2767
+ hasText: title
2768
+ }).locator(".options-icon").click();
2769
+ }
2770
+ async removeFromReleaseGroup() {
2771
+ await this.page.getByRole("menuitem", {
2772
+ name: "Remove from group"
2773
+ }).locator("a").click();
2774
+ await this.page.getByRole("button", {
2775
+ name: "Remove"
2776
+ }).click();
2777
+ }
2778
+ async expectNumberOfReleases(num_of_release) {
2779
+ const elementCount = await this.page.locator(".timeline-row-name-release").count();
2780
+ (0, $kKeXs$playwrighttest.expect)(elementCount).toBe(num_of_release);
2781
+ }
2782
+ async openAddReleaseList() {
2783
+ await this.page.getByRole("button", {
2784
+ name: "Add release"
2785
+ }).click();
2786
+ }
2787
+ async filterReleases(title) {
2788
+ await this.page.getByPlaceholder("Search for a release...").click();
2789
+ await this.page.getByPlaceholder("Search for a release...").fill(title);
2790
+ await this.page.waitForTimeout(5000);
2791
+ await this.page.getByPlaceholder("Search for a release...").press("Enter");
2792
+ }
2793
+ async expectNumberOfReleasesOnModal(num_of_release) {
2794
+ const elementCount = await this.page.locator(".release-modal-line").count();
2795
+ (0, $kKeXs$playwrighttest.expect)(elementCount).toBe(num_of_release);
2796
+ }
2797
+ async selectAllReleaseCheckbox() {
2798
+ await this.page.getByLabel("Select all").check();
2799
+ }
2800
+ async addReleasesToGroup() {
2801
+ await this.page.getByRole("button", {
2802
+ name: "Add"
2803
+ }).click();
2804
+ }
2805
+ }
2806
+
2807
+
2612
2808
  class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
2613
2809
  constructor(page){
2614
2810
  this.page = page;
@@ -2622,6 +2818,8 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
2622
2818
  this.taskDetailsPage = new (0, $a642d735048996f9$export$922081b54f2ab994)(page);
2623
2819
  this.releaseCalendarPage = new (0, $a8855257f8bb2b12$export$43682cddead1dd78)(page);
2624
2820
  this.releaseListPage = new (0, $87643f2d97b0644e$export$a678525e79c4ccc4)(page);
2821
+ this.releaseGroupPage = new (0, $a6a3c1345fc4767e$export$b6fbc3e67030138f)(page);
2822
+ this.releaseGroupTimelinePage = new (0, $3fad6a9449b6416f$export$1a0994e9c202d529)(page);
2625
2823
  this.util = new (0, $4efca3d4eadf892b$export$6adb8dd3f0d1e432)(page);
2626
2824
  }
2627
2825
  async openTemplate(id) {
@@ -3670,6 +3868,15 @@ class $6998c6a53a9eb4fa$var$Fixtures {
3670
3868
  this.triggerIds.push(trigger.id);
3671
3869
  return this.doPost("fixtures/trigger", trigger);
3672
3870
  }
3871
+ roles(rolePrincipals) {
3872
+ return this.doPost("fixtures/roles/principals", rolePrincipals);
3873
+ }
3874
+ permissions(rolePermissions) {
3875
+ return this.doPost("fixtures/roles/permissions/global", rolePermissions);
3876
+ }
3877
+ deleteRole(roleName) {
3878
+ return this.doDelete(`fixtures/role/${roleName}`);
3879
+ }
3673
3880
  deleteArchivedRelease(id) {
3674
3881
  const releaseId = id.includes("Applications/") ? id : `Applications/${id}`;
3675
3882
  return this.doDelete("fixtures/cis", [
@@ -3698,8 +3905,7 @@ class $6998c6a53a9eb4fa$var$Fixtures {
3698
3905
  ]);
3699
3906
  }
3700
3907
  deleteFolder(folderId) {
3701
- const id = this.doGet(`api/v1/folders/${folderId}`);
3702
- return this.doDelete(`api/v1/folders/${id}`);
3908
+ return this.doDelete(`api/v1/folders/${folderId}`);
3703
3909
  }
3704
3910
  activityLogs(id, logs) {
3705
3911
  return this.doPost(`fixtures/activityLogs/${id}`, logs);
@@ -3850,6 +4056,9 @@ class $6998c6a53a9eb4fa$var$Fixtures {
3850
4056
  }
3851
4057
  ]);
3852
4058
  }
4059
+ async createReleaseGroup(releaseGroup) {
4060
+ return this.doPost("fixtures/release-groups", releaseGroup);
4061
+ }
3853
4062
  doPost(url, body) {
3854
4063
  return this.request.post(url, {
3855
4064
  data: body,