@digital-ai/devops-page-object-release 0.0.32 → 0.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @digital-ai/devops-page-object-release
2
2
 
3
+ ## 0.0.34
4
+
5
+ ### Patch Changes
6
+
7
+ - 7566c36: S 118564: Migrated tasks-details-scenario into playwright
8
+
9
+ ## 0.0.33
10
+
11
+ ### Patch Changes
12
+
13
+ - 7d07a5e: S-118301: Migrated change-task-type-scenario into playwright
14
+ - c75aeb5: S-118350: Dont use dot-button as testid
15
+ - 9c80d98: S-118339: Migrated custom-script-task-scenario in playwright
16
+ - f5b8672: S-117710: Migrated task-grid-scenario into playwright
17
+
3
18
  ## 0.0.32
4
19
 
5
20
  ### Patch Changes
package/dist/main.js CHANGED
@@ -1325,7 +1325,17 @@ class $59543fc69900e8db$export$f8e64fcf447db2bf extends (0, $f8721861c660dd88$ex
1325
1325
  return new $59543fc69900e8db$var$VariableModal(this.page);
1326
1326
  }
1327
1327
  async addNewVariable(variableName, labelname, description) {
1328
- await this.page.locator("#action-toolbar").getByTestId("dot-button").click();
1328
+ await this.page.locator("button", {
1329
+ hasText: "New variable"
1330
+ }).click();
1331
+ await this.page.fill(`[name="fieldKey"]`, variableName);
1332
+ await this.page.locator(".variable-label input").fill(labelname);
1333
+ if (description) await this.page.locator(".variable-description input").fill(description);
1334
+ }
1335
+ async addNewVariableInFolder(variableName, labelname, description) {
1336
+ await this.page.locator("button", {
1337
+ hasText: "New folder variable"
1338
+ }).click();
1329
1339
  await this.page.fill(`[name="fieldKey"]`, variableName);
1330
1340
  await this.page.locator(".variable-label input").fill(labelname);
1331
1341
  if (description) await this.page.locator(".variable-description input").fill(description);
@@ -1545,7 +1555,13 @@ class $59543fc69900e8db$var$VariableModal extends (0, $f8721861c660dd88$export$2
1545
1555
  async createPossibleValuesVariable(variableName) {
1546
1556
  await this.page.locator(".variable-toggle button").click();
1547
1557
  await this.page.locator(".ui-autocomplete-input").fill(variableName);
1548
- await this.page.locator(".ui-menu-item-wrapper").filter({
1558
+ const check = await this.page.locator(".ui-menu-item-wrapper").getByText("${" + variableName + "}", {
1559
+ exact: true
1560
+ }).isVisible();
1561
+ if (check) await this.page.locator(".ui-menu-item-wrapper").getByText("${" + variableName + "}", {
1562
+ exact: true
1563
+ }).click();
1564
+ else await this.page.locator(".ui-menu-item-wrapper").filter({
1549
1565
  hasText: `${variableName}`
1550
1566
  }).click();
1551
1567
  }
@@ -1661,11 +1677,29 @@ class $59543fc69900e8db$var$DeleteVariableModel extends (0, $f8721861c660dd88$ex
1661
1677
 
1662
1678
  class $6c924a95a765a086$export$15d3f9b095bb5188 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1663
1679
  async expectCommentToContain(comment) {
1664
- (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".markdown-wrapper").textContent()).toContain(comment);
1680
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".markdown-wrapper").getByText(comment)).toBeVisible();
1665
1681
  }
1666
1682
  async expectTaskIsCommentable(isCommentable) {
1667
1683
  return (0, $kKeXs$playwrighttest.expect)(await this.page.locator("#task-comment").count()).toBe(isCommentable ? 1 : 0);
1668
1684
  }
1685
+ async addComment(comment) {
1686
+ await this.page.locator("#task-comment").fill(comment);
1687
+ await this.page.locator(".icon-send-airplane").click();
1688
+ return this;
1689
+ }
1690
+ async expectAuthorCommentsToBe(author) {
1691
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-comment-user h6")).toHaveText(author);
1692
+ return this;
1693
+ }
1694
+ async expectCommentsDateTimeToBe(comment, date) {
1695
+ const commentLocator = this.page.locator(".task-comment-body").filter({
1696
+ has: this.page.locator(".markdown-switcher").getByText(comment)
1697
+ }).locator(".task-comment-user span").getByRole("tooltip", {
1698
+ name: "Edited"
1699
+ });
1700
+ await (0, $kKeXs$playwrighttest.expect)(commentLocator).toHaveAttribute("aria-label", date);
1701
+ return this;
1702
+ }
1669
1703
  }
1670
1704
 
1671
1705
 
@@ -1872,8 +1906,17 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
1872
1906
  await this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`).focus();
1873
1907
  return this.railLocator.locator(`input[id="${propertyName}"]`).inputValue();
1874
1908
  }
1909
+ async getStringListField(propertyName) {
1910
+ return new $eb81c1b930e440ff$export$2d646ce41126d906(propertyName, this.page);
1911
+ }
1912
+ async getStringSetField(propertyName) {
1913
+ return new $eb81c1b930e440ff$export$1a41fd2ab8394c46(propertyName, this.page);
1914
+ }
1915
+ async getStringMapField(propertyName) {
1916
+ return new $eb81c1b930e440ff$export$62811a109bb4377d(propertyName, this.page);
1917
+ }
1875
1918
  async setValueFromString(propertyName, value) {
1876
- await this.railLocator.locator(`input[name=${propertyName}]`).focus();
1919
+ await this.railLocator.locator(`input[id="${propertyName}"]`).focus();
1877
1920
  await this.railLocator.locator(`input[id="${propertyName}"]`).fill(value);
1878
1921
  }
1879
1922
  async setValueFromLargeString(propertyName, value) {
@@ -1907,8 +1950,11 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
1907
1950
  await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`#${variableId}`)).toHaveValue(value);
1908
1951
  } else await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`#${variableId}`)).not.toBeVisible();
1909
1952
  }
1910
- async selectReleaseIdInOutputProperties(propertyName, variableName) {
1911
- await this.railLocator.locator(`#${propertyName}`).fill(variableName);
1953
+ async expectValueInInputProperties(propertyName, value, expected = true) {
1954
+ if (expected) await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`[name='${propertyName}']`)).toHaveValue(value);
1955
+ }
1956
+ async selectReleaseIdInOutputProperties(objectID, variableName) {
1957
+ await this.railLocator.locator(`#${objectID}`).fill(variableName);
1912
1958
  await this.page.getByRole("option", {
1913
1959
  name: variableName
1914
1960
  }).click();
@@ -1923,6 +1969,10 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
1923
1969
  async expectValueFromString(propertyName, propertyValue) {
1924
1970
  return await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`)).toHaveText(propertyValue);
1925
1971
  }
1972
+ async expectValueFromResultString(propertyName, value) {
1973
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${propertyName}"]`).getByText(value)).toBeVisible();
1974
+ return this;
1975
+ }
1926
1976
  async expectRiskProfileValue(value) {
1927
1977
  await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator("#riskProfileId")).toHaveValue(value);
1928
1978
  }
@@ -1953,12 +2003,6 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
1953
2003
  await this.page.locator("#release-tags").press("Enter");
1954
2004
  }
1955
2005
  }
1956
- async setValueFromMap(propertyName, key, value) {
1957
- await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] button.add-new-button`).click();
1958
- await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] input[id="new-row-key-input"]`).fill(key);
1959
- await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] input[id="new-row-value-input"]`).fill(value);
1960
- await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] button.map-row-save-button`).click();
1961
- }
1962
2006
  async setScript(script) {
1963
2007
  await this.scriptTextArea.clear();
1964
2008
  await this.scriptTextArea.fill(script);
@@ -1988,7 +2032,9 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
1988
2032
  await this.page.getByTestId("single-action-button").click();
1989
2033
  await this.page.getByTestId("task-action-comment").click();
1990
2034
  await this.page.getByTestId("task-action-comment").fill(comment);
1991
- await this.page.getByTestId("dot-button").click();
2035
+ await this.page.locator("button", {
2036
+ hasText: "Abort"
2037
+ }).click();
1992
2038
  }
1993
2039
  async expectDependenciesDisplayed(dependencies) {
1994
2040
  await this.railLocator.locator(".gate-task-dependencies").waitFor();
@@ -2249,6 +2295,14 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
2249
2295
  async close() {
2250
2296
  await this.page.locator("task-drawer .dot-drawer .task-drawer-header").getByTestId("close-btn").click();
2251
2297
  }
2298
+ async deselectValue(ObjectID) {
2299
+ await this.page.locator(`#${ObjectID}`).hover();
2300
+ await this.page.getByRole("button", {
2301
+ name: "Clear"
2302
+ }).click();
2303
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`#${ObjectID}`)).toHaveValue("");
2304
+ return this;
2305
+ }
2252
2306
  }
2253
2307
  class $eb81c1b930e440ff$export$fbbf45eff21470e3 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2254
2308
  constructor(page){
@@ -2339,6 +2393,103 @@ class $eb81c1b930e440ff$export$fbbf45eff21470e3 extends (0, $f8721861c660dd88$ex
2339
2393
  }).click();
2340
2394
  }
2341
2395
  }
2396
+ class $eb81c1b930e440ff$export$2d646ce41126d906 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2397
+ constructor(propertyName, page){
2398
+ super(page);
2399
+ this.propertyName = propertyName;
2400
+ }
2401
+ async setValueFromStringList(value) {
2402
+ await this.page.locator(`input[id="${this.propertyName}"]`).focus();
2403
+ await this.page.locator(`input[id="${this.propertyName}"]`).fill(value);
2404
+ await this.page.locator(`[data-test-id="${this.propertyName}"] .icon-add`).click();
2405
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${this.propertyName}"] .list`).getByText(value)).toBeVisible();
2406
+ return this;
2407
+ }
2408
+ async expectStringListCount(count) {
2409
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(`[data-test-id="${this.propertyName}"] .list`).count()).toBe(count);
2410
+ return this;
2411
+ }
2412
+ async removeValueFromStringList(value) {
2413
+ await this.page.locator(`[data-test-id="${this.propertyName}"] .list`).filter({
2414
+ hasText: value
2415
+ }).locator(".icon-close").click();
2416
+ return this;
2417
+ }
2418
+ async expectInputFieldDisabled() {
2419
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${this.propertyName}"] input`)).not.toBeEditable();
2420
+ return this;
2421
+ }
2422
+ async expectValueFromStringList(value) {
2423
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${this.propertyName}"] .list`).getByText(value)).toBeVisible();
2424
+ return this;
2425
+ }
2426
+ }
2427
+ class $eb81c1b930e440ff$export$1a41fd2ab8394c46 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2428
+ constructor(propertyName, page){
2429
+ super(page);
2430
+ this.propertyName = propertyName;
2431
+ }
2432
+ async setValueFromStringSet(value) {
2433
+ await this.page.locator(`input[id="${this.propertyName}"]`).focus();
2434
+ await this.page.locator(`input[id="${this.propertyName}"]`).fill(value);
2435
+ await this.page.locator(`[data-test-id="${this.propertyName}"] .icon-add`).click();
2436
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${this.propertyName}"] .list`).getByText(value)).toBeVisible();
2437
+ return this;
2438
+ }
2439
+ async expectInputFieldDisabled() {
2440
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${this.propertyName}"] input`)).not.toBeEditable();
2441
+ return this;
2442
+ }
2443
+ async expectAddButtonDisabled() {
2444
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${this.propertyName}"] .icon-add`)).toBeDisabled();
2445
+ return this;
2446
+ }
2447
+ async expectStringSetCount(count) {
2448
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(`[data-test-id="${this.propertyName}"] .list`).count()).toBe(count);
2449
+ return this;
2450
+ }
2451
+ async removeValueFromStringSet(key) {
2452
+ await this.page.locator(`[data-test-id="${this.propertyName}"] .list`).filter({
2453
+ hasText: key
2454
+ }).locator(".icon-close").click();
2455
+ return this;
2456
+ }
2457
+ }
2458
+ class $eb81c1b930e440ff$export$62811a109bb4377d extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2459
+ constructor(propertyName, page){
2460
+ super(page);
2461
+ this.propertyName = propertyName;
2462
+ }
2463
+ async setValueFromMap(key, value) {
2464
+ await this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] button.add-new-button`).click();
2465
+ await this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] input[id="new-row-key-input"]`).fill(key);
2466
+ await this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] input[id="new-row-value-input"]`).fill(value);
2467
+ await this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] button.map-row-save-button`).click();
2468
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.map-data-row .map-key`).getByText(key)).toBeVisible();
2469
+ }
2470
+ async removeValueFromMap(key) {
2471
+ await this.page.locator(`.map-data-row`).filter({
2472
+ has: this.page.locator(`.map-key`).getByText(key)
2473
+ }).locator(`.icon-delete`).click();
2474
+ return this;
2475
+ }
2476
+ async expectStringMapCount(count) {
2477
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".map-data-row").count()).toBe(count);
2478
+ return this;
2479
+ }
2480
+ async expectAddButtonDisabledForMap(key, value) {
2481
+ await this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] button.add-new-button`).click();
2482
+ await this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] input[id="new-row-key-input"]`).fill(key);
2483
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] button.add-new-button`)).toBeDisabled();
2484
+ await this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] input[id="new-row-value-input"]`).fill(value);
2485
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] button.add-new-button`)).toBeDisabled();
2486
+ return this;
2487
+ }
2488
+ async expectInputFieldDisabledForMap() {
2489
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.input-with-map[data-test-id="${this.propertyName}"] input[id="new-row-value-input"]`)).not.toBeVisible();
2490
+ return this;
2491
+ }
2492
+ }
2342
2493
 
2343
2494
 
2344
2495
 
@@ -2512,18 +2663,31 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
2512
2663
  async startNow(comment) {
2513
2664
  await this.startButton.click();
2514
2665
  await this.commentBox.fill(comment);
2515
- await this.page.getByTestId("dot-button").click();
2666
+ await this.page.locator("button", {
2667
+ hasText: "Start now"
2668
+ }).click();
2516
2669
  await (0, $kKeXs$playwrighttest.expect)(this.startButton).not.toBeVisible();
2517
2670
  }
2518
2671
  async expectTaskTitle(taskTitle) {
2519
2672
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-drawer .task-title-input .dot-view-mode-typography")).toContainText(taskTitle);
2520
2673
  }
2674
+ async expectCompleteButtonEnabled() {
2675
+ await (0, $kKeXs$playwrighttest.expect)(this.completeButton).toBeEnabled();
2676
+ }
2677
+ async expectCompleteButtonNotEnabled() {
2678
+ await (0, $kKeXs$playwrighttest.expect)(this.completeButton).not.toBeEnabled();
2679
+ }
2521
2680
  async setTitle(title) {
2522
2681
  await this.page.getByTestId("task-title-input-view-mode-typography").click();
2523
2682
  await this.page.getByTestId("task-title-input-input").clear();
2524
2683
  await this.page.getByTestId("task-title-input-input").fill(title);
2525
2684
  await this.page.getByTestId("task-title-input-input").press("Enter");
2526
2685
  }
2686
+ async expectTaskTitleEditable() {
2687
+ await this.page.getByTestId("task-title-input-view-mode-typography").click();
2688
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByTestId("task-title-input-input")).toBeEditable();
2689
+ return this;
2690
+ }
2527
2691
  async expectTypeToContain(taskType) {
2528
2692
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-drawer .task-type")).toContainText(taskType);
2529
2693
  }
@@ -2575,10 +2739,34 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
2575
2739
  }).click();
2576
2740
  }
2577
2741
  async assignToMe(userName, existingUsername) {
2742
+ await this.page.locator(".user-task-assigned-wrapper .editable").getByText(existingUsername).click();
2743
+ await this.page.getByTestId(`render-option-${userName}`).click();
2744
+ }
2745
+ async removeAssignToUser(userName) {
2578
2746
  await this.page.getByRole("button", {
2579
- name: existingUsername
2747
+ name: userName
2580
2748
  }).click();
2581
- await this.page.getByTestId(`render-option-${userName}`).click();
2749
+ await this.page.getByRole("button", {
2750
+ name: "Clear"
2751
+ }).click();
2752
+ return this;
2753
+ }
2754
+ async assignToTeam(existingTeamName, teamName) {
2755
+ await this.page.locator(".team-task-assigned-wrapper .editable").getByText(existingTeamName).click();
2756
+ await this.page.getByTestId(`render-option-${teamName}`).click();
2757
+ return this;
2758
+ }
2759
+ async expectAssignedToTeam(teamName) {
2760
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("button", {
2761
+ name: teamName
2762
+ })).toBeVisible();
2763
+ }
2764
+ async removeAssignedTeam(teamName) {
2765
+ await this.page.locator(".team-task-assigned-wrapper .editable").getByText(teamName).click();
2766
+ await this.page.getByRole("button", {
2767
+ name: "Clear"
2768
+ }).click();
2769
+ return this;
2582
2770
  }
2583
2771
  async setFlag(flagName, flagComment) {
2584
2772
  await this.page.getByTestId("flag-btn").click();
@@ -3541,7 +3729,9 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
3541
3729
  }).click();
3542
3730
  await this.page.getByTestId("task-action-comment").click();
3543
3731
  await this.page.getByTestId("task-action-comment").fill(comment);
3544
- await this.page.getByTestId("dot-button").click();
3732
+ await this.page.locator("button", {
3733
+ hasText: "Reopen"
3734
+ }).click();
3545
3735
  }
3546
3736
  async openTaskDrawer(taskName) {
3547
3737
  await this.page.locator(".task-header").getByText(taskName, {
@@ -3765,7 +3955,6 @@ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97
3765
3955
  hasText: phaseName
3766
3956
  });
3767
3957
  this.commentBox = this.page.locator(`.input-block-level`);
3768
- this.confirm = this.page.getByTestId("dot-button");
3769
3958
  this.contextMenuButton = this.page.locator("#context-menu-container li");
3770
3959
  this.dateUtil = new (0, $880df57ffbf6e614$export$9b575f14aa5e09a1)(page);
3771
3960
  }
@@ -3862,6 +4051,44 @@ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97
3862
4051
  exact: true
3863
4052
  }).click();
3864
4053
  }
4054
+ async changeTypeFromContextMenu(taskTitle, taskGroup, taskType) {
4055
+ await this.openContextMenuForTask(taskTitle);
4056
+ await this.page.locator(".dropdown-menu li").getByText("Change type").click();
4057
+ await this.page.locator("#task-selector").fill(taskGroup);
4058
+ await this.page.getByTestId(taskType).click();
4059
+ await this.page.getByRole("button", {
4060
+ name: "Change type"
4061
+ }).click();
4062
+ return this;
4063
+ }
4064
+ async expectChangeTypeContextMenuDisabled(taskTitle, taskGroup, taskType) {
4065
+ await this.openContextMenuForTask(taskTitle);
4066
+ await this.page.locator(".dropdown-menu li").getByText("Change type").click();
4067
+ await this.page.locator("#task-selector").fill(taskGroup);
4068
+ await this.page.getByTestId(taskType).click();
4069
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("button", {
4070
+ name: "Change type"
4071
+ })).toBeDisabled();
4072
+ await this.page.getByRole("button", {
4073
+ name: "Cancel"
4074
+ }).click();
4075
+ return this;
4076
+ }
4077
+ async expectGateCheckMark() {
4078
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-type-gatetask .marker-check-icon")).toBeVisible();
4079
+ return this;
4080
+ }
4081
+ async expectNoOptionInChangeType(taskTitle, taskGroup) {
4082
+ await this.openContextMenuForTask(taskTitle);
4083
+ await this.page.locator(".dropdown-menu li").getByText("Change type").click();
4084
+ await this.page.locator("#task-selector").fill(taskGroup);
4085
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText("No options")).toBeVisible();
4086
+ await this.page.getByTestId("ArrowDropDownIcon").click();
4087
+ await this.page.getByRole("button", {
4088
+ name: "Cancel"
4089
+ }).click();
4090
+ return this;
4091
+ }
3865
4092
  async assignToMeFromContextMenu(taskTitle) {
3866
4093
  await this.openContextMenuForTask(taskTitle);
3867
4094
  await this.page.locator(".dropdown-menu li").getByText("Assign to me").click();
@@ -4003,6 +4230,18 @@ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97
4003
4230
  await (0, $kKeXs$playwrighttest.expect)(this.phaseLocator.locator(".task-generator .add-task")).toHaveCount(0);
4004
4231
  await (0, $kKeXs$playwrighttest.expect)(this.phaseLocator.locator(".display")).toHaveCount(0);
4005
4232
  }
4233
+ async expectTaskFailureManualPermission() {
4234
+ await this.phaseLocator.getByText("Add task").click();
4235
+ const checkboxElement = await this.page.getByTestId("save-select-task-btn").isEnabled();
4236
+ if (!checkboxElement) {
4237
+ await this.page.getByTestId("cancel-select-task-btn").click();
4238
+ await this.phaseLocator.getByText("Add task").click();
4239
+ }
4240
+ await this.page.getByTestId("save-select-task-btn").click();
4241
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("p").filter({
4242
+ hasText: "Your request has been rejected, your permissions may have been revoked."
4243
+ })).toBeVisible();
4244
+ }
4006
4245
  }
4007
4246
  class $9b9a8c3da392d020$var$RestartPhaseModel extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
4008
4247
  constructor(page){
@@ -4145,7 +4384,7 @@ class $0767ec703ce1f9a5$export$572f40d328c1d028 extends (0, $f8721861c660dd88$ex
4145
4384
  super(page);
4146
4385
  this.dateUtil = new (0, $880df57ffbf6e614$export$9b575f14aa5e09a1)(page);
4147
4386
  this.util = new (0, $2c89ba54932fbba8$export$f8f26dd395d7e1bd)(page);
4148
- this.newReleaseGroupButton = page.getByTestId("dot-button");
4387
+ this.newReleaseGroupButton = page.getByText("New release group");
4149
4388
  this.dateMonth = new Date();
4150
4389
  }
4151
4390
  async createGroup(groupName, startDate, endDate) {
@@ -4294,7 +4533,7 @@ class $ceb2e9e08e1837c2$export$9b9454a7f137e99b extends (0, $f8721861c660dd88$ex
4294
4533
  this.addDescription = page.getByPlaceholder("Set description...");
4295
4534
  }
4296
4535
  async clickNewDeliveryPattern() {
4297
- await this.page.getByTestId("dot-button").click();
4536
+ await this.page.getByText("New delivery pattern").click();
4298
4537
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("heading", {
4299
4538
  name: "Create delivery pattern"
4300
4539
  })).toBeVisible();
@@ -4392,7 +4631,9 @@ class $ceb2e9e08e1837c2$export$9b9454a7f137e99b extends (0, $f8721861c660dd88$ex
4392
4631
  })).not.toBeVisible();
4393
4632
  }
4394
4633
  async createNewDelivery(deliveryName, deliveryDes, setAutoComplete) {
4395
- await this.page.getByTestId("dot-button").click();
4634
+ await this.page.getByRole("button", {
4635
+ name: "New delivery"
4636
+ }).click();
4396
4637
  await this.addName.fill(deliveryName);
4397
4638
  await this.addDescription.click();
4398
4639
  if (deliveryDes) await this.addDescription.fill(deliveryDes);
@@ -5100,7 +5341,9 @@ class $b4d98f757ef92467$export$7b434e00c788d0bf extends (0, $f8721861c660dd88$ex
5100
5341
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("info").locator("div")).toContainText("New plugin installedPlugin release-" + pluginName.toLowerCase() + "-integration has been installed, click here to reload the changes or refresh your browser");
5101
5342
  }
5102
5343
  async clickUpload() {
5103
- await this.page.getByTestId("dot-button").click();
5344
+ await this.page.locator("button", {
5345
+ hasText: "Upload"
5346
+ }).click();
5104
5347
  }
5105
5348
  }
5106
5349
 
@@ -5141,7 +5384,7 @@ class $010122e1d9b28b80$export$3cf9c90f870f31bd extends (0, $f8721861c660dd88$ex
5141
5384
  async editUserProfile(email) {
5142
5385
  await this.page.getByLabel("Email address").click();
5143
5386
  await this.page.getByLabel("Email address").fill(email);
5144
- await this.page.getByTestId("dot-button").click();
5387
+ await this.page.getByText("Save").click();
5145
5388
  (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".saved-text").textContent()).toContain("Last saved on ");
5146
5389
  }
5147
5390
  async generateNewAccessToken(tokenName, expiryOptions) {
@@ -5659,6 +5902,11 @@ class $a8855257f8bb2b12$export$43682cddead1dd78 extends (0, $f8721861c660dd88$ex
5659
5902
  await this.page.locator(".release-modal-container").waitFor({
5660
5903
  state: "visible"
5661
5904
  });
5905
+ const modalWindow = await this.page.locator(".release-modal-container").isVisible();
5906
+ if (!modalWindow) {
5907
+ await this.page.locator(".tl-event-title").getByText(release_title).scrollIntoViewIfNeeded();
5908
+ await this.page.locator(".tl-event-title").getByText(release_title).click();
5909
+ }
5662
5910
  await this.page.locator(".release-modal-container").locator(".xl-icon.release-icon").click();
5663
5911
  const releaseurl = `/#/releases/${release_id}`;
5664
5912
  const currentURL = await this.page.url();
@@ -5856,7 +6104,7 @@ class $fd4eef3ad2b2e612$export$a87f0ae8695e74be extends (0, $f8721861c660dd88$ex
5856
6104
  return new $fd4eef3ad2b2e612$var$ReleaseVariableModal(this.page);
5857
6105
  }
5858
6106
  async addNewVariable(variableName, labelname, description) {
5859
- await this.page.locator("#action-toolbar").getByTestId("dot-button").click();
6107
+ await this.page.locator("#action-toolbar").getByText("New variable").click();
5860
6108
  await this.page.fill(`[name="fieldKey"]`, variableName);
5861
6109
  await this.page.locator(".variable-label input").fill(labelname);
5862
6110
  if (description) await this.page.locator(".variable-description input").fill(description);
@@ -6165,8 +6413,9 @@ class $fd4eef3ad2b2e612$var$DeleteVariableModel extends (0, $f8721861c660dd88$ex
6165
6413
  class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
6166
6414
  constructor(page){
6167
6415
  super(page);
6168
- this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
6169
6416
  this.commentBox = this.page.locator(`.input-block-level`);
6417
+ this.gridView = new $ed2d4739e27d43c1$var$GridView(page);
6418
+ this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
6170
6419
  }
6171
6420
  async openTask(taskName) {
6172
6421
  await this.filterTaskByTitle(taskName);
@@ -6379,6 +6628,75 @@ class $ed2d4739e27d43c1$export$60c3bfa6385e2a10 extends (0, $f8721861c660dd88$ex
6379
6628
  async changeGroupView() {
6380
6629
  await this.page.locator("#group-tasks-by-release").click();
6381
6630
  }
6631
+ async enableGroupByReleaseView() {
6632
+ await this.page.getByRole("checkbox", {
6633
+ name: "Group by release"
6634
+ }).check();
6635
+ }
6636
+ async disableGroupByReleaseView() {
6637
+ await this.page.getByRole("checkbox", {
6638
+ name: "Group by release"
6639
+ }).uncheck();
6640
+ }
6641
+ async switchToGridView() {
6642
+ await this.page.locator(".xl-icon.grid-icon").click();
6643
+ return this.gridView;
6644
+ }
6645
+ }
6646
+ class $ed2d4739e27d43c1$var$GridView extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
6647
+ constructor(page){
6648
+ super(page);
6649
+ this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
6650
+ }
6651
+ async expectTaskCountInGridView(count) {
6652
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("task-grid .task-wrapper")).toHaveCount(count);
6653
+ }
6654
+ // eslint-disable-next-line max-params
6655
+ async expectTaskDetailsInGridView(taskId, taskStatus, taskTitle, assignedTo, release, phase, startDate) {
6656
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] .label`)).toContainText(taskStatus);
6657
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] .title`)).toContainText(taskTitle);
6658
+ if (assignedTo) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] span`).filter({
6659
+ hasText: "Assigned to "
6660
+ }).first()).toContainText(assignedTo);
6661
+ if (release) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] [data-test="release"]`)).toContainText(release);
6662
+ if (phase) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] [data-test="phase"] span`)).toContainText(phase);
6663
+ if (startDate) await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] [data-test="started"]`)).toContainText(startDate);
6664
+ else await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] .caption`).getByText("Started")).not.toBeVisible();
6665
+ return this;
6666
+ }
6667
+ async openTaskDrawerFromGridView(taskId, taskTitle) {
6668
+ await this.page.locator(`[data-test-id="${taskId}"] .title`).filter({
6669
+ hasText: taskTitle
6670
+ }).click();
6671
+ return this.taskDrawer;
6672
+ }
6673
+ async openContextualMenu(taskId) {
6674
+ await this.page.locator(`[data-test-id="${taskId}"] .xl-icon.options-icon`).click();
6675
+ }
6676
+ async expectContextMenuHas(taskId, enabled, disabled) {
6677
+ await this.openContextualMenu(taskId);
6678
+ for (const e of enabled)await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] #context-menu-container li:not(.disabled) a`).getByText(e)).toBeVisible();
6679
+ for (const e of disabled)await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`[data-test-id="${taskId}"] #context-menu-container li.disabled a`).getByText(e)).toBeVisible();
6680
+ return this;
6681
+ }
6682
+ async waitForTaskNotDisplayed(taskId) {
6683
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`div.task[data-test-id=${taskId}]`)).not.toBeVisible();
6684
+ return this;
6685
+ }
6686
+ async triggerContextMenuAction(action) {
6687
+ await this.page.locator(`#context-menu-container li a`).filter({
6688
+ hasText: action
6689
+ }).click();
6690
+ if (action === "Complete") {
6691
+ await this.page.locator("#modal textarea[mentio]").isVisible();
6692
+ await this.page.locator("#modal textarea[mentio]").fill("complete");
6693
+ await this.page.locator("#modal button.primary").filter({
6694
+ hasText: "Complete"
6695
+ }).click();
6696
+ return this;
6697
+ }
6698
+ return this;
6699
+ }
6382
6700
  }
6383
6701
 
6384
6702
 
@@ -7519,6 +7837,56 @@ class $3ec0e9cf832fdde8$var$ConfigurationInstancePage extends (0, $f8721861c660d
7519
7837
  }
7520
7838
 
7521
7839
 
7840
+
7841
+ class $267ea1f27d28a032$export$8da2fa93430be6ca extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
7842
+ constructor(page){
7843
+ super(page);
7844
+ }
7845
+ async setTaskAvailableToAllUsers(taskName, enable) {
7846
+ await this.page.locator("tr.ng-scope").filter({
7847
+ has: this.page.getByText(taskName, {
7848
+ exact: true
7849
+ })
7850
+ }).getByRole("checkbox").scrollIntoViewIfNeeded();
7851
+ const checkboxElement = this.page.locator("tr.ng-scope").filter({
7852
+ has: this.page.getByText(taskName, {
7853
+ exact: true
7854
+ })
7855
+ }).getByRole("checkbox");
7856
+ const isChecked = await checkboxElement.isChecked();
7857
+ if (isChecked && !enable) {
7858
+ await this.page.locator("tr.ng-scope").filter({
7859
+ has: this.page.getByText(taskName, {
7860
+ exact: true
7861
+ })
7862
+ }).getByRole("checkbox").scrollIntoViewIfNeeded();
7863
+ await this.page.locator("tr.ng-scope").filter({
7864
+ has: this.page.getByText(taskName, {
7865
+ exact: true
7866
+ })
7867
+ }).getByRole("checkbox").click();
7868
+ await this.page.getByTestId("save-btn").isVisible();
7869
+ await this.page.getByTestId("save-btn").click();
7870
+ await this.page.locator(".saved-text").waitFor();
7871
+ } else if (!isChecked && enable) {
7872
+ await this.page.locator("tr.ng-scope").filter({
7873
+ has: this.page.getByText(taskName, {
7874
+ exact: true
7875
+ })
7876
+ }).getByRole("checkbox").scrollIntoViewIfNeeded();
7877
+ await this.page.locator("tr.ng-scope").filter({
7878
+ has: this.page.getByText(taskName, {
7879
+ exact: true
7880
+ })
7881
+ }).getByRole("checkbox").click();
7882
+ await this.page.getByTestId("save-btn").isVisible();
7883
+ await this.page.getByTestId("save-btn").click();
7884
+ await this.page.locator(".saved-text").waitFor();
7885
+ }
7886
+ }
7887
+ }
7888
+
7889
+
7522
7890
  class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
7523
7891
  constructor(page){
7524
7892
  this.page = page;
@@ -7548,6 +7916,7 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
7548
7916
  this.rolesPage = new (0, $84dbf24c796d0540$export$7a5b979a220f477c)(page);
7549
7917
  this.util = new (0, $2c89ba54932fbba8$export$f8f26dd395d7e1bd)(page);
7550
7918
  this.workflowCatalogPage = new (0, $7bcc05352d6debcf$export$5628dfd1b9e94785)(page);
7919
+ this.taskAccessPage = new (0, $267ea1f27d28a032$export$8da2fa93430be6ca)(page);
7551
7920
  }
7552
7921
  async openTemplate(id) {
7553
7922
  return this.openReleaseOrTemplate(id, false);
@@ -7685,6 +8054,10 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
7685
8054
  async clickOnPrimaryLogo() {
7686
8055
  await this.page.getByTestId("primary-logo").click();
7687
8056
  }
8057
+ async gotoTaskAccessPage() {
8058
+ await this.page.goto("#/task-access");
8059
+ return new (0, $267ea1f27d28a032$export$8da2fa93430be6ca)(this.page);
8060
+ }
7688
8061
  }
7689
8062
 
7690
8063