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

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/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";
@@ -25,7 +25,45 @@ class $9626bc9256ce31f7$export$2b65d1d97338f32b {
25
25
  }
26
26
 
27
27
 
28
+
29
+ class $05d91a1d3381a287$export$34addcca3f0ae43f extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
30
+ constructor(page){
31
+ super(page);
32
+ }
33
+ async setName(releaseName) {
34
+ await this.page.locator("#release-form-title").click();
35
+ await this.page.locator("#release-form-title").fill(releaseName);
36
+ }
37
+ async setDescription(description) {
38
+ await this.page.locator(".release-description").hover();
39
+ await this.page.locator(".display").filter({
40
+ hasText: "Set description"
41
+ }).locator(".edit-icon").click();
42
+ await this.page.locator("textarea").click();
43
+ await this.page.locator("textarea").clear();
44
+ await this.page.locator("textarea").fill(description);
45
+ await this.page.getByText("Save", {
46
+ exact: true
47
+ }).click();
48
+ }
49
+ async create() {
50
+ await this.page.getByRole("button", {
51
+ name: "Create"
52
+ }).waitFor({
53
+ state: "visible"
54
+ });
55
+ await this.page.getByRole("button", {
56
+ name: "Create"
57
+ }).click();
58
+ }
59
+ }
60
+
61
+
28
62
  class $5359280e98d97ff9$export$a678525e79c4ccc4 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
63
+ constructor(page){
64
+ super(page);
65
+ this.releaseCreatePage = new (0, $05d91a1d3381a287$export$34addcca3f0ae43f)(page);
66
+ }
29
67
  async expectNumberOfReleases(releaseTitle, amount) {
30
68
  await this.filterReleaseByTitle(releaseTitle);
31
69
  if (amount === 1) await (0, $hOLA6$expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible({
@@ -33,6 +71,10 @@ class $5359280e98d97ff9$export$a678525e79c4ccc4 extends (0, $9626bc9256ce31f7$ex
33
71
  });
34
72
  else await (0, $hOLA6$expect)(this.page.locator(".release").getByText(releaseTitle).count()).toBe(amount);
35
73
  }
74
+ async filterReleaseByAllStatus() {
75
+ await this.page.locator(".ci-status .remaining-tags").getByText("more").click();
76
+ await this.page.locator(".ci-status .xl-react-link").getByText("Select all").click();
77
+ }
36
78
  async openReleaseByName(releaseTitle) {
37
79
  await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
38
80
  hasText: releaseTitle
@@ -45,6 +87,12 @@ class $5359280e98d97ff9$export$a678525e79c4ccc4 extends (0, $9626bc9256ce31f7$ex
45
87
  await this.page.locator(".searchFilter").press("Enter");
46
88
  await (0, $hOLA6$expect)(this.page.locator(".release").getByText(releaseTitle)).toBeVisible();
47
89
  }
90
+ async createNewRelease(releaseName, description) {
91
+ await this.releaseCreatePage.setName(releaseName);
92
+ await this.releaseCreatePage.setDescription(description);
93
+ await this.releaseCreatePage.create();
94
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Flow")).toBeVisible();
95
+ }
48
96
  }
49
97
 
50
98
 
@@ -312,7 +360,7 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
312
360
  await this.page.getByTestId("single-action-button").click();
313
361
  await this.page.getByTestId("task-action-comment").click();
314
362
  await this.page.getByTestId("task-action-comment").fill(comment);
315
- await this.page.getByTestId("task-action-confirm").click();
363
+ await this.page.getByTestId("dot-button").click();
316
364
  }
317
365
  async expectDependenciesDisplayed(dependencies) {
318
366
  await this.railLocator.locator(".gate-task-dependencies").waitFor();
@@ -321,24 +369,19 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
321
369
  })).toBeVisible();
322
370
  }
323
371
  async expectCanDeleteDependency(title, canDelete = true) {
324
- if (canDelete) {
325
- const locat = this.page.locator(".dependency").filter({
326
- has: this.page.getByRole("link", {
327
- name: title,
328
- exact: true
329
- })
330
- }).locator(".icon-options");
331
- await locat.isVisible();
332
- await locat.click();
333
- await (0, $hOLA6$expect)(this.railLocator.getByRole("menuitem", {
334
- name: "Remove"
335
- })).toBeVisible();
336
- } else await (0, $hOLA6$expect)(this.page.locator(".dependency").filter({
372
+ const depOptionsIcon = this.page.locator(".dependency").filter({
337
373
  has: this.page.getByRole("link", {
338
374
  name: title,
339
375
  exact: true
340
376
  })
341
- }).locator(".icon-options")).not.toBeVisible();
377
+ }).locator(".icon-options");
378
+ if (canDelete) {
379
+ await depOptionsIcon.isVisible();
380
+ await depOptionsIcon.click();
381
+ await (0, $hOLA6$expect)(this.railLocator.getByRole("menuitem", {
382
+ name: "Remove"
383
+ })).toBeVisible();
384
+ } else await (0, $hOLA6$expect)(depOptionsIcon).not.toBeVisible();
342
385
  }
343
386
  async getDependencyCount() {
344
387
  await (0, $hOLA6$expect)(this.railLocator.locator(".gate-task-dependencies")).toBeVisible();
@@ -357,20 +400,20 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
357
400
  }).first()).toBeVisible();
358
401
  }
359
402
  async clickEditDependency(dependencies) {
360
- const locat = this.page.locator(".dependency").filter({
403
+ const depOptionsIcon = this.page.locator(".dependency").filter({
361
404
  has: this.page.getByRole("link", {
362
405
  name: dependencies,
363
406
  exact: true
364
407
  })
365
408
  }).locator(".icon-options");
366
- await locat.isVisible();
367
- await locat.click();
409
+ await depOptionsIcon.isVisible();
410
+ await depOptionsIcon.click();
368
411
  const frame = this.page.getByTestId("undefined-menu");
369
412
  if (await frame.isVisible()) await this.railLocator.getByRole("menuitem", {
370
413
  name: "Edit"
371
414
  }).click();
372
415
  else {
373
- await locat.nth(1).click();
416
+ await depOptionsIcon.click();
374
417
  await this.railLocator.getByRole("menuitem", {
375
418
  name: "Edit"
376
419
  }).click();
@@ -403,21 +446,23 @@ class $90bb70a7e909e500$export$fbbf45eff21470e3 extends (0, $9626bc9256ce31f7$ex
403
446
  async setRelease(releaseTitle) {
404
447
  await this.release.click();
405
448
  await this.release.fill(releaseTitle);
449
+ await this.page.getByRole("option", {
450
+ name: releaseTitle
451
+ }).waitFor();
406
452
  await this.page.getByRole("option", {
407
453
  name: releaseTitle
408
454
  }).click();
409
455
  }
410
456
  async save() {
411
- await (0, $hOLA6$expect)(this.dependencyLocator.getByRole("button", {
412
- name: "OK"
413
- })).toBeEnabled();
414
- await this.dependencyLocator.getByRole("button", {
415
- name: "OK"
416
- }).click();
457
+ await (0, $hOLA6$expect)(this.dependencyLocator.getByTestId("save-button")).toBeVisible();
458
+ await this.dependencyLocator.getByTestId("save-button").click();
417
459
  }
418
460
  async setPhase(phaseTitle) {
419
461
  await this.phase.click();
420
462
  await this.phase.fill("");
463
+ await this.page.getByRole("option", {
464
+ name: phaseTitle
465
+ }).waitFor();
421
466
  await this.page.getByRole("option", {
422
467
  name: phaseTitle
423
468
  }).click();
@@ -438,6 +483,7 @@ class $90bb70a7e909e500$export$fbbf45eff21470e3 extends (0, $9626bc9256ce31f7$ex
438
483
  (0, $hOLA6$expect)(variablemode).toBe("" + mode + "");
439
484
  }
440
485
  async clickVariable() {
486
+ await this.dependencyLocator.getByLabel("input-variable").waitFor();
441
487
  await this.dependencyLocator.getByLabel("input-variable").click();
442
488
  }
443
489
  //TODO: getAttribute('value') is not working as expected. Need to be fixed with better alternative.
@@ -504,13 +550,18 @@ class $9c357602b6f466e7$export$aa59788fdecae2f2 extends (0, $9626bc9256ce31f7$ex
504
550
  hasText: fileName
505
551
  }).click();
506
552
  await this.page.getByLabel("delete file").click();
553
+ await this.page.getByRole("button", {
554
+ name: "Delete"
555
+ }).waitFor({
556
+ state: "visible"
557
+ });
507
558
  await this.page.getByRole("button", {
508
559
  name: "Delete"
509
560
  }).click();
510
561
  }
511
562
  async expectWithNoAttachment(tempFile) {
512
- const test = await this.page.locator(".task-attachments-grid .file-item-text").isVisible();
513
- if (test) await (0, $hOLA6$expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toContainText(tempFile);
563
+ const test = await this.page.locator(".task-attachments-grid .file-item-text").count();
564
+ if (test > 0) await (0, $hOLA6$expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toContainText(tempFile);
514
565
  else await (0, $hOLA6$expect)(this.page.locator(".task-attachments-grid .file-item-text")).not.toBeVisible();
515
566
  }
516
567
  }
@@ -526,7 +577,7 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
526
577
  });
527
578
  this.cancelButton = this.page.getByTestId("task-action-cancel");
528
579
  this.commentBox = this.page.getByTestId("task-action-comment");
529
- this.confirm = this.page.getByTestId("task-action-confirm");
580
+ this.confirm = this.page.getByTestId("dot-button");
530
581
  this.activity = new (0, $69e86f559cdf2bd0$export$15d3f9b095bb5188)(page);
531
582
  this.attachment = new (0, $9c357602b6f466e7$export$aa59788fdecae2f2)(page);
532
583
  this.config = new (0, $e44e9af564fb00f7$export$64c93bc7fb9ca44e)(page);
@@ -535,6 +586,13 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
535
586
  this.skipMenu = this.page.getByRole("menuitem", {
536
587
  name: "Skip"
537
588
  });
589
+ this.failMenu = this.page.getByRole("menuitem", {
590
+ name: "Fail"
591
+ });
592
+ this.openMenu = this.page.getByRole("button", {
593
+ name: "arrow-down icon",
594
+ exact: true
595
+ });
538
596
  }
539
597
  async openOverviewRail() {
540
598
  await this.openRail("Overview");
@@ -564,19 +622,23 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
564
622
  await this.taskDrawerLocator.locator(".task-drawer-header").getByTestId("close-btn").click();
565
623
  }
566
624
  async retryTask(comment) {
625
+ await this.page.waitForTimeout(1000);
567
626
  await this.retryButton.click();
568
627
  await this.commentBox.fill(comment);
569
628
  await this.confirm.click();
570
629
  }
571
630
  async skipTask(comment) {
572
- await this.page.getByRole("button", {
573
- name: "arrow-down icon",
574
- exact: true
575
- }).click();
631
+ await this.openMenu.click();
576
632
  await this.skipMenu.click();
577
633
  await this.commentBox.fill(comment);
578
634
  await this.confirm.click();
579
635
  }
636
+ async failTask(comment) {
637
+ await this.openMenu.click();
638
+ await this.failMenu.click();
639
+ await this.commentBox.fill(comment);
640
+ await this.confirm.click();
641
+ }
580
642
  async expectTaskTitle(taskTitle) {
581
643
  (0, $hOLA6$expect)(await this.page.locator(".task-drawer .task-title-input .dot-view-mode-typography").innerText()).toContain(taskTitle);
582
644
  }
@@ -584,18 +646,64 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
584
646
  (0, $hOLA6$expect)(await this.page.locator(".task-drawer .task-type").innerText()).toContain(taskType);
585
647
  }
586
648
  async clickExpand() {
587
- await this.page.locator(".icon-fullscreen-enter").click();
588
- await (0, $hOLA6$expect)(this.page.locator(".icon-fullscreen-enter")).not.toBeVisible();
649
+ await this.page.getByRole("tooltip", {
650
+ name: "Expand"
651
+ }).getByTestId("expand-btn").click();
652
+ await (0, $hOLA6$expect)(this.page.getByRole("tooltip", {
653
+ name: "Shrink"
654
+ }).getByTestId("expand-btn")).toBeVisible();
589
655
  }
590
656
  async clickShrink() {
591
- await this.page.locator(".icon-fullscreen-exit").click();
592
- await (0, $hOLA6$expect)(this.page.locator(".icon-fullscreen-exit")).not.toBeVisible();
657
+ await this.page.getByRole("tooltip", {
658
+ name: "Shrink"
659
+ }).getByTestId("expand-btn").click();
660
+ await (0, $hOLA6$expect)(this.page.getByRole("tooltip", {
661
+ name: "Expand"
662
+ }).getByTestId("expand-btn")).toBeVisible();
663
+ }
664
+ async expectAssignedTo(username) {
665
+ await (0, $hOLA6$expect)(this.page.getByRole("button", {
666
+ name: username
667
+ })).toBeVisible();
668
+ }
669
+ async assignToMe(userName, existingUsername) {
670
+ await this.page.getByRole("button", {
671
+ name: existingUsername
672
+ }).click();
673
+ await this.page.getByTestId(`render-option-${userName}`).click();
674
+ }
675
+ async setFlag(flagName, flagComment) {
676
+ await this.page.getByTestId("flag-btn").click();
677
+ await this.page.getByLabel(flagName).click();
678
+ await this.page.getByPlaceholder("Set message").click();
679
+ await this.page.getByPlaceholder("Set message").fill(flagComment);
680
+ await this.page.getByPlaceholder("Set message").press("Enter");
681
+ await (0, $hOLA6$expect)(this.page.getByRole("button", {
682
+ name: `flag icon ${flagComment}`
683
+ })).toBeVisible();
684
+ }
685
+ async expectFlaggedWith(flagName, flagComment) {
686
+ await this.page.getByRole("button", {
687
+ name: "flag icon"
688
+ }).click();
689
+ const regexPattern = new RegExp(`${flagComment}.*${flagName}`, "i");
690
+ await (0, $hOLA6$expect)(this.page.getByText(regexPattern)).toBeVisible();
691
+ }
692
+ async expectStartDateToBeDisplayed() {
693
+ await (0, $hOLA6$expect)(this.page.getByTestId("start-date-title")).toHaveCount(1);
694
+ }
695
+ async expectEndDateToBeDisplayed() {
696
+ await (0, $hOLA6$expect)(this.page.getByTestId("end-date-title")).toHaveCount(1);
697
+ }
698
+ async expectStartDateAndEndDateToBeDisplayed() {
699
+ await (0, $hOLA6$expect)(this.page.getByTestId("month-and-year")).toHaveCount(2);
593
700
  }
594
701
  }
595
702
 
596
703
 
597
704
 
598
705
 
706
+
599
707
  class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
600
708
  constructor(page){
601
709
  super(page);
@@ -628,9 +736,10 @@ class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$ex
628
736
  async save() {
629
737
  await this.page.getByRole("button", {
630
738
  name: "Save"
631
- }).click({
632
- timeout: 2000
633
- });
739
+ }).waitFor();
740
+ await this.page.getByRole("button", {
741
+ name: "Save"
742
+ }).click();
634
743
  await (0, $hOLA6$expect)(this.page.locator(".form-footer .last-saved")).toBeVisible();
635
744
  }
636
745
  async reset() {
@@ -676,6 +785,179 @@ class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$ex
676
785
  }).locator("span").click();
677
786
  await this.page.getByText("Remove").click();
678
787
  }
788
+ async expectVariableDisplayed(variable, present) {
789
+ if (present) await (0, $hOLA6$expect)(this.page.locator(`#release-properties .form-group`, {
790
+ hasText: variable
791
+ })).toHaveCount(1);
792
+ else await (0, $hOLA6$expect)(this.page.locator(`#release-properties .form-group`, {
793
+ hasText: variable
794
+ })).toHaveCount(0);
795
+ }
796
+ async setScheduledStartDate(date, monthYear) {
797
+ await this.page.locator(`.scheduled-start-date .date`).click();
798
+ const prev = this.page.locator(".datepicker-days .prev");
799
+ const next = this.page.locator(".datepicker-days .next");
800
+ const monYear = this.page.locator(".datepicker-days .datepicker-switch");
801
+ const thisMonth = (0, $hOLA6$moment)(monthYear, "MMMM YYYY").isBefore();
802
+ while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
803
+ else await next.click();
804
+ await this.page.getByRole("cell", {
805
+ name: "" + date + ""
806
+ }).first().click();
807
+ }
808
+ async setScheduledStartTime(hrs, mins, meridian) {
809
+ await this.page.locator(".scheduled-start-date .time-picker-holder").click();
810
+ if (typeof hrs !== "undefined") {
811
+ await this.page.locator(".bootstrap-timepicker-hour").click();
812
+ await this.page.locator(".bootstrap-timepicker-hour").clear();
813
+ await this.page.locator(".bootstrap-timepicker-hour").fill(hrs);
814
+ }
815
+ if (typeof mins !== "undefined") {
816
+ await this.page.locator(".bootstrap-timepicker-minute").click();
817
+ await this.page.locator(".bootstrap-timepicker-minute").clear();
818
+ await this.page.locator(".bootstrap-timepicker-minute").fill(mins);
819
+ }
820
+ if (typeof meridian !== "undefined") {
821
+ await this.page.locator(".bootstrap-timepicker-meridian").click();
822
+ await this.page.locator(".bootstrap-timepicker-meridian").clear();
823
+ await this.page.locator(".bootstrap-timepicker-meridian").fill(meridian);
824
+ }
825
+ await this.page.keyboard.press("Escape");
826
+ }
827
+ async setDuration(days, hours, mins) {
828
+ await this.page.locator(".duration-editor").click();
829
+ if (typeof days !== "undefined") {
830
+ await this.page.locator(".days").click();
831
+ await this.page.locator(".days").clear();
832
+ await this.page.locator(".days").fill(days);
833
+ }
834
+ if (typeof hours !== "undefined") {
835
+ await this.page.locator(".hours").click();
836
+ await this.page.locator(".hours").clear();
837
+ await this.page.locator(".hours").fill(hours);
838
+ }
839
+ if (typeof mins !== "undefined") {
840
+ await this.page.locator(".minutes").click();
841
+ await this.page.locator(".minutes").clear();
842
+ await this.page.locator(".minutes").fill(mins);
843
+ }
844
+ await this.page.keyboard.press("Escape");
845
+ }
846
+ async expectScheduledStartDateToBe(date) {
847
+ (0, $hOLA6$expect)(await this.page.locator(`.scheduled-start-date .date input`).getAttribute("value")).toContain(date);
848
+ }
849
+ async expectScheduledStartTimeToBe(date) {
850
+ (0, $hOLA6$expect)(await this.page.locator(`.scheduled-start-date .time input`).getAttribute("value")).toContain(date);
851
+ }
852
+ async expectDueDateToBe(date) {
853
+ (0, $hOLA6$expect)(await this.page.locator(".due-date .date input").getAttribute("value")).toContain(date);
854
+ }
855
+ async expectedDueDateTime(time) {
856
+ (0, $hOLA6$expect)(await this.page.locator(".due-date .time input").getAttribute("value")).toContain(time);
857
+ }
858
+ async expectDurationToBe(duration) {
859
+ (0, $hOLA6$expect)(await this.page.locator(".duration-editor").textContent()).toBe(duration);
860
+ }
861
+ async setDueDate(hrs, min, meridian) {
862
+ await this.page.locator(".due-date .time-picker-holder").click();
863
+ if (typeof hrs !== "undefined") {
864
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").click();
865
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").clear();
866
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-hour").fill(hrs);
867
+ }
868
+ if (typeof min !== "undefined") {
869
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").click();
870
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").clear();
871
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-minute").fill(min);
872
+ }
873
+ if (typeof meridian !== "undefined") {
874
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").click();
875
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").clear();
876
+ await this.page.locator(".bootstrap-timepicker-widget .bootstrap-timepicker-meridian").fill(meridian);
877
+ }
878
+ await this.page.keyboard.press("Escape");
879
+ }
880
+ }
881
+
882
+
883
+
884
+
885
+
886
+ class $71075ce65fcede1d$export$9b575f14aa5e09a1 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
887
+ constructor(page){
888
+ super(page);
889
+ }
890
+ async openDatePicker(selector) {
891
+ await this.page.locator(`${selector} .date`).click();
892
+ }
893
+ /**
894
+ * Setting date, month and year from calendar picker
895
+ */ async setDate(date, monthYear) {
896
+ const prev = this.page.locator(".datepicker-days .prev");
897
+ const next = this.page.locator(".datepicker-days .next");
898
+ const monYear = this.page.locator(".datepicker-days .datepicker-switch");
899
+ const thisMonth = (0, $hOLA6$moment)(monthYear, "MMMM YYYY").isBefore();
900
+ while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
901
+ else await next.click();
902
+ await this.page.getByRole("cell", {
903
+ name: "" + date + ""
904
+ }).first().click();
905
+ }
906
+ async expectDurationToBe(duration) {
907
+ (0, $hOLA6$expect)(await this.page.locator(".duration-editor").textContent()).toBe(duration);
908
+ }
909
+ async setDuration(days, hours, mins) {
910
+ await this.page.locator(".duration-editor").click();
911
+ if (typeof days !== "undefined") await this.page.locator(".days").fill(days);
912
+ if (typeof hours !== "undefined") await this.page.locator(".hours").fill(hours);
913
+ if (typeof mins !== "undefined") await this.page.locator(".minutes").fill(mins);
914
+ await this.page.keyboard.press("Enter");
915
+ }
916
+ async expectTimeToBe(selector, format, date) {
917
+ if (typeof date === "string") date = new Date(date);
918
+ const formattedDate = (0, $hOLA6$moment)(date).format(format);
919
+ const input = this.page.locator(`${selector}`);
920
+ await (0, $hOLA6$expect)(input).toBeVisible();
921
+ const value = await input.inputValue();
922
+ (0, $hOLA6$expect)(value).toBe(formattedDate);
923
+ }
924
+ }
925
+
926
+
927
+
928
+
929
+
930
+ class $87bbb6d35ad31a00$export$f8f26dd395d7e1bd extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
931
+ constructor(page){
932
+ super(page);
933
+ this.tempDir = "";
934
+ this.content = "";
935
+ this.closeIcon = this.page.locator(".xl-icon.close-icon");
936
+ }
937
+ async createTempFile(fileName, testInfo) {
938
+ const content = fileName.toString();
939
+ const tempDir = testInfo.outputPath(fileName.toString());
940
+ $hOLA6$promises.writeFile(tempDir, content, "utf8");
941
+ }
942
+ async expandAllFolders() {
943
+ const icExpandTreeview1 = this.page.locator(".rstm-toggle-icon.xl-icon.arrow-right-icon");
944
+ for (const element of (await icExpandTreeview1.all())){
945
+ const blnVal = await element.isVisible();
946
+ if (blnVal) {
947
+ await element.click();
948
+ await this.expandAllFolders();
949
+ }
950
+ }
951
+ await (0, $hOLA6$expect)(icExpandTreeview1).not.toBeVisible();
952
+ }
953
+ async openSideNavMenu(menuItem) {
954
+ await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
955
+ exact: true
956
+ }).click();
957
+ }
958
+ async clickCloseIcon() {
959
+ await this.closeIcon.click();
960
+ }
679
961
  }
680
962
 
681
963
 
@@ -683,8 +965,10 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
683
965
  constructor(page){
684
966
  super(page);
685
967
  this.taskDrawer = new (0, $8e39246218b802fc$export$e946776eae644790)(page);
968
+ this.phaseTitle = this.page.locator(".phase .phase-title");
686
969
  this.properties = new (0, $c9bb587dd92143c3$export$d1077068a9cc9f17)(page);
687
970
  this.variables = new (0, $f48771b486a3eb8f$export$a87f0ae8695e74be)(page);
971
+ this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
688
972
  }
689
973
  async openTriggers() {
690
974
  await this.openSubPage("Triggers");
@@ -700,6 +984,16 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
700
984
  getPhase(phaseName) {
701
985
  return new $43cbcdfccb6c2a76$var$Phase(this.page, phaseName);
702
986
  }
987
+ async expectNotFlagged() {
988
+ await (0, $hOLA6$expect)(this.page.locator(".flag-none-icon")).toBeHidden();
989
+ }
990
+ async expectFlagOnTaskCard() {
991
+ await (0, $hOLA6$expect)(this.page.locator(".risk-flag-icon")).toBeVisible();
992
+ }
993
+ async refresh() {
994
+ await this.page.reload();
995
+ await this.page.waitForSelector("#release");
996
+ }
703
997
  async start() {
704
998
  await this.page.getByTestId("start-btn").click();
705
999
  await this.page.getByRole("button", {
@@ -718,6 +1012,11 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
718
1012
  timeout: 10000
719
1013
  });
720
1014
  }
1015
+ async waitForTaskInProgress(taskTitle) {
1016
+ await (0, $hOLA6$expect)(this.page.locator(".task.in_progress").getByText(taskTitle, {
1017
+ exact: true
1018
+ })).toBeVisible();
1019
+ }
721
1020
  async waitForTaskFailed(taskTitle) {
722
1021
  await (0, $hOLA6$expect)(this.page.locator(".task.failed").getByText(taskTitle, {
723
1022
  exact: true
@@ -732,6 +1031,13 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
732
1031
  timeout: 10000
733
1032
  });
734
1033
  }
1034
+ async waitForTaskSkippedInAdvance(taskTitle) {
1035
+ await (0, $hOLA6$expect)(this.page.locator(".task.skipped_in_advance").getByText(taskTitle, {
1036
+ exact: true
1037
+ })).toBeVisible({
1038
+ timeout: 10000
1039
+ });
1040
+ }
735
1041
  async waitForTaskAborted(taskTitle) {
736
1042
  await (0, $hOLA6$expect)(this.page.locator(".task.aborted").getByText(taskTitle, {
737
1043
  exact: true
@@ -753,6 +1059,25 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
753
1059
  timeout: 10000
754
1060
  });
755
1061
  }
1062
+ async waitForTaskPlanned(title) {
1063
+ await (0, $hOLA6$expect)(this.page.locator(`.task:has-text('${title}').planned`)).toBeVisible();
1064
+ }
1065
+ async openManualTaskDetails(title) {
1066
+ await this.page.locator(`text=${title}`).click({
1067
+ force: true
1068
+ });
1069
+ await (0, $hOLA6$expect)(this.page.locator("div").filter({
1070
+ hasText: title
1071
+ }).first()).toBeVisible();
1072
+ }
1073
+ async reopenTask(comment) {
1074
+ await this.page.locator("div").filter({
1075
+ hasText: /^Reopen$/
1076
+ }).click();
1077
+ await this.page.getByTestId("task-action-comment").click();
1078
+ await this.page.getByTestId("task-action-comment").fill(comment);
1079
+ await this.page.getByTestId("dot-button").click();
1080
+ }
756
1081
  async openTaskDrawer(taskName) {
757
1082
  await this.page.locator(".task-header").getByText(taskName, {
758
1083
  exact: true
@@ -772,25 +1097,32 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
772
1097
  return this.taskDrawer;
773
1098
  }
774
1099
  async openVariables() {
775
- await this.openReleaseMenu("Variables");
1100
+ await this.util.openSideNavMenu("Variables");
1101
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Variables")).toBeVisible();
776
1102
  }
777
1103
  async openProperties() {
778
- await this.openReleaseMenu("Properties");
1104
+ await this.util.openSideNavMenu("Properties");
1105
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Properties")).toBeVisible();
779
1106
  }
780
1107
  async openReleaseFlow() {
781
- await this.openReleaseMenu("Release flow");
1108
+ await this.util.openSideNavMenu("Flow");
1109
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Flow")).toBeVisible();
782
1110
  }
783
1111
  async openRelationships() {
784
- await this.openReleaseMenu("Relationships");
1112
+ await this.util.openSideNavMenu("Relationships");
1113
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Relationships")).toBeVisible();
785
1114
  }
786
1115
  async openTeamsPermissions() {
787
- await this.openReleaseMenu("Teams & Permissions");
1116
+ await this.util.openSideNavMenu("Teams & Permissions");
1117
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Teams & Permissions")).toBeVisible();
788
1118
  }
789
1119
  async openDashboard() {
790
- await this.openReleaseMenu("Dashboard");
1120
+ await this.util.openSideNavMenu("Dashboard");
1121
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Dashboard")).toBeVisible();
791
1122
  }
792
1123
  async openActivityLogs() {
793
- await this.openReleaseMenu("ActivityLogs");
1124
+ await this.util.openSideNavMenu("Activity logs");
1125
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Activity logs")).toBeVisible();
794
1126
  }
795
1127
  async openReleaseMenu(menuItem) {
796
1128
  await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
@@ -827,15 +1159,17 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
827
1159
  }
828
1160
  }
829
1161
  }
830
- async backToRelease() {
831
- await this.page.locator(".icon-back").click();
1162
+ async expectTemplateLabelNotToBePresent() {
1163
+ await (0, $hOLA6$expect)(this.page.locator(".dot-chip").filter({
1164
+ hasText: "TEMPLATE"
1165
+ })).not.toBeVisible();
832
1166
  }
833
1167
  async openTableView() {
834
- await this.page.locator(".xl-icon.table-icon").click();
1168
+ await this.util.openSideNavMenu("Table");
835
1169
  await (0, $hOLA6$expect)(this.page.locator(".release-grid-container")).toBeVisible();
836
1170
  }
837
1171
  async openPlannerView() {
838
- await this.page.locator(".xl-icon.planner-icon").click();
1172
+ await this.util.openSideNavMenu("Planner");
839
1173
  await (0, $hOLA6$expect)(this.page.locator(".gantt-container")).toBeVisible();
840
1174
  }
841
1175
  async expandGanttFolder() {
@@ -848,11 +1182,54 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
848
1182
  }
849
1183
  }
850
1184
  }
1185
+ async backToRelease() {
1186
+ await this.page.locator(".icon-back").click();
1187
+ }
851
1188
  async expectTitleToBeInBreadcrumbLink(title) {
852
- (0, $hOLA6$expect)(this.page.locator(".dot-breadcrumbs a", {
1189
+ await (0, $hOLA6$expect)(this.page.locator(".dot-breadcrumbs a", {
1190
+ hasText: title
1191
+ })).toBeVisible();
1192
+ }
1193
+ async expectHasPhase(title) {
1194
+ await (0, $hOLA6$expect)(this.page.locator(`#release-content .phase-title`, {
853
1195
  hasText: title
854
1196
  })).toBeVisible();
855
1197
  }
1198
+ async addNewPhase(phaseName) {
1199
+ await this.page.getByTestId("add-phase-btn").click();
1200
+ if (phaseName) {
1201
+ await this.phaseTitle.getByText("New Phase").click();
1202
+ await this.phaseTitle.getByRole("textbox").clear();
1203
+ await this.phaseTitle.getByRole("textbox").fill(phaseName);
1204
+ await this.page.keyboard.press("Enter");
1205
+ await (0, $hOLA6$expect)(this.phaseTitle.filter({
1206
+ hasText: phaseName
1207
+ })).toBeVisible();
1208
+ }
1209
+ }
1210
+ async renamePhase(oldPhaseName, newPhaseName) {
1211
+ await this.phaseTitle.getByText(oldPhaseName).click();
1212
+ await this.phaseTitle.filter({
1213
+ hasText: oldPhaseName
1214
+ }).locator(".editable").clear();
1215
+ await this.phaseTitle.filter({
1216
+ hasText: oldPhaseName
1217
+ }).locator(".editable").fill(newPhaseName);
1218
+ await this.page.keyboard.press("Enter");
1219
+ await (0, $hOLA6$expect)(this.phaseTitle.filter({
1220
+ hasText: newPhaseName
1221
+ })).toBeVisible();
1222
+ }
1223
+ async exportRelease() {
1224
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
1225
+ this.page.on("download", ()=>{});
1226
+ await this.page.getByTestId("template-export-btn").click();
1227
+ const downloadPromise = this.page.waitForEvent("download");
1228
+ await this.page.getByRole("link", {
1229
+ name: "Audit report (Excel)"
1230
+ }).click();
1231
+ await downloadPromise;
1232
+ }
856
1233
  }
857
1234
  class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
858
1235
  constructor(page, phaseName){
@@ -860,6 +1237,9 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
860
1237
  this.phaseLocator = page.locator(".phase", {
861
1238
  hasText: phaseName
862
1239
  });
1240
+ this.commentBox = this.page.locator(`.input-block-level`);
1241
+ this.confirm = this.page.getByTestId("dot-button");
1242
+ this.dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(page);
863
1243
  }
864
1244
  async setTitle(title) {
865
1245
  await this.phaseLocator.locator(".phase-header .display").click();
@@ -870,25 +1250,16 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
870
1250
  async expectTaskBorderWithColor(taskName, color) {
871
1251
  await (0, $hOLA6$expect)(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS("border-top-color", color);
872
1252
  }
873
- async addTaskInPhase(taskTitle, taskType) {
1253
+ async addTaskInPhase(taskTitle, taskGroup, taskType) {
874
1254
  await this.phaseLocator.getByText("Add task").click();
875
- await this.phaseLocator.getByPlaceholder("Task title...").click();
876
- await this.phaseLocator.getByPlaceholder("Task title...").fill(taskTitle);
877
- await this.phaseLocator.locator(".xlr-ctx-menu-toggle").click();
878
- const count = taskType.length - 1;
879
- for(let i = 0; i < count; i++){
880
- await this.page.locator('[data-test="' + taskType[i] + '"]').getByText(taskType[i]).click();
881
- await this.page.getByText(taskType[i + 1]).click();
882
- }
883
- await this.phaseLocator.locator(".quick-controls-container a").getByText("Add", {
1255
+ await this.phaseLocator.getByLabel("Open", {
884
1256
  exact: true
885
1257
  }).click();
886
- await this.phaseLocator.locator(".button.cancel").click();
887
- await (0, $hOLA6$expect)(this.phaseLocator.locator(".task").filter({
888
- hasText: taskTitle
889
- })).toBeVisible({
890
- timeout: 5000
891
- });
1258
+ await this.phaseLocator.getByPlaceholder("Start typing to filter task").fill(taskGroup);
1259
+ await this.page.getByTestId(taskType).click();
1260
+ await this.phaseLocator.locator("#task-title").fill(taskTitle);
1261
+ await this.phaseLocator.getByTestId("save-select-task-btn").click();
1262
+ await (0, $hOLA6$expect)(this.phaseLocator.getByText(taskTitle)).toBeVisible();
892
1263
  }
893
1264
  async getNumberOfTasks() {
894
1265
  return await this.phaseLocator.locator(".task").count();
@@ -904,31 +1275,115 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
904
1275
  hasText: "TEMPLATE"
905
1276
  })).not.toBeVisible();
906
1277
  }
907
- }
908
-
909
-
910
-
911
-
912
- class $c313b10398604df2$export$1533b625ec0c75e2 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
913
- async goToApplicationsPage() {
914
- await this.page.goto("./#/applications");
915
- await (0, $hOLA6$expect)(this.page).toHaveTitle("Applications - Digital.ai Release");
916
- return this;
1278
+ async openContextMenuForTask(taskTitle) {
1279
+ await this.phaseLocator.locator(".task").filter({
1280
+ hasText: taskTitle
1281
+ }).locator(".context-menu-button").click();
917
1282
  }
918
- async addNewApplication(applicationName) {
919
- await this.page.locator(`//button[normalize-space()='New application']`).click();
920
- await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
921
- await this.page.locator(`//button[normalize-space()='Save']`).click();
922
- return this;
1283
+ async skipFromContextMenu(comment, taskTitle) {
1284
+ await this.openContextMenuForTask(taskTitle);
1285
+ await this.page.locator(".dropdown-menu li").getByText("Skip").click();
1286
+ await this.commentBox.fill(comment);
1287
+ await this.page.getByRole("button", {
1288
+ name: "Skip",
1289
+ exact: true
1290
+ }).click();
923
1291
  }
924
- async verifyApplicationisCreated(applicationName) {
925
- await this.page.waitForSelector(`div[title='${applicationName}'] strong`);
926
- return this;
1292
+ async openPhaseDetails() {
1293
+ await this.phaseLocator.locator(".phase-details").click();
927
1294
  }
928
- async createApplicationAndLinkEnvironment(environmentName, applicationName) {
929
- await this.page.locator(`//button[normalize-space()='New application']`).click();
930
- await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
931
- await this.page.locator("input[placeholder='Filter environment name...']").type(environmentName);
1295
+ async close() {
1296
+ await this.page.locator("button[type='button'] i[class='xl-icon close-icon']").click();
1297
+ }
1298
+ async expectStartDateToBeDisplayed() {
1299
+ await (0, $hOLA6$expect)(this.page.locator(".modal .start-date")).toBeVisible();
1300
+ }
1301
+ async expectDueDateToBeDisplayed() {
1302
+ await (0, $hOLA6$expect)(this.page.locator(".modal .due-date")).toBeVisible();
1303
+ }
1304
+ async expectEndDateToBeDisplayed() {
1305
+ await (0, $hOLA6$expect)(this.page.locator(".modal .end-date")).toBeVisible();
1306
+ }
1307
+ async setTitleFromPhaseDetails(title) {
1308
+ await this.page.locator("h4.phase-title").click();
1309
+ await this.page.locator("h4.phase-title input").fill(title);
1310
+ await this.page.locator("h4.phase-title input").press("Enter");
1311
+ await (0, $hOLA6$expect)(this.page.locator("h4.phase-title")).toContainText(title);
1312
+ }
1313
+ async setDueDateFromPhaseDetails(date, monthYear) {
1314
+ await this.dateUtil.openDatePicker(".modal .due-date .date-editor");
1315
+ await this.dateUtil.setDate(date, monthYear);
1316
+ }
1317
+ async setScheduledStartDateFromPhaseDetails(date, monthYear) {
1318
+ await this.dateUtil.openDatePicker(".modal .scheduled-start-date .date-editor");
1319
+ await this.dateUtil.setDate(date, monthYear);
1320
+ }
1321
+ async expectDurationToBe(duration) {
1322
+ await this.dateUtil.expectDurationToBe(duration);
1323
+ }
1324
+ async setDurationFromPhaseDetails(days, hours, mins) {
1325
+ await this.dateUtil.setDuration(days, hours, mins);
1326
+ }
1327
+ async expectDueTimeToBe(format, date) {
1328
+ await this.dateUtil.expectTimeToBe(".modal .due-date .time-picker-holder input", format, date);
1329
+ }
1330
+ async deleteTaskInPhase(taskName) {
1331
+ await this.page.locator(".task").filter({
1332
+ hasText: taskName
1333
+ }).locator(".xl-icon.options-icon").click();
1334
+ await this.page.locator(".remove-task-button").click();
1335
+ await (0, $hOLA6$expect)(this.page.getByRole("heading", {
1336
+ name: "Delete Task"
1337
+ })).toBeVisible();
1338
+ await this.page.getByRole("button", {
1339
+ name: "Delete"
1340
+ }).click();
1341
+ await (0, $hOLA6$expect)(this.phaseLocator.locator("li").filter({
1342
+ hasText: taskName
1343
+ })).not.toBeVisible();
1344
+ }
1345
+ async deletePhase(phaseName) {
1346
+ await this.phaseLocator.locator(".phase-header").filter({
1347
+ hasText: phaseName
1348
+ }).locator(".actions").hover();
1349
+ await this.phaseLocator.locator(".phase-header").filter({
1350
+ hasText: phaseName
1351
+ }).locator(".delete-icon").click();
1352
+ await (0, $hOLA6$expect)(this.page.getByRole("heading", {
1353
+ name: "Delete Phase"
1354
+ })).toBeVisible();
1355
+ await this.page.getByRole("button", {
1356
+ name: "Delete"
1357
+ }).click();
1358
+ await (0, $hOLA6$expect)(this.phaseLocator.locator(".phase-header").filter({
1359
+ hasText: phaseName
1360
+ })).not.toBeVisible();
1361
+ }
1362
+ }
1363
+
1364
+
1365
+
1366
+
1367
+ class $c313b10398604df2$export$1533b625ec0c75e2 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1368
+ async goToApplicationsPage() {
1369
+ await this.page.goto("./#/applications");
1370
+ await (0, $hOLA6$expect)(this.page).toHaveTitle("Applications - Digital.ai Release");
1371
+ return this;
1372
+ }
1373
+ async addNewApplication(applicationName) {
1374
+ await this.page.locator(`//button[normalize-space()='New application']`).click();
1375
+ await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
1376
+ await this.page.locator(`//button[normalize-space()='Save']`).click();
1377
+ return this;
1378
+ }
1379
+ async verifyApplicationisCreated(applicationName) {
1380
+ await this.page.waitForSelector(`div[title='${applicationName}'] strong`);
1381
+ return this;
1382
+ }
1383
+ async createApplicationAndLinkEnvironment(environmentName, applicationName) {
1384
+ await this.page.locator(`//button[normalize-space()='New application']`).click();
1385
+ await this.page.locator(`input[placeholder='Add name...']`).type(applicationName);
1386
+ await this.page.locator("input[placeholder='Filter environment name...']").type(environmentName);
932
1387
  await this.page.locator(`div[title='${environmentName}']`).click();
933
1388
  await this.page.locator(`//button[normalize-space()='Save']`).click();
934
1389
  await this.page.locator("i.xl-icon.close-icon").click();
@@ -937,6 +1392,435 @@ class $c313b10398604df2$export$1533b625ec0c75e2 extends (0, $9626bc9256ce31f7$ex
937
1392
  }
938
1393
 
939
1394
 
1395
+ class $b14c3492cf934ea2$export$e40b5d3c74b04c89 {
1396
+ static codePointA = 65;
1397
+ static codePointZ = 90;
1398
+ static getString() {
1399
+ return Math.random().toString(36).substring(2);
1400
+ }
1401
+ static getNumber(min, max) {
1402
+ return Math.floor(Math.random() * (max - min + 1) + min);
1403
+ }
1404
+ static getAlphabetsString(length) {
1405
+ let alphabets = "";
1406
+ for(let i = 0; i < length; i++)alphabets += String.fromCharCode($b14c3492cf934ea2$export$e40b5d3c74b04c89.getNumber($b14c3492cf934ea2$export$e40b5d3c74b04c89.codePointA, $b14c3492cf934ea2$export$e40b5d3c74b04c89.codePointZ));
1407
+ return alphabets;
1408
+ }
1409
+ }
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+ class $d13e78163af94d50$export$9b9454a7f137e99b extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1419
+ constructor(page){
1420
+ super(page);
1421
+ this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
1422
+ this.addName = page.locator('.xl-react-components input[placeholder="Add..."]');
1423
+ this.addDescription = page.getByPlaceholder("Set description...");
1424
+ }
1425
+ async clickNewDeliveryPattern() {
1426
+ await this.page.getByTestId("dot-button").click();
1427
+ await (0, $hOLA6$expect)(this.page.getByRole("heading", {
1428
+ name: "Create delivery pattern"
1429
+ })).toBeVisible();
1430
+ }
1431
+ async setPatternName(patternName) {
1432
+ await this.addName.click();
1433
+ await this.addName.clear();
1434
+ await this.addName.fill(patternName);
1435
+ }
1436
+ async setPatternDescription(patternDescription) {
1437
+ await this.page.getByPlaceholder("Set description...").click();
1438
+ await this.page.getByPlaceholder("Set description...").clear();
1439
+ await this.page.getByPlaceholder("Set description...").fill(patternDescription);
1440
+ }
1441
+ async enableAutoComplete() {
1442
+ await this.page.getByRole("checkbox").check();
1443
+ }
1444
+ async disableAutoComplete() {
1445
+ await this.page.getByRole("checkbox").uncheck();
1446
+ }
1447
+ async setDuration(month, days, hours) {
1448
+ await this.page.getByRole("group", {
1449
+ name: "Pattern details"
1450
+ }).getByRole("textbox").click();
1451
+ await this.page.locator('input[name="months"]').click();
1452
+ await this.page.locator('input[name="months"]').fill(month.toString());
1453
+ await this.page.locator('input[name="days"]').click();
1454
+ await this.page.locator('input[name="days"]').fill(days.toString());
1455
+ await this.page.locator('input[name="hours"]').click();
1456
+ await this.page.locator('input[name="hours"]').fill(hours.toString());
1457
+ }
1458
+ async createNewPattern(patternName, patternDescription) {
1459
+ await this.clickNewDeliveryPattern();
1460
+ await this.setPatternName(patternName);
1461
+ await this.setPatternDescription(patternDescription);
1462
+ await (0, $hOLA6$expect)(this.page.locator("#action-toolbar").filter({
1463
+ hasText: "Create"
1464
+ })).toBeEnabled();
1465
+ await this.page.locator("#action-toolbar").filter({
1466
+ hasText: "Create"
1467
+ }).dblclick();
1468
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Delivery flow")).toBeVisible();
1469
+ }
1470
+ async clickEditPatternIcon(patternName) {
1471
+ await this.page.locator(".delivery-pattern-row").filter({
1472
+ hasText: patternName
1473
+ }).locator(".edit").click();
1474
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Delivery flow")).toBeVisible();
1475
+ }
1476
+ async clickCopyPatternIcon(patternName) {
1477
+ await this.page.locator(".delivery-pattern-row").filter({
1478
+ hasText: patternName
1479
+ }).locator(".copy").click();
1480
+ await (0, $hOLA6$expect)(this.page.getByText("Copy delivery pattern")).toBeVisible();
1481
+ }
1482
+ async filterPatternByName(patternName) {
1483
+ await this.page.getByPlaceholder("Filter by name...").click();
1484
+ await this.page.getByPlaceholder("Filter by name...").clear();
1485
+ await this.page.getByPlaceholder("Filter by name...").fill(patternName);
1486
+ await this.page.getByPlaceholder("Filter by name...").press("Enter");
1487
+ await (0, $hOLA6$expect)(this.page.locator(".delivery-pattern-row").filter({
1488
+ hasText: patternName
1489
+ })).toBeVisible();
1490
+ }
1491
+ async openProperties() {
1492
+ await this.util.openSideNavMenu("Properties");
1493
+ return new $d13e78163af94d50$var$Properties(this.page);
1494
+ }
1495
+ async back() {
1496
+ await this.page.getByTestId("back-button").click();
1497
+ }
1498
+ async copyPattern(existingPatternName, NewPatternName) {
1499
+ await this.clickCopyPatternIcon(existingPatternName);
1500
+ await this.page.locator('.confirmation-content .xl-react-component-input-wrapper input[placeholder="Add..."]').click();
1501
+ await this.page.locator(".confirmation-content .close-icon").click();
1502
+ await this.addName.fill(NewPatternName);
1503
+ await this.page.getByRole("button", {
1504
+ name: "Continue"
1505
+ }).click();
1506
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Delivery flow")).toBeVisible();
1507
+ }
1508
+ async clickDeletePattern(patternName) {
1509
+ await this.page.locator(".delivery-pattern-row").filter({
1510
+ hasText: patternName
1511
+ }).locator(".delete").click();
1512
+ await (0, $hOLA6$expect)(this.page.getByText("Delete delivery pattern", {
1513
+ exact: true
1514
+ })).toBeVisible();
1515
+ await this.page.getByRole("button", {
1516
+ name: "Delete"
1517
+ }).click();
1518
+ await (0, $hOLA6$expect)(this.page.locator(".delivery-pattern-row").filter({
1519
+ hasText: patternName
1520
+ })).not.toBeVisible();
1521
+ }
1522
+ }
1523
+ class $d13e78163af94d50$var$Properties extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1524
+ constructor(page){
1525
+ super(page);
1526
+ this.addName = page.locator('.xl-react-components input[placeholder="Add..."]');
1527
+ this.addDescription = page.getByPlaceholder("Set description...");
1528
+ }
1529
+ async editName(name) {
1530
+ await this.addName.click();
1531
+ await this.addName.clear();
1532
+ await this.addName.fill(name);
1533
+ }
1534
+ async editDescription(description) {
1535
+ await this.page.getByPlaceholder("Set description...").click();
1536
+ await this.page.getByPlaceholder("Set description...").clear();
1537
+ await this.page.getByPlaceholder("Set description...").fill(description);
1538
+ }
1539
+ async editDuration(month, days, hours) {
1540
+ await this.page.getByRole("group", {
1541
+ name: "Pattern details"
1542
+ }).getByRole("textbox").click();
1543
+ await this.page.locator('input[name="months"]').click();
1544
+ await this.page.locator('input[name="months"]').fill(month.toString());
1545
+ await this.page.locator('input[name="days"]').click();
1546
+ await this.page.locator('input[name="days"]').fill(days.toString());
1547
+ await this.page.locator('input[name="hours"]').click();
1548
+ await this.page.locator('input[name="hours"]').fill(hours.toString());
1549
+ }
1550
+ async save() {
1551
+ await this.page.getByRole("button", {
1552
+ name: "Save"
1553
+ }).click();
1554
+ (0, $hOLA6$expect)(await this.page.locator(".saved-text").textContent()).toContain("Last saved on ");
1555
+ }
1556
+ }
1557
+
1558
+
1559
+ class $50c91328c9110668$export$b453f08936c58edb extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1560
+ constructor(page){
1561
+ super(page);
1562
+ this.patternPage = new (0, $d13e78163af94d50$export$9b9454a7f137e99b)(page);
1563
+ this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
1564
+ this.expandButton = this.page.getByRole("button", {
1565
+ name: " Expand"
1566
+ });
1567
+ }
1568
+ async openFoldersPage() {
1569
+ await this.page.goto("./#/folders");
1570
+ await (0, $hOLA6$expect)(this.page).toHaveTitle("Folders - Digital.ai Release");
1571
+ return this;
1572
+ }
1573
+ async backToAllFolders() {
1574
+ await this.page.locator(".icon-back.dot-i").click();
1575
+ await (0, $hOLA6$expect)(this.page).toHaveTitle("Folders - Digital.ai Release");
1576
+ await this.page.locator("button.btn-add-folder").isVisible();
1577
+ return this;
1578
+ }
1579
+ async createFolder(folderName) {
1580
+ await this.page.locator("button.btn-add-folder").click();
1581
+ await this.page.locator("div.xl-react-component-input-wrapper").type(folderName);
1582
+ await this.page.locator("button.xl-react-button.button.primary").click();
1583
+ await this.page.locator(`//button[normalize-space()='Add release']`).isVisible();
1584
+ return this;
1585
+ }
1586
+ async openFolder(folderName) {
1587
+ await this.page.locator(`.folder-row-wrapper span:text-is('${folderName}')`).click();
1588
+ return this;
1589
+ }
1590
+ async openGroups() {
1591
+ await this.util.openSideNavMenu("Groups");
1592
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Groups")).toBeVisible();
1593
+ return this;
1594
+ }
1595
+ async createGroup(groupName) {
1596
+ await this.page.locator("//button[normalize-space()='New release group']").click();
1597
+ await this.page.locator("#title").type(groupName);
1598
+ await this.page.locator("button[type='submit']").click();
1599
+ return this;
1600
+ }
1601
+ async selectPlannedStatus() {
1602
+ await this.page.locator(".remaining-tags").click();
1603
+ await this.page.locator('.xl-react-link:text-is("Clear all")').click();
1604
+ await this.page.locator(".react-tagsinput").click();
1605
+ await this.page.locator(`.yt-option[title=Planned]`).click();
1606
+ await this.page.locator("//span[normalize-space()='Status']").click();
1607
+ return this;
1608
+ }
1609
+ async expectReleaseGroupisDisplayed(title) {
1610
+ //await this.page.locator(`.fc-list-item-title-wrapper .fc-list-item-title strong:text-is('${title}`).isVisible()
1611
+ await this.page.waitForSelector(`.fc-list-item-title-wrapper .fc-list-item-title strong:text-is('${title}')`);
1612
+ return this;
1613
+ }
1614
+ async createSubFolder(parentFolder, subFolderName) {
1615
+ await this.expandButton.click();
1616
+ await this.page.getByRole("link", {
1617
+ name: parentFolder
1618
+ }).hover();
1619
+ await this.clickFolderOptions(parentFolder, "add");
1620
+ await this.page.getByRole("textbox").fill(subFolderName);
1621
+ await this.page.getByRole("button", {
1622
+ name: "Create"
1623
+ }).click();
1624
+ await (0, $hOLA6$expect)(this.page.getByRole("link", {
1625
+ name: subFolderName
1626
+ })).toBeVisible();
1627
+ }
1628
+ async renameFolder(existingFolderName, newFolderName) {
1629
+ await this.expandButton.click();
1630
+ await this.page.getByRole("link", {
1631
+ name: existingFolderName
1632
+ }).hover();
1633
+ await this.clickFolderOptions(existingFolderName, "edit");
1634
+ await this.page.locator(".folder-row-wrapper input").click();
1635
+ await this.page.locator(".folder-row-wrapper input").fill(newFolderName);
1636
+ await this.page.keyboard.press("Enter");
1637
+ await (0, $hOLA6$expect)(this.page.getByRole("link", {
1638
+ name: newFolderName
1639
+ })).toBeVisible();
1640
+ }
1641
+ async deleteFolder(folderName) {
1642
+ await this.expandButton.click();
1643
+ await this.page.getByRole("link", {
1644
+ name: folderName
1645
+ }).hover();
1646
+ await this.clickFolderOptions(folderName, "delete");
1647
+ await (0, $hOLA6$expect)(this.page.getByRole("heading", {
1648
+ name: "Delete folder"
1649
+ }).locator("span")).toBeVisible();
1650
+ await (0, $hOLA6$expect)(this.page.locator(".xl-react-modal .confirmation-content").getByText("You are about to delete the folder " + folderName + ". Folders nested in " + folderName + " will also be deleted.")).toBeVisible();
1651
+ await this.page.getByRole("button", {
1652
+ name: "Delete"
1653
+ }).click();
1654
+ await (0, $hOLA6$expect)(this.page.getByRole("link", {
1655
+ name: folderName
1656
+ })).not.toBeVisible();
1657
+ }
1658
+ async searchFolderByName(folderName) {
1659
+ await this.page.getByPlaceholder("Search folder...").click();
1660
+ await this.page.getByPlaceholder("Search folder...").clear();
1661
+ await this.page.getByPlaceholder("Search folder...").fill(folderName);
1662
+ await this.page.getByPlaceholder("Search folder...").press("Enter");
1663
+ await (0, $hOLA6$expect)(this.page.getByRole("link", {
1664
+ name: folderName
1665
+ })).toBeVisible();
1666
+ }
1667
+ async openPatterns() {
1668
+ await this.util.openSideNavMenu("Patterns");
1669
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Patterns")).toBeVisible();
1670
+ return this.patternPage;
1671
+ }
1672
+ async clickFolderOptions(folderName, option) {
1673
+ await this.page.locator(".folder-row-wrapper", {
1674
+ hasText: folderName
1675
+ }).locator(`.xl-icon.${option}-icon`).click();
1676
+ }
1677
+ }
1678
+
1679
+
1680
+
1681
+
1682
+
1683
+ class $3df1257265fba073$export$74ca1eaaa9a0054 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1684
+ constructor(page){
1685
+ super(page);
1686
+ this.addListValue = this.page.locator(".variable-selector .xl-components-input-full input");
1687
+ this.addVariableValue = this.page.locator(".variable-value .xl-components-input-full input");
1688
+ this.addVariablelabel = this.page.locator(".variable-label input");
1689
+ this.listAddButton = this.page.getByRole("button", {
1690
+ name: "Add"
1691
+ });
1692
+ }
1693
+ async addVariableText(valuename) {
1694
+ await this.page.getByRole("combobox").selectOption("StringVariable");
1695
+ await this.page.locator(".variable-value").type(valuename);
1696
+ await this.submitTheVariable();
1697
+ }
1698
+ async addVariableListbox(possiblevalue) {
1699
+ await this.page.getByRole("combobox").selectOption("DropDownListBox");
1700
+ await this.addListValue.fill(possiblevalue);
1701
+ await this.listAddButton.click();
1702
+ await this.page.getByRole("combobox").nth(1).selectOption(possiblevalue);
1703
+ await this.submitTheVariable();
1704
+ }
1705
+ async addVariablePassword(possiblevalue) {
1706
+ await this.page.getByRole("combobox").selectOption("PasswordStringVariable");
1707
+ await this.page.locator('input[type="password"]').type(possiblevalue);
1708
+ await this.submitTheVariable();
1709
+ }
1710
+ async addVariableCheckbox() {
1711
+ await this.page.getByRole("combobox").selectOption("BooleanVariable");
1712
+ await this.page.getByRole("checkbox").check();
1713
+ await this.submitTheVariable();
1714
+ }
1715
+ async addVariableNumber(possiblevalue) {
1716
+ await this.page.getByRole("combobox").selectOption("IntegerVariable");
1717
+ await this.page.locator('input[ng-model="var.value"]').fill(possiblevalue);
1718
+ await this.submitTheVariable();
1719
+ }
1720
+ async addVariableList(possiblevalue1, possiblevalue2) {
1721
+ await this.page.getByRole("combobox").selectOption("ListStringVariable");
1722
+ await this.addVariableValue.fill(possiblevalue1);
1723
+ await this.listAddButton.click();
1724
+ await this.addVariableValue.fill(possiblevalue2);
1725
+ await this.listAddButton.click();
1726
+ await this.submitTheVariable();
1727
+ }
1728
+ async addVariableMultiList(possiblevalue1, possiblevalue2) {
1729
+ await this.page.getByRole("combobox").selectOption("MultiSelectListBox");
1730
+ await this.addListValue.fill(possiblevalue1);
1731
+ await this.listAddButton.click();
1732
+ await this.addListValue.fill(possiblevalue2);
1733
+ await this.listAddButton.click();
1734
+ await this.page.locator(".react-tagsinput").click();
1735
+ await this.page.getByText("Select all", {
1736
+ exact: true
1737
+ }).click();
1738
+ await this.submitTheVariable();
1739
+ }
1740
+ async addVariableDate() {
1741
+ await this.page.getByRole("combobox").selectOption("DateVariable");
1742
+ await this.page.getByText("Select date").click();
1743
+ }
1744
+ async setDate(date, monthYear) {
1745
+ const dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(this.page);
1746
+ await dateUtil.setDate(date, monthYear);
1747
+ }
1748
+ async addVariableKeyValueMap(keys1, values1) {
1749
+ await this.page.getByRole("combobox").selectOption("MapStringStringVariable");
1750
+ await this.page.getByPlaceholder("key").fill(keys1);
1751
+ await this.page.getByPlaceholder("Value").fill(values1);
1752
+ await this.listAddButton.click();
1753
+ await this.page.locator(".xl-map-string-string-div-buttons .search-icon").click();
1754
+ await this.page.getByRole("row", {
1755
+ name: "Search"
1756
+ }).getByRole("textbox").fill(keys1);
1757
+ const detail = await this.page.locator("table.table-condensed span").allInnerTexts();
1758
+ await (0, $hOLA6$expect)(detail[0]).toEqual(keys1);
1759
+ await (0, $hOLA6$expect)(detail[1]).toEqual(values1);
1760
+ await this.submitTheVariable();
1761
+ }
1762
+ async addVariableSet(possiblevalue1) {
1763
+ await this.page.getByRole("combobox").selectOption("SetStringVariable");
1764
+ await this.page.locator(".dip-input input").fill(possiblevalue1);
1765
+ await this.listAddButton.click();
1766
+ await this.submitTheVariable();
1767
+ }
1768
+ async addNewVariable(variableName, labelname, description) {
1769
+ await this.page.getByRole("button", {
1770
+ name: "New global variable"
1771
+ }).click();
1772
+ await this.page.locator(`div.input-group > input`).type(variableName);
1773
+ await this.addVariablelabel.fill(labelname);
1774
+ await this.page.locator(".variable-description input").fill(description);
1775
+ }
1776
+ async verifyGlobalVariableCreation(variableName) {
1777
+ await this.page.locator("[id='variables-filter']").fill(variableName);
1778
+ await (0, $hOLA6$expect)(this.page.locator(".variable.ui-sortable-handle").filter({
1779
+ hasText: variableName
1780
+ })).toBeVisible();
1781
+ }
1782
+ async submitTheVariable() {
1783
+ const pagesubmit = await this.page.locator(".button.save");
1784
+ await pagesubmit.hover();
1785
+ await pagesubmit.click();
1786
+ }
1787
+ async deleteGlobalVariable(variableName) {
1788
+ await this.page.locator("[id='variables-filter']").fill(variableName);
1789
+ await this.page.getByText("Delete").click();
1790
+ await (0, $hOLA6$expect)(this.page.locator("h4.ng-binding")).toContainText(variableName);
1791
+ await this.page.getByRole("button", {
1792
+ name: "Cancel"
1793
+ }).click();
1794
+ await this.verifyGlobalVariableCreation(variableName);
1795
+ await this.page.getByText("Delete").click();
1796
+ await this.page.getByRole("button", {
1797
+ name: "Delete"
1798
+ }).click();
1799
+ await this.page.locator("alert.notice.ng-scope").isVisible();
1800
+ }
1801
+ async editVariable(variableName, editedvariabletext) {
1802
+ await this.page.locator("[id='variables-filter']").fill(variableName);
1803
+ await this.page.getByText("Edit").click();
1804
+ await this.addVariablelabel.clear();
1805
+ await this.addVariablelabel.fill(editedvariabletext);
1806
+ await this.page.getByRole("button", {
1807
+ name: "Save"
1808
+ }).click();
1809
+ await (0, $hOLA6$expect)(this.page.locator(".variable.ui-sortable-handle").getByText(editedvariabletext, {
1810
+ exact: true
1811
+ })).toBeVisible();
1812
+ }
1813
+ }
1814
+
1815
+
1816
+
1817
+ class $2174535b78371022$export$36d69433c4f81145 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1818
+ constructor(page){
1819
+ super(page);
1820
+ }
1821
+ }
1822
+
1823
+
940
1824
 
941
1825
 
942
1826
  class $6720a523bcb1cce0$export$3cac5fd37ae64b91 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
@@ -1006,11 +1890,13 @@ class $21185a378c23589e$export$e2e2e1ffdce20c30 extends (0, $9626bc9256ce31f7$ex
1006
1890
  }
1007
1891
 
1008
1892
 
1893
+
1009
1894
  class $2cb6a6ac6b17e85f$export$107317390f5aa598 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1010
1895
  constructor(page){
1011
1896
  super(page);
1012
1897
  this.page = page;
1013
1898
  this.modal = new (0, $21185a378c23589e$export$e2e2e1ffdce20c30)(page);
1899
+ this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
1014
1900
  }
1015
1901
  async openUsersPage() {
1016
1902
  this.page.goto("./#/users", {
@@ -1047,6 +1933,18 @@ class $2cb6a6ac6b17e85f$export$107317390f5aa598 extends (0, $9626bc9256ce31f7$ex
1047
1933
  }).locator("i").nth(1).click();
1048
1934
  await this.modal.delete();
1049
1935
  }
1936
+ async openRoles() {
1937
+ await this.util.openSideNavMenu("Roles");
1938
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Roles")).toBeVisible();
1939
+ }
1940
+ async openPermissions() {
1941
+ await this.util.openSideNavMenu("Permissions");
1942
+ await (0, $hOLA6$expect)(this.page.locator(".permissions-table-v2")).toBeVisible();
1943
+ }
1944
+ async openTaskAccess() {
1945
+ await this.util.openSideNavMenu("Task access");
1946
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Task access")).toBeVisible();
1947
+ }
1050
1948
  }
1051
1949
 
1052
1950
 
@@ -1296,16 +2194,186 @@ class $3a340a3f4fd8f04d$export$43682cddead1dd78 extends (0, $9626bc9256ce31f7$ex
1296
2194
 
1297
2195
 
1298
2196
 
2197
+ class $cc2d15e53de5cef7$export$b6fbc3e67030138f extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
2198
+ async setStatus(status) {
2199
+ await this.page.locator(".react-tagsinput").click({
2200
+ force: true
2201
+ });
2202
+ await this.page.getByText("Clear all").click();
2203
+ await this.page.locator(".react-tagsinput").click({
2204
+ force: true
2205
+ });
2206
+ if (status === "Select all") await this.page.getByText(status).click();
2207
+ else await this.page.getByTitle(status).locator("i").first().click();
2208
+ }
2209
+ async openReleaseGroup(title) {
2210
+ await this.page.locator("xlr-release-group-row").filter({
2211
+ hasText: title
2212
+ }).getByRole("link").click();
2213
+ await this.page.getByTitle(title).click();
2214
+ await (0, $hOLA6$expect)(this.page).toHaveURL(/.*ReleaseGroup/);
2215
+ }
2216
+ async expectReleaseGroupStatus(status) {
2217
+ await (0, $hOLA6$expect)(this.page.locator(".release-status")).toContainText(status);
2218
+ }
2219
+ async expectReleaseGroupDisplayed(title) {
2220
+ await (0, $hOLA6$expect)(this.page.getByText(title, {
2221
+ exact: true
2222
+ })).toBeVisible();
2223
+ }
2224
+ async expectReleaseGroupNotDisplayed(title) {
2225
+ await (0, $hOLA6$expect)(this.page.getByText(title, {
2226
+ exact: true
2227
+ })).not.toBeVisible();
2228
+ }
2229
+ async searchReleaseGroupByTitle(title) {
2230
+ await this.page.getByPlaceholder("Search for groups...", {
2231
+ exact: true
2232
+ }).click();
2233
+ await this.page.getByPlaceholder("Search for groups...", {
2234
+ exact: true
2235
+ }).fill(title);
2236
+ await this.page.getByPlaceholder("Search for groups...", {
2237
+ exact: true
2238
+ }).press("Enter");
2239
+ }
2240
+ async deleteReleaseGroup(title) {
2241
+ await this.page.locator(".fc-list-item-line").filter({
2242
+ hasText: title
2243
+ }).locator(".fc-item-delete").click();
2244
+ await this.page.getByRole("button", {
2245
+ name: "Delete"
2246
+ }).click();
2247
+ }
2248
+ async clickReleaseGroupEdit(title) {
2249
+ await this.page.locator(".fc-list-item-line").filter({
2250
+ hasText: title
2251
+ }).locator(".fc-item-update").click();
2252
+ }
2253
+ async enterReleaseGroupDetails(new_title) {
2254
+ await this.page.locator(".modal-body").locator("#title").fill(new_title);
2255
+ }
2256
+ async clickSaveButton() {
2257
+ await this.page.locator(".modal-footer").getByRole("button", {
2258
+ name: "Save"
2259
+ }).click();
2260
+ }
2261
+ async clickCancelButton() {
2262
+ await this.page.locator(".modal-footer").getByRole("button", {
2263
+ name: "Cancel"
2264
+ }).click();
2265
+ }
2266
+ }
2267
+
2268
+
2269
+
2270
+
2271
+ class $cc231ea61b77c7a2$export$1a0994e9c202d529 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
2272
+ async expectReleaseDisplayed(title) {
2273
+ await (0, $hOLA6$expect)(this.page.getByText(title, {
2274
+ exact: true
2275
+ })).toBeVisible();
2276
+ }
2277
+ async expectReleaseNotDisplayed(title) {
2278
+ await (0, $hOLA6$expect)(this.page.getByText(title, {
2279
+ exact: true
2280
+ })).not.toBeVisible({
2281
+ timeout: 10000
2282
+ });
2283
+ }
2284
+ async expectPhaseDisplayed(title) {
2285
+ await (0, $hOLA6$expect)(this.page.getByText(title, {
2286
+ exact: true
2287
+ })).toBeVisible();
2288
+ }
2289
+ async openContextMenu(title) {
2290
+ await this.page.locator(".timeline-row-name").filter({
2291
+ hasText: title
2292
+ }).locator(".options-icon").click();
2293
+ }
2294
+ async removeFromReleaseGroup() {
2295
+ await this.page.getByRole("menuitem", {
2296
+ name: "Remove from group"
2297
+ }).locator("a").click();
2298
+ await this.page.getByRole("button", {
2299
+ name: "Remove"
2300
+ }).click();
2301
+ }
2302
+ async expectNumberOfReleases(num_of_release) {
2303
+ const elementCount = await this.page.locator(".timeline-row-name-release").count();
2304
+ (0, $hOLA6$expect)(elementCount).toBe(num_of_release);
2305
+ }
2306
+ async openAddReleaseList() {
2307
+ await this.page.getByRole("button", {
2308
+ name: "Add release"
2309
+ }).click();
2310
+ }
2311
+ async filterReleases(title) {
2312
+ await this.page.getByPlaceholder("Search for a release...").click();
2313
+ await this.page.getByPlaceholder("Search for a release...").fill(title);
2314
+ await this.page.waitForTimeout(5000);
2315
+ await this.page.getByPlaceholder("Search for a release...").press("Enter");
2316
+ }
2317
+ async expectNumberOfReleasesOnModal(num_of_release) {
2318
+ const elementCount = await this.page.locator(".release-modal-line").count();
2319
+ (0, $hOLA6$expect)(elementCount).toBe(num_of_release);
2320
+ }
2321
+ async selectAllReleaseCheckbox() {
2322
+ await this.page.getByLabel("Select all").check();
2323
+ }
2324
+ async addReleasesToGroup() {
2325
+ await this.page.getByRole("button", {
2326
+ name: "Add"
2327
+ }).click();
2328
+ }
2329
+ }
2330
+
2331
+
2332
+
2333
+
1299
2334
 
1300
2335
 
1301
2336
  class $c37c93912f458e81$export$60c3bfa6385e2a10 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1302
2337
  constructor(page){
1303
2338
  super(page);
1304
2339
  this.taskDrawer = new (0, $8e39246218b802fc$export$e946776eae644790)(page);
2340
+ this.commentBox = this.page.locator(`.input-block-level`);
1305
2341
  }
1306
2342
  async openTask(taskName) {
1307
2343
  await this.filterTaskByTitle(taskName);
1308
- await this.page.getByText(taskName).click();
2344
+ await this.page.getByText(taskName).first().click();
2345
+ }
2346
+ async skip(taskName, comment) {
2347
+ await this.page.locator(`.row.task-inner`, {
2348
+ hasText: taskName
2349
+ }).locator("span.skip").click();
2350
+ await this.commentBox.click();
2351
+ await this.commentBox.fill(comment);
2352
+ await this.page.getByRole("button", {
2353
+ name: "Skip",
2354
+ exact: true
2355
+ }).click();
2356
+ }
2357
+ async fail(taskName, comment) {
2358
+ await this.page.locator(`.row.task-inner`, {
2359
+ hasText: taskName
2360
+ }).locator("span.fail").click();
2361
+ await this.commentBox.click();
2362
+ await this.commentBox.fill(comment);
2363
+ await this.page.getByRole("button", {
2364
+ name: "Fail",
2365
+ exact: true
2366
+ }).click();
2367
+ }
2368
+ async waitForTaskFailed(taskName) {
2369
+ await (0, $hOLA6$expect)(this.page.locator(`.row.task-inner`, {
2370
+ hasText: taskName
2371
+ }).getByText("Failed")).toBeVisible();
2372
+ }
2373
+ async waitForTaskInProgress(taskName) {
2374
+ await (0, $hOLA6$expect)(this.page.locator(`.row.task-inner`, {
2375
+ hasText: taskName
2376
+ }).getByText("In progress")).toBeVisible();
1309
2377
  }
1310
2378
  async openTaskInReleaseView(taskName) {
1311
2379
  await this.page.locator(`.row.task-inner`, {
@@ -1317,13 +2385,18 @@ class $c37c93912f458e81$export$60c3bfa6385e2a10 extends (0, $9626bc9256ce31f7$ex
1317
2385
  hasText: taskName
1318
2386
  }).locator(`.calendar-link a`).click();
1319
2387
  }
2388
+ async openTaskDrawer(taskName) {
2389
+ await this.page.locator(`.row.task-inner`, {
2390
+ hasText: taskName
2391
+ }).getByText(taskName).click();
2392
+ }
1320
2393
  async filterTaskByTitle(taskname) {
1321
- await this.page.locator(".toggle-search-filter").click();
2394
+ await this.page.locator(".searchFilter").click();
1322
2395
  await this.page.locator(".searchFilter").fill(taskname);
1323
2396
  await this.page.locator(".searchFilter").press("Enter");
1324
2397
  await (0, $hOLA6$expect)(this.page.locator("//div[@data-task-title]").filter({
1325
2398
  hasText: taskname
1326
- })).toBeVisible();
2399
+ }).first()).toBeVisible();
1327
2400
  }
1328
2401
  async filterTasksByTag(tag, taskTitleForValidation) {
1329
2402
  await this.page.locator(".toggle-search-filter").click();
@@ -1358,38 +2431,72 @@ class $c37c93912f458e81$export$60c3bfa6385e2a10 extends (0, $9626bc9256ce31f7$ex
1358
2431
  await (0, $hOLA6$expect)(this.page.locator(".view-in-release")).not.toBeVisible();
1359
2432
  }
1360
2433
  }
2434
+ async openTaskList() {
2435
+ await this.page.goto("./#/tasks");
2436
+ }
2437
+ async clickOnAssigneeButton(title) {
2438
+ await this.page.locator(`.btn-group-filter.btn-group button.btn.btn-flat[title="${title}"]`).click();
2439
+ }
2440
+ async expectTaskNotDisplayed(taskTitle) {
2441
+ await (0, $hOLA6$expect)(this.page.locator(`.row.task-inner`).filter({
2442
+ hasText: taskTitle
2443
+ }).getByText(taskTitle)).toHaveCount(0);
2444
+ }
2445
+ async clickOnStatusField() {
2446
+ await this.page.locator(".ci-filter-status.ng-isolate-scope").click();
2447
+ }
2448
+ async clickOnStatus(statusNames) {
2449
+ await this.clickOnStatusClearAll();
2450
+ await this.clickOnStatusField();
2451
+ for(let i = 0; i < statusNames.length; i++)await this.page.locator(`i.xl-icon.icon-s.checkbox[data='${statusNames[i]}']`).click();
2452
+ // Clicking outside to close the grid dropdown
2453
+ await this.clickOnTasksLabel();
2454
+ }
2455
+ async clickOnStatusClearAll() {
2456
+ await this.clickOnStatusField();
2457
+ await this.page.locator("a.xl-react-link", {
2458
+ hasText: "Clear all"
2459
+ }).click();
2460
+ await this.clickOnTasksLabel();
2461
+ }
2462
+ async clickOnStatusSelectAll() {
2463
+ await this.clickOnStatusField();
2464
+ await this.page.locator("a.xl-react-link", {
2465
+ hasText: "Select all"
2466
+ }).click();
2467
+ await this.clickOnTasksLabel();
2468
+ }
2469
+ async assignTaskToMe(title) {
2470
+ await this.page.locator(`.task-line`).filter({
2471
+ hasText: title
2472
+ }).locator(`.assign-to-me`).click();
2473
+ await this.page.locator('.modal:visible >> text="Assign to me"').click();
2474
+ }
2475
+ async expectTaskAssignedToMe(title) {
2476
+ await this.expectTaskAssignedTo(title, "me");
2477
+ }
2478
+ async expectTaskAssignedTo(title, user) {
2479
+ await (0, $hOLA6$expect)(this.page.locator(`.task-line:has-text("${title}") >> text="${user}"`).first()).toHaveCount(1);
2480
+ }
1361
2481
  async expectTaskTitle(taskTitle) {
1362
2482
  (0, $hOLA6$expect)(await this.page.locator("#tasks0").innerText()).toContain(taskTitle);
1363
2483
  }
2484
+ async clickOnTasksLabel() {
2485
+ await this.page.getByLabel("breadcrumb").getByText("Tasks").click();
2486
+ }
1364
2487
  async expectGroupView(expected = true) {
1365
2488
  if (expected) {
1366
2489
  await (0, $hOLA6$expect)(this.page.locator("#group-tasks-by-release")).toBeChecked();
1367
- await (0, $hOLA6$expect)(this.page.locator("#task-list-grouped-view")).toBeVisible();
1368
- await (0, $hOLA6$expect)(this.page.locator("#task-ungrouped-view")).not.toBeVisible();
1369
- } else {
1370
- await (0, $hOLA6$expect)(this.page.locator("#group-tasks-by-release")).not.toBeChecked();
1371
- await (0, $hOLA6$expect)(this.page.locator("#task-list-grouped-view")).not.toBeVisible();
1372
- await (0, $hOLA6$expect)(this.page.locator("#task-ungrouped-view")).toBeVisible();
1373
- }
1374
- }
1375
- async changeGroupView() {
1376
- await this.page.locator("#group-tasks-by-release").click();
1377
- }
1378
- }
1379
-
1380
-
1381
-
1382
-
1383
- class $aa992f812fb1e470$export$6adb8dd3f0d1e432 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1384
- constructor(page){
1385
- super(page);
1386
- this.tempDir = "";
1387
- this.content = "";
2490
+ await (0, $hOLA6$expect)(this.page.locator("#task-list-grouped-view")).toBeVisible();
2491
+ await (0, $hOLA6$expect)(this.page.locator("#task-ungrouped-view")).not.toBeVisible();
2492
+ } else {
2493
+ await (0, $hOLA6$expect)(this.page.locator("#group-tasks-by-release")).not.toBeChecked();
2494
+ await (0, $hOLA6$expect)(this.page.locator("#task-list-grouped-view")).not.toBeVisible();
2495
+ await (0, $hOLA6$expect)(this.page.locator("#task-ungrouped-view")).toBeVisible();
2496
+ }
1388
2497
  }
1389
- async createTempFile(fileName, testInfo) {
1390
- const content = fileName.toString();
1391
- const tempDir = testInfo.outputPath(fileName.toString());
1392
- $hOLA6$promises.writeFile(tempDir, content, "utf8");
2498
+ async changeGroupView() {
2499
+ await this.page.locator("#group-tasks-by-release").click();
1393
2500
  }
1394
2501
  }
1395
2502
 
@@ -1516,11 +2623,12 @@ class $e83a7515970cee7f$export$98de9bca7d44fc1a extends (0, $9626bc9256ce31f7$ex
1516
2623
  await this.page.locator("#release-form-title").fill(name);
1517
2624
  }
1518
2625
  async setDescription(description) {
1519
- await this.page.getByText("Set description...").click();
1520
- await this.page.locator("span").filter({
1521
- hasText: "Set description... * Save"
1522
- }).locator("i").first().click();
2626
+ await this.page.getByText("Set description...").hover();
2627
+ await this.page.locator(".display").filter({
2628
+ hasText: "Set description"
2629
+ }).locator(".edit-icon").click();
1523
2630
  await this.page.locator("textarea").click();
2631
+ await this.page.locator("textarea").clear();
1524
2632
  await this.page.locator("textarea").fill(description);
1525
2633
  await this.page.getByText("Save", {
1526
2634
  exact: true
@@ -1568,13 +2676,16 @@ class $8f36d138075416d2$export$899a7095bab1879d extends (0, $9626bc9256ce31f7$ex
1568
2676
  }
1569
2677
 
1570
2678
 
2679
+
1571
2680
  class $0c4084f199d70d72$export$8c8e7207254accc2 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1572
2681
  constructor(page){
1573
2682
  super(page);
1574
2683
  this.taskDrawer = new (0, $8e39246218b802fc$export$e946776eae644790)(page);
2684
+ this.phaseTitle = page.locator(".phase .phase-title");
1575
2685
  this.properties = new (0, $880dec03c4eca8dc$export$ccf2756779bad715)(page);
1576
2686
  this.createTemplatePage = new (0, $e83a7515970cee7f$export$98de9bca7d44fc1a)(page);
1577
2687
  this.triggers = new (0, $8f36d138075416d2$export$899a7095bab1879d)(page);
2688
+ this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
1578
2689
  }
1579
2690
  async openTemplateMenu(menuItem) {
1580
2691
  await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
@@ -1587,6 +2698,12 @@ class $0c4084f199d70d72$export$8c8e7207254accc2 extends (0, $9626bc9256ce31f7$ex
1587
2698
  }).click();
1588
2699
  return this.taskDrawer;
1589
2700
  }
2701
+ async openTaskDrawerFromTableView(taskName) {
2702
+ await this.page.locator(".name-cell-title").getByText(taskName, {
2703
+ exact: true
2704
+ }).click();
2705
+ return this.taskDrawer;
2706
+ }
1590
2707
  async openTaskDrawerFromGrantt(taskName) {
1591
2708
  await this.page.locator(".gantt_tree_content").getByText(taskName, {
1592
2709
  exact: true
@@ -1594,19 +2711,39 @@ class $0c4084f199d70d72$export$8c8e7207254accc2 extends (0, $9626bc9256ce31f7$ex
1594
2711
  return this.taskDrawer;
1595
2712
  }
1596
2713
  async openProperties() {
1597
- await this.openTemplateMenu("Properties");
2714
+ await this.util.openSideNavMenu("Properties");
2715
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Properties")).toBeVisible();
2716
+ }
2717
+ async openVariables() {
2718
+ await this.util.openSideNavMenu("Variables");
2719
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Variables")).toBeVisible();
2720
+ }
2721
+ async openRelationships() {
2722
+ await this.util.openSideNavMenu("Relationships");
2723
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Relationships")).toBeVisible();
2724
+ }
2725
+ async openTeamsPermissions() {
2726
+ await this.util.openSideNavMenu("Teams & Permissions");
2727
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Teams & Permissions")).toBeVisible();
2728
+ }
2729
+ async openDashboard() {
2730
+ await this.util.openSideNavMenu("Dashboard");
2731
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Dashboard")).toBeVisible();
2732
+ }
2733
+ async openActivityLogs() {
2734
+ await this.util.openSideNavMenu("Activity logs");
2735
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Activity logs")).toBeVisible();
1598
2736
  }
1599
2737
  async openTriggers() {
1600
2738
  await this.openTemplateMenu("Triggers");
2739
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Triggers")).toBeVisible();
1601
2740
  }
1602
2741
  async backToTemplate() {
1603
2742
  await this.page.locator(".icon-back").click();
1604
2743
  await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Templates")).toBeVisible();
1605
2744
  }
1606
2745
  async expectTemplateLabelToBePresent() {
1607
- await (0, $hOLA6$expect)(this.page.locator(".dot-chip").filter({
1608
- hasText: "TEMPLATE"
1609
- })).toBeVisible();
2746
+ await (0, $hOLA6$expect)(this.page.getByTestId("template-workflow-pill").getByText("Template")).toBeVisible();
1610
2747
  }
1611
2748
  async expectSubPage(menuItem, toBePresent) {
1612
2749
  if (toBePresent) await (0, $hOLA6$expect)(this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
@@ -1617,20 +2754,20 @@ class $0c4084f199d70d72$export$8c8e7207254accc2 extends (0, $9626bc9256ce31f7$ex
1617
2754
  })).not.toBeVisible();
1618
2755
  }
1619
2756
  async openFlowView() {
1620
- await this.page.locator(".xl-icon.column-icon").click();
2757
+ await this.util.openSideNavMenu("Flow");
1621
2758
  await (0, $hOLA6$expect)(this.page.locator("#release-content")).toBeVisible();
1622
2759
  }
1623
2760
  async openTableView() {
1624
- await this.page.locator(".xl-icon.table-icon").click();
2761
+ await this.util.openSideNavMenu("Table");
1625
2762
  await (0, $hOLA6$expect)(this.page.locator(".release-grid-container")).toBeVisible();
1626
2763
  }
1627
2764
  async openPlannerView() {
1628
- await this.page.locator(".xl-icon.planner-icon").click();
2765
+ await this.util.openSideNavMenu("Planner");
1629
2766
  await (0, $hOLA6$expect)(this.page.locator(".gantt-container")).toBeVisible();
1630
2767
  }
1631
2768
  async openCodeView() {
1632
- await this.page.locator(".xl-icon.code-icon").click();
1633
- await (0, $hOLA6$expect)(this.page.locator("#dsl-content")).toBeVisible();
2769
+ await this.util.openSideNavMenu("Code");
2770
+ await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Code")).toBeVisible();
1634
2771
  }
1635
2772
  async expandGanttFolder() {
1636
2773
  const icExpandTreeview1 = this.page.locator(".gantt_tree_icon.gantt_open");
@@ -1642,6 +2779,108 @@ class $0c4084f199d70d72$export$8c8e7207254accc2 extends (0, $9626bc9256ce31f7$ex
1642
2779
  }
1643
2780
  }
1644
2781
  }
2782
+ async addNewPhase(phaseName) {
2783
+ await this.page.getByTestId("add-phase-btn").click();
2784
+ if (phaseName) {
2785
+ await this.phaseTitle.getByText("New Phase").click();
2786
+ await this.phaseTitle.getByRole("textbox").clear();
2787
+ await this.phaseTitle.getByRole("textbox").fill(phaseName);
2788
+ await this.page.keyboard.press("Enter");
2789
+ await (0, $hOLA6$expect)(this.phaseTitle.filter({
2790
+ hasText: phaseName
2791
+ })).toBeVisible();
2792
+ }
2793
+ }
2794
+ async renamePhase(oldPhaseName, newPhaseName) {
2795
+ await this.phaseTitle.getByText(oldPhaseName).click();
2796
+ await this.phaseTitle.filter({
2797
+ hasText: oldPhaseName
2798
+ }).locator(".editable").clear();
2799
+ await this.phaseTitle.filter({
2800
+ hasText: oldPhaseName
2801
+ }).locator(".editable").fill(newPhaseName);
2802
+ await this.page.keyboard.press("Enter");
2803
+ await (0, $hOLA6$expect)(this.phaseTitle.filter({
2804
+ hasText: newPhaseName
2805
+ })).toBeVisible();
2806
+ }
2807
+ getPhase(phaseName) {
2808
+ return new $0c4084f199d70d72$var$Phase(this.page, phaseName);
2809
+ }
2810
+ }
2811
+ class $0c4084f199d70d72$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
2812
+ constructor(page, phaseName){
2813
+ super(page);
2814
+ this.phaseLocator = page.locator(".phase", {
2815
+ hasText: phaseName
2816
+ });
2817
+ }
2818
+ async setTitle(title) {
2819
+ await this.phaseLocator.locator(".phase-header .display").click();
2820
+ await this.phaseLocator.locator(".phase-header input").clear();
2821
+ await this.phaseLocator.locator(".phase-header input").fill(title);
2822
+ await this.phaseLocator.locator(".phase-header input").blur();
2823
+ }
2824
+ async expectTaskBorderWithColor(taskName, color) {
2825
+ await (0, $hOLA6$expect)(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS("border-top-color", color);
2826
+ }
2827
+ /**
2828
+ *
2829
+ * @param taskTitle Title of the task
2830
+ * @param taskType : Type of the task
2831
+ * @param taskTypeSelector : Selector of the task
2832
+ */ async addTaskInPhase(taskTitle, taskGroup, taskType) {
2833
+ await this.phaseLocator.getByText("Add task").click();
2834
+ await this.phaseLocator.getByLabel("Open", {
2835
+ exact: true
2836
+ }).click();
2837
+ await this.phaseLocator.getByPlaceholder("Start typing to filter task").fill(taskGroup);
2838
+ await this.page.getByTestId(taskType).click();
2839
+ await this.phaseLocator.locator("#task-title").fill(taskTitle);
2840
+ await this.phaseLocator.getByTestId("save-select-task-btn").click();
2841
+ await (0, $hOLA6$expect)(this.phaseLocator.getByText(taskTitle)).toBeVisible();
2842
+ }
2843
+ async getNumberOfTasks() {
2844
+ return await this.phaseLocator.locator(".task").count();
2845
+ }
2846
+ async expectToHaveNoneditableTitle(phaseTitle) {
2847
+ await (0, $hOLA6$expect)(this.phaseLocator.locator(".phase-title > span")).toContainText(phaseTitle);
2848
+ }
2849
+ async expectToHaveTitle(phaseTitle) {
2850
+ await (0, $hOLA6$expect)(this.phaseLocator.locator(".phase-title")).toContainText(phaseTitle);
2851
+ }
2852
+ async deleteTaskInPhase(taskName) {
2853
+ await this.page.locator(".task").filter({
2854
+ hasText: taskName
2855
+ }).locator(".xl-icon.options-icon").click();
2856
+ await this.page.locator(".remove-task-button").click();
2857
+ await (0, $hOLA6$expect)(this.page.getByRole("heading", {
2858
+ name: "Delete Task"
2859
+ })).toBeVisible();
2860
+ await this.page.getByRole("button", {
2861
+ name: "Delete"
2862
+ }).click();
2863
+ await (0, $hOLA6$expect)(this.phaseLocator.locator("li").filter({
2864
+ hasText: taskName
2865
+ })).not.toBeVisible();
2866
+ }
2867
+ async deletePhase(phaseName) {
2868
+ await this.page.locator(".phase-header").filter({
2869
+ hasText: phaseName
2870
+ }).locator(".actions").hover();
2871
+ await this.page.locator(".phase-header").filter({
2872
+ hasText: phaseName
2873
+ }).locator(".delete-icon").click();
2874
+ await (0, $hOLA6$expect)(this.page.getByRole("heading", {
2875
+ name: "Delete Phase"
2876
+ })).toBeVisible();
2877
+ await this.page.getByRole("button", {
2878
+ name: "Delete"
2879
+ }).click();
2880
+ await (0, $hOLA6$expect)(this.page.locator(".phase-header").filter({
2881
+ hasText: phaseName
2882
+ })).not.toBeVisible();
2883
+ }
1645
2884
  }
1646
2885
 
1647
2886
 
@@ -1675,6 +2914,45 @@ class $171d52b372748c0b$export$7e1d435fa474ee21 extends (0, $9626bc9256ce31f7$ex
1675
2914
  hasText: "TEMPLATE"
1676
2915
  })).toBeVisible();
1677
2916
  }
2917
+ async move(templateName, targetFolder) {
2918
+ await this.page.locator(".title").filter({
2919
+ hasText: templateName
2920
+ }).locator(".move").click();
2921
+ await (0, $hOLA6$expect)(this.page.getByText("Move template to")).toBeVisible();
2922
+ await this.page.getByRole("button", {
2923
+ name: "Expand"
2924
+ }).click();
2925
+ await this.page.getByPlaceholder("Search folder...").click();
2926
+ await this.page.getByPlaceholder("Search folder...").fill(targetFolder);
2927
+ await this.page.getByRole("button", {
2928
+ name: targetFolder
2929
+ }).click();
2930
+ await this.page.getByRole("button", {
2931
+ name: "Move"
2932
+ }).click();
2933
+ await (0, $hOLA6$expect)(this.page.getByText("Add", {
2934
+ exact: true
2935
+ })).toBeVisible();
2936
+ await (0, $hOLA6$expect)(this.page.getByText("Remove")).toBeVisible();
2937
+ await this.page.getByRole("button", {
2938
+ name: "Move"
2939
+ }).click();
2940
+ }
2941
+ async metaInformation(templateName, validationMsg) {
2942
+ await this.page.locator(".title").filter({
2943
+ hasText: templateName
2944
+ }).locator(".template-context-menu").click();
2945
+ await this.page.getByRole("menuitem", {
2946
+ name: "Meta information"
2947
+ }).locator("a").click();
2948
+ await (0, $hOLA6$expect)(this.page.getByRole("heading", {
2949
+ name: "Meta information - " + templateName
2950
+ })).toBeVisible();
2951
+ if (validationMsg) await (0, $hOLA6$expect)(this.page.getByText(validationMsg)).toBeVisible();
2952
+ await (0, $hOLA6$expect)(this.page.getByRole("button", {
2953
+ name: "Close"
2954
+ })).toBeVisible();
2955
+ }
1678
2956
  async expectTemplateVisible(title, expected = true) {
1679
2957
  if (expected) {
1680
2958
  await this.page.locator(".template").filter({
@@ -1693,6 +2971,7 @@ class $171d52b372748c0b$export$7e1d435fa474ee21 extends (0, $9626bc9256ce31f7$ex
1693
2971
  }
1694
2972
  }
1695
2973
  async delete(title) {
2974
+ await this.searchBy(title);
1696
2975
  await this.page.locator(".title").filter({
1697
2976
  hasText: title
1698
2977
  }).locator(".delete").waitFor();
@@ -1713,15 +2992,7 @@ class $171d52b372748c0b$export$7e1d435fa474ee21 extends (0, $9626bc9256ce31f7$ex
1713
2992
  }).click();
1714
2993
  }
1715
2994
  async openTemplateByName(templateName) {
1716
- await this.page.getByPlaceholder("Filter by title...", {
1717
- exact: true
1718
- }).click();
1719
- await this.page.getByPlaceholder("Filter by title...", {
1720
- exact: true
1721
- }).fill(templateName);
1722
- await this.page.getByPlaceholder("Filter by title...", {
1723
- exact: true
1724
- }).press("Enter");
2995
+ await this.filterByTitle(templateName);
1725
2996
  await this.page.locator(`.template`).filter({
1726
2997
  hasText: templateName
1727
2998
  }).locator(`.raised-link`).waitFor();
@@ -1729,162 +3000,49 @@ class $171d52b372748c0b$export$7e1d435fa474ee21 extends (0, $9626bc9256ce31f7$ex
1729
3000
  hasText: templateName
1730
3001
  }).locator(`.raised-link`).click();
1731
3002
  }
1732
- }
1733
-
1734
-
1735
-
1736
-
1737
- class $cc2d15e53de5cef7$export$b6fbc3e67030138f extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1738
- async setStatus(status) {
1739
- await this.page.locator(".react-tagsinput").click({
1740
- force: true
1741
- });
1742
- await this.page.getByText("Clear all").click();
1743
- await this.page.locator(".react-tagsinput").click({
1744
- force: true
1745
- });
1746
- if (status === "Select all") await this.page.getByText(status).click();
1747
- else await this.page.getByTitle(status).locator("i").first().click();
1748
- }
1749
- async openReleaseGroup(title) {
1750
- await this.page.locator("xlr-release-group-row").filter({
1751
- hasText: title
1752
- }).getByRole("link").click();
1753
- await this.page.getByTitle(title).click();
1754
- await (0, $hOLA6$expect)(this.page).toHaveURL(/.*ReleaseGroup/);
1755
- }
1756
- async expectReleaseGroupStatus(status) {
1757
- await (0, $hOLA6$expect)(this.page.locator(".release-status")).toContainText(status);
1758
- }
1759
- async expectReleaseGroupDisplayed(title) {
1760
- await (0, $hOLA6$expect)(this.page.getByText(title, {
1761
- exact: true
3003
+ async clickNewReleaseIcon(templateName) {
3004
+ await this.page.locator("xlr-template-row-component").filter({
3005
+ hasText: templateName
3006
+ }).locator(".link .add-icon").click();
3007
+ await (0, $hOLA6$expect)(this.page.getByRole("heading", {
3008
+ name: "Create new release"
1762
3009
  })).toBeVisible();
1763
3010
  }
1764
- async expectReleaseGroupNotDisplayed(title) {
1765
- await (0, $hOLA6$expect)(this.page.getByText(title, {
1766
- exact: true
1767
- })).not.toBeVisible();
1768
- }
1769
- async searchReleaseGroupByTitle(title) {
1770
- await this.page.getByPlaceholder("Search for groups...", {
3011
+ async filterByTitle(templateName) {
3012
+ await this.page.getByPlaceholder("Filter by title...", {
1771
3013
  exact: true
1772
3014
  }).click();
1773
- await this.page.getByPlaceholder("Search for groups...", {
3015
+ await this.page.getByPlaceholder("Filter by title...", {
1774
3016
  exact: true
1775
- }).fill(title);
1776
- await this.page.getByPlaceholder("Search for groups...", {
3017
+ }).fill(templateName);
3018
+ await this.page.getByPlaceholder("Filter by title...", {
1777
3019
  exact: true
1778
3020
  }).press("Enter");
1779
3021
  }
1780
- async deleteReleaseGroup(title) {
1781
- await this.page.locator(".fc-list-item-line").filter({
1782
- hasText: title
1783
- }).locator(".fc-item-delete").click();
1784
- await this.page.getByRole("button", {
1785
- name: "Delete"
1786
- }).click();
1787
- }
1788
- async clickReleaseGroupEdit(title) {
1789
- await this.page.locator(".fc-list-item-line").filter({
1790
- hasText: title
1791
- }).locator(".fc-item-update").click();
1792
- }
1793
- async enterReleaseGroupDetails(new_title) {
1794
- await this.page.locator(".modal-body").locator("#title").fill(new_title);
1795
- }
1796
- async clickSaveButton() {
1797
- await this.page.locator(".modal-footer").getByRole("button", {
1798
- name: "Save"
1799
- }).click();
1800
- }
1801
- async clickCancelButton() {
1802
- await this.page.locator(".modal-footer").getByRole("button", {
1803
- name: "Cancel"
1804
- }).click();
1805
- }
1806
3022
  }
1807
3023
 
1808
3024
 
1809
3025
 
1810
-
1811
- class $cc231ea61b77c7a2$export$1a0994e9c202d529 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
1812
- async expectReleaseDisplayed(title) {
1813
- await (0, $hOLA6$expect)(this.page.getByText(title, {
1814
- exact: true
1815
- })).toBeVisible();
1816
- }
1817
- async expectReleaseNotDisplayed(title) {
1818
- await (0, $hOLA6$expect)(this.page.getByText(title, {
1819
- exact: true
1820
- })).not.toBeVisible({
1821
- timeout: 10000
1822
- });
1823
- }
1824
- async expectPhaseDisplayed(title) {
1825
- await (0, $hOLA6$expect)(this.page.getByText(title, {
1826
- exact: true
1827
- })).toBeVisible();
1828
- }
1829
- async openContextMenu(title) {
1830
- await this.page.locator(".timeline-row-name").filter({
1831
- hasText: title
1832
- }).locator(".options-icon").click();
1833
- }
1834
- async removeFromReleaseGroup() {
1835
- await this.page.getByRole("menuitem", {
1836
- name: "Remove from group"
1837
- }).locator("a").click();
1838
- await this.page.getByRole("button", {
1839
- name: "Remove"
1840
- }).click();
1841
- }
1842
- async expectNumberOfReleases(num_of_release) {
1843
- const elementCount = await this.page.locator(".timeline-row-name-release").count();
1844
- (0, $hOLA6$expect)(elementCount).toBe(num_of_release);
1845
- }
1846
- async openAddReleaseList() {
1847
- await this.page.getByRole("button", {
1848
- name: "Add release"
1849
- }).click();
1850
- }
1851
- async filterReleases(title) {
1852
- await this.page.getByPlaceholder("Search for a release...").click();
1853
- await this.page.getByPlaceholder("Search for a release...").fill(title);
1854
- await this.page.waitForTimeout(5000);
1855
- await this.page.getByPlaceholder("Search for a release...").press("Enter");
1856
- }
1857
- async expectNumberOfReleasesOnModal(num_of_release) {
1858
- const elementCount = await this.page.locator(".release-modal-line").count();
1859
- (0, $hOLA6$expect)(elementCount).toBe(num_of_release);
1860
- }
1861
- async selectAllReleaseCheckbox() {
1862
- await this.page.getByLabel("Select all").check();
1863
- }
1864
- async addReleasesToGroup() {
1865
- await this.page.getByRole("button", {
1866
- name: "Add"
1867
- }).click();
1868
- }
1869
- }
1870
-
1871
-
1872
3026
  class $e72552cbf941ecfa$export$b8a61e5c71402559 {
1873
3027
  constructor(page){
1874
3028
  this.page = page;
3029
+ this.folderPage = new (0, $50c91328c9110668$export$b453f08936c58edb)(page);
3030
+ this.globalvariable = new (0, $3df1257265fba073$export$74ca1eaaa9a0054)(page);
3031
+ this.homePage = new (0, $2174535b78371022$export$36d69433c4f81145)(page);
1875
3032
  this.releasePage = new (0, $43cbcdfccb6c2a76$export$f43492e8ac3c566)(page);
1876
3033
  this.settingsMenu = new (0, $f1bf370bb7f683ca$export$1d7840d5cdc861d5)(page);
1877
3034
  this.usersPage = new (0, $2cb6a6ac6b17e85f$export$107317390f5aa598)(page);
1878
3035
  this.applicationPage = new (0, $c313b10398604df2$export$1533b625ec0c75e2)(page);
3036
+ this.taskDetailsPage = new (0, $9ca6e63d357957dd$export$922081b54f2ab994)(page);
1879
3037
  this.taskListPage = new (0, $c37c93912f458e81$export$60c3bfa6385e2a10)(page);
1880
3038
  this.templatePage = new (0, $0c4084f199d70d72$export$8c8e7207254accc2)(page);
1881
3039
  this.templateListPage = new (0, $171d52b372748c0b$export$7e1d435fa474ee21)(page);
1882
- this.taskDetailsPage = new (0, $9ca6e63d357957dd$export$922081b54f2ab994)(page);
3040
+ this.randomString = new (0, $b14c3492cf934ea2$export$e40b5d3c74b04c89)();
1883
3041
  this.releaseCalendarPage = new (0, $3a340a3f4fd8f04d$export$43682cddead1dd78)(page);
1884
- this.releaseListPage = new (0, $5359280e98d97ff9$export$a678525e79c4ccc4)(page);
1885
3042
  this.releaseGroupPage = new (0, $cc2d15e53de5cef7$export$b6fbc3e67030138f)(page);
1886
3043
  this.releaseGroupTimelinePage = new (0, $cc231ea61b77c7a2$export$1a0994e9c202d529)(page);
1887
- this.util = new (0, $aa992f812fb1e470$export$6adb8dd3f0d1e432)(page);
3044
+ this.releaseListPage = new (0, $5359280e98d97ff9$export$a678525e79c4ccc4)(page);
3045
+ this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
1888
3046
  }
1889
3047
  async openTemplate(id) {
1890
3048
  return this.openReleaseOrTemplate(id, false);
@@ -1985,12 +3143,12 @@ class $e72552cbf941ecfa$export$b8a61e5c71402559 {
1985
3143
  return new (0, $43cbcdfccb6c2a76$export$f43492e8ac3c566)(this.page);
1986
3144
  }
1987
3145
  async collapseSideView() {
1988
- await this.page.locator('.dot-tooltip[aria-label="Collapse"]').click();
1989
- await (0, $hOLA6$expect)(this.page.locator('.dot-tooltip[aria-label="Collapse"]')).not.toBeVisible();
3146
+ await this.page.locator(".icon-collapse").click();
3147
+ await (0, $hOLA6$expect)(this.page.locator(".icon-collapse")).not.toBeVisible();
1990
3148
  }
1991
3149
  async expandSideView() {
1992
- await this.page.locator('.dot-tooltip[aria-label="Expand"]').click();
1993
- await (0, $hOLA6$expect)(this.page.locator('.dot-tooltip[aria-label="Expand"]')).not.toBeVisible();
3150
+ await this.page.locator(".icon-expand").click();
3151
+ await (0, $hOLA6$expect)(this.page.locator(".icon-expand")).not.toBeVisible();
1994
3152
  }
1995
3153
  }
1996
3154
 
@@ -2017,6 +3175,7 @@ class $4444bee76761dfb1$export$f14c0e3f98d164c0 extends (0, $9626bc9256ce31f7$ex
2017
3175
  timeout: 10000
2018
3176
  });
2019
3177
  await this.page.waitForTimeout(1000);
3178
+ await this.closePendoModalWindow();
2020
3179
  }
2021
3180
  /**
2022
3181
  * Logout as authenticated user
@@ -2039,6 +3198,10 @@ class $4444bee76761dfb1$export$f14c0e3f98d164c0 extends (0, $9626bc9256ce31f7$ex
2039
3198
  const val = await this.page.locator("top-toolbar .avatar-wrapper span.dot-tooltip").getAttribute("aria-label");
2040
3199
  (0, $hOLA6$expect)(val).toContain(username);
2041
3200
  }
3201
+ async closePendoModalWindow() {
3202
+ await this.page.waitForTimeout(1000);
3203
+ if (await this.page.locator("._pendo-close-guide").count() > 0) await this.page.locator("._pendo-close-guide").click();
3204
+ }
2042
3205
  }
2043
3206
 
2044
3207