@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/CHANGELOG.md +21 -0
- package/dist/main.js +1437 -274
- package/dist/main.js.map +1 -1
- package/dist/module.js +1438 -275
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +260 -39
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/module.js
CHANGED
|
@@ -2,8 +2,8 @@ import {test as $hOLA6$test, expect as $hOLA6$expect} from "@playwright/test";
|
|
|
2
2
|
import {execFile as $hOLA6$execFile} from "child_process";
|
|
3
3
|
import $hOLA6$lodashisNil from "lodash/isNil";
|
|
4
4
|
import {env as $hOLA6$env} from "process";
|
|
5
|
-
import {promises as $hOLA6$promises} from "fs";
|
|
6
5
|
import $hOLA6$moment from "moment";
|
|
6
|
+
import {promises as $hOLA6$promises} from "fs";
|
|
7
7
|
import $hOLA6$lodashisUndefined from "lodash/isUndefined";
|
|
8
8
|
import $hOLA6$lodasheach from "lodash/each";
|
|
9
9
|
import $hOLA6$lodashforEach from "lodash/forEach";
|
|
@@ -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("
|
|
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
|
-
|
|
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")
|
|
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
|
|
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
|
|
367
|
-
await
|
|
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
|
|
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.
|
|
412
|
-
|
|
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").
|
|
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("
|
|
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.
|
|
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.
|
|
588
|
-
|
|
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.
|
|
592
|
-
|
|
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
|
-
}).
|
|
632
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
831
|
-
await this.page.locator(".
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
887
|
-
await
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
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
|
|
919
|
-
await this.
|
|
920
|
-
await this.page.locator(
|
|
921
|
-
await this.
|
|
922
|
-
|
|
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
|
|
925
|
-
await this.
|
|
926
|
-
return this;
|
|
1292
|
+
async openPhaseDetails() {
|
|
1293
|
+
await this.phaseLocator.locator(".phase-details").click();
|
|
927
1294
|
}
|
|
928
|
-
async
|
|
929
|
-
await this.page.locator(
|
|
930
|
-
|
|
931
|
-
|
|
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(".
|
|
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
|
|
1390
|
-
|
|
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...").
|
|
1520
|
-
await this.page.locator("
|
|
1521
|
-
hasText: "Set description
|
|
1522
|
-
}).locator("
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
1633
|
-
await (0, $hOLA6$expect)(this.page.
|
|
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.
|
|
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
|
-
|
|
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
|
|
1765
|
-
await
|
|
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("
|
|
3015
|
+
await this.page.getByPlaceholder("Filter by title...", {
|
|
1774
3016
|
exact: true
|
|
1775
|
-
}).fill(
|
|
1776
|
-
await this.page.getByPlaceholder("
|
|
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.
|
|
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.
|
|
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(
|
|
1989
|
-
await (0, $hOLA6$expect)(this.page.locator(
|
|
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(
|
|
1993
|
-
await (0, $hOLA6$expect)(this.page.locator(
|
|
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
|
|