@digital-ai/devops-page-object-release 0.0.26 → 0.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -1246,9 +1246,12 @@ class $59543fc69900e8db$export$f8e64fcf447db2bf extends (0, $f8721861c660dd88$ex
1246
1246
  await this.page.locator(".variable-label input").fill(labelname);
1247
1247
  if (description) await this.page.locator(".variable-description input").fill(description);
1248
1248
  }
1249
- async selectVariableTextType(valuename) {
1249
+ async selectVariableTextType(valueName, multiline) {
1250
1250
  await this.page.getByRole("combobox").selectOption("StringVariable");
1251
- await this.page.locator(".variable-value").type(valuename);
1251
+ if (multiline) {
1252
+ await this.clickMultiline();
1253
+ await this.page.locator(".variable-value textarea").fill(valueName);
1254
+ } else await this.page.locator(".variable-value input").fill(valueName);
1252
1255
  }
1253
1256
  async selectVariableListboxType(possiblevalue, defaultValue, required) {
1254
1257
  await this.page.getByRole("combobox").selectOption("DropDownListBox");
@@ -1262,7 +1265,6 @@ class $59543fc69900e8db$export$f8e64fcf447db2bf extends (0, $f8721861c660dd88$ex
1262
1265
  }
1263
1266
  await this.page.locator(".variable-value select").type(defaultValue);
1264
1267
  if (required) await this.page.getByRole("checkbox").check();
1265
- else await this.page.getByRole("checkbox").uncheck();
1266
1268
  }
1267
1269
  async selectVariablePasswordType(possiblevalue) {
1268
1270
  await this.page.getByRole("combobox").selectOption("PasswordStringVariable");
@@ -1287,9 +1289,10 @@ class $59543fc69900e8db$export$f8e64fcf447db2bf extends (0, $f8721861c660dd88$ex
1287
1289
  exact: true
1288
1290
  }).click();
1289
1291
  }
1290
- async addVariableDate() {
1292
+ async selectVariableByDate(date, monthYear) {
1291
1293
  await this.page.getByRole("combobox").selectOption("DateVariable");
1292
1294
  await this.page.getByText("Select date").click();
1295
+ await this.setDate(date, monthYear);
1293
1296
  }
1294
1297
  async setDate(date, monthYear) {
1295
1298
  await this.dateUtil.setDate(date, monthYear);
@@ -1367,12 +1370,21 @@ class $59543fc69900e8db$export$f8e64fcf447db2bf extends (0, $f8721861c660dd88$ex
1367
1370
  if (required) await this.page.getByRole("checkbox").check();
1368
1371
  else await this.page.getByRole("checkbox").uncheck();
1369
1372
  }
1373
+ async clickMultiline() {
1374
+ await this.page.locator("#multiline").click();
1375
+ }
1370
1376
  async searchFolderVariable(variableName) {
1371
1377
  await this.page.locator(".searchFilter").fill(variableName);
1372
1378
  }
1373
1379
  async clearFolderVarSearch() {
1374
1380
  await this.page.locator(".searchFilter").clear();
1375
1381
  }
1382
+ async clickFolderVariableButton() {
1383
+ await this.page.getByText("Folder variables").click();
1384
+ }
1385
+ async clickReleaseVariableButton() {
1386
+ await this.page.getByText("Release variables").click();
1387
+ }
1376
1388
  }
1377
1389
  class $59543fc69900e8db$var$VariableModal extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1378
1390
  constructor(page){
@@ -1484,6 +1496,9 @@ class $59543fc69900e8db$var$VariableModal extends (0, $f8721861c660dd88$export$2
1484
1496
  async setValue(value) {
1485
1497
  await this.page.locator(".variable-value input").fill(value);
1486
1498
  }
1499
+ async clearValue() {
1500
+ await this.page.locator(".variable-value input").clear();
1501
+ }
1487
1502
  async clickMultiline() {
1488
1503
  await this.page.locator("#multiline").click();
1489
1504
  }
@@ -1699,9 +1714,21 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
1699
1714
  async setVariable(propertyName, variableName) {
1700
1715
  await this.railLocator.locator(`input[id="${propertyName}"]`).fill(variableName);
1701
1716
  }
1717
+ async expectVariable(propertyName) {
1718
+ await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`input[id="${propertyName}"]`)).toBeVisible();
1719
+ }
1702
1720
  async expectValueFromString(propertyName, propertyValue) {
1703
1721
  return await (0, $kKeXs$playwrighttest.expect)(this.railLocator.locator(`.input-scalar-fake-input[id="${propertyName}"]`)).toHaveText(propertyValue);
1704
1722
  }
1723
+ async expectTo(value) {
1724
+ return await (0, $kKeXs$playwrighttest.expect)(this.railLocator.getByTestId(`dot-autocomplete-chip`)).toHaveText(value);
1725
+ }
1726
+ async expectSubjectToBe(value) {
1727
+ return (0, $kKeXs$playwrighttest.expect)(await this.page.locator("#notification-subject").getAttribute("value")).toContain(value);
1728
+ }
1729
+ async expectBodyToBe(value) {
1730
+ return await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".notification-body-field p")).toHaveText(value);
1731
+ }
1705
1732
  async setValueFromMap(propertyName, key, value) {
1706
1733
  await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] button.add-new-button`).click();
1707
1734
  await this.railLocator.locator(`.input-with-map[data-test-id="${propertyName}"] input[id="new-row-key-input"]`).fill(key);
@@ -1789,21 +1816,29 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
1789
1816
  }).click();
1790
1817
  }
1791
1818
  }
1792
- async validateAutoCompleteOptions(descriptionName, expectedDescription, variableSelection) {
1819
+ async validateAutoCompleteOptionsInDescription(descriptionName, expectedVariableCount, variableToSelection) {
1793
1820
  await this.page.getByLabel("Double-click to edit").waitFor({
1794
1821
  timeout: 10000
1795
1822
  });
1796
1823
  await this.page.getByLabel("Double-click to edit").hover();
1797
1824
  await this.page.locator(".markdown-viewer-actions").getByTestId("edit-button").click();
1798
1825
  await this.page.locator("#task-description-input").fill(descriptionName);
1799
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".dot-popper-content-wrapper .option-name")).toHaveCount(6);
1800
- await this.page.locator(".dot-popper-content-wrapper .option-name").filter({
1801
- hasText: variableSelection
1826
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".dot-popper-content-wrapper .option-name")).toHaveCount(expectedVariableCount);
1827
+ if (variableToSelection) await this.page.locator(".dot-popper-content-wrapper .option-name").filter({
1828
+ hasText: variableToSelection
1802
1829
  }).click();
1803
1830
  await this.page.getByRole("button", {
1804
1831
  name: "Save"
1805
1832
  }).click();
1806
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".phase-link-container").locator(".variable").first()).toHaveText(expectedDescription);
1833
+ }
1834
+ // eslint-disable-next-line max-params
1835
+ async validateAutoCompleteOptions(fieldLabel, value, expectedVariableCount, variableToSelect) {
1836
+ await this.page.getByLabel(fieldLabel).click();
1837
+ await this.page.getByLabel(fieldLabel).fill(value);
1838
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("option")).toHaveCount(expectedVariableCount);
1839
+ if (variableToSelect) await this.page.getByRole("option", {
1840
+ name: variableToSelect
1841
+ }).click();
1807
1842
  }
1808
1843
  async setReleaseTitle(releaseName) {
1809
1844
  await this.page.getByLabel("Release title *").fill(releaseName);
@@ -1883,6 +1918,51 @@ class $eb81c1b930e440ff$export$519356f6c50361f7 extends (0, $f8721861c660dd88$ex
1883
1918
  name: "Abort"
1884
1919
  }).isVisible()).toBe(visible);
1885
1920
  }
1921
+ async setPattern(patternName) {
1922
+ await this.page.locator("#patternId").click();
1923
+ await this.page.locator("#patternId").fill(patternName);
1924
+ await this.page.getByRole("option", {
1925
+ name: patternName
1926
+ }).click();
1927
+ }
1928
+ async setStartDate(date) {
1929
+ await this.page.locator("#startDate").click();
1930
+ await this.page.locator("#startDate").fill(date);
1931
+ }
1932
+ async setEndDate(date) {
1933
+ await this.page.locator("#endDate").click();
1934
+ await this.page.locator("#endDate").fill(date);
1935
+ }
1936
+ async clickVariableButton(objectID, variableValue) {
1937
+ await this.page.locator(`div[data-testid="${objectID}"] .icon-variable`).click();
1938
+ await this.page.locator(`#${objectID}`).fill(variableValue);
1939
+ await this.page.getByRole("option", {
1940
+ name: variableValue
1941
+ }).click();
1942
+ }
1943
+ async enableFallback() {
1944
+ await this.page.getByLabel("Fallback").check();
1945
+ }
1946
+ async expectDescription(description) {
1947
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByTestId("dot-accordion-details")).toHaveText(description);
1948
+ }
1949
+ async editDescription(description) {
1950
+ await this.page.getByLabel("Double-click to edit").waitFor({
1951
+ timeout: 10000
1952
+ });
1953
+ await this.page.getByLabel("Double-click to edit").hover();
1954
+ await this.page.locator(".markdown-viewer-actions").getByTestId("edit-button").click();
1955
+ await this.page.locator("#task-description-input").clear();
1956
+ await this.page.locator("#task-description-input").fill(description);
1957
+ await this.page.getByRole("button", {
1958
+ name: "Save"
1959
+ }).click();
1960
+ }
1961
+ async expectedGateConditionDisplayed(title) {
1962
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".gate-task-condition-input").filter({
1963
+ hasText: title
1964
+ })).toBeVisible();
1965
+ }
1886
1966
  }
1887
1967
  class $eb81c1b930e440ff$export$fbbf45eff21470e3 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1888
1968
  constructor(page){
@@ -1894,18 +1974,15 @@ class $eb81c1b930e440ff$export$fbbf45eff21470e3 extends (0, $f8721861c660dd88$ex
1894
1974
  }
1895
1975
  async getRelease() {
1896
1976
  await this.release.isVisible();
1897
- const releaseValue = await this.release.getAttribute("value");
1898
- return releaseValue;
1977
+ return await this.release.getAttribute("value");
1899
1978
  }
1900
1979
  async getPhase() {
1901
1980
  await this.phase.isVisible();
1902
- const phaseValue = await this.phase.getAttribute("value");
1903
- return phaseValue;
1981
+ return await this.phase.getAttribute("value");
1904
1982
  }
1905
1983
  async getTask() {
1906
1984
  await this.task.isVisible();
1907
- const taskValue = await this.task.getAttribute("value");
1908
- return taskValue;
1985
+ return await this.task.getAttribute("value");
1909
1986
  }
1910
1987
  async setRelease(releaseTitle) {
1911
1988
  await this.release.click();
@@ -1949,8 +2026,8 @@ class $eb81c1b930e440ff$export$fbbf45eff21470e3 extends (0, $f8721861c660dd88$ex
1949
2026
  }
1950
2027
  async expectVariableModeEnabled(mode) {
1951
2028
  await (0, $kKeXs$playwrighttest.expect)(this.dependencyLocator.getByLabel("input-variable")).toBeVisible();
1952
- const variablemode = await this.dependencyLocator.getByLabel("input-variable").getAttribute("aria-pressed");
1953
- (0, $kKeXs$playwrighttest.expect)(variablemode).toBe("" + mode + "");
2029
+ const variableMode = await this.dependencyLocator.getByLabel("input-variable").getAttribute("aria-pressed");
2030
+ (0, $kKeXs$playwrighttest.expect)(variableMode).toBe("" + mode + "");
1954
2031
  }
1955
2032
  async clickVariable() {
1956
2033
  await this.dependencyLocator.getByLabel("input-variable").waitFor();
@@ -1964,15 +2041,15 @@ class $eb81c1b930e440ff$export$fbbf45eff21470e3 extends (0, $f8721861c660dd88$ex
1964
2041
  (0, $kKeXs$playwrighttest.expect)(options[i]).toContain(option);
1965
2042
  }
1966
2043
  }
1967
- async enterNewVariable(variablename) {
2044
+ async enterNewVariable(variableName) {
1968
2045
  await this.page.getByLabel("Please select a variable of").click();
1969
- await this.page.getByLabel("Please select a variable of").fill(variablename);
2046
+ await this.page.getByLabel("Please select a variable of").fill(variableName);
1970
2047
  await this.page.getByTestId("dot-action-item-btn").click();
1971
2048
  }
1972
- async selectVariable(variablename) {
2049
+ async selectVariable(variableName) {
1973
2050
  await this.page.getByLabel("Please select a variable of").click();
1974
2051
  await this.page.getByRole("option", {
1975
- name: variablename
2052
+ name: variableName
1976
2053
  }).click();
1977
2054
  }
1978
2055
  }
@@ -1981,11 +2058,11 @@ class $eb81c1b930e440ff$export$fbbf45eff21470e3 extends (0, $f8721861c660dd88$ex
1981
2058
 
1982
2059
 
1983
2060
  class $6c924a95a765a086$export$15d3f9b095bb5188 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
1984
- async expectCommentToContain(text) {
1985
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-comment .markdown-wrapper p")).toContainText(text);
2061
+ async expectCommentToContain(comment) {
2062
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".markdown-wrapper").textContent()).toContain(comment);
1986
2063
  }
1987
2064
  async expectTaskIsCommentable(isCommentable) {
1988
- (0, $kKeXs$playwrighttest.expect)(await this.page.locator("#task-comment").count()).toBe(isCommentable ? 1 : 0);
2065
+ return (0, $kKeXs$playwrighttest.expect)(await this.page.locator("#task-comment").count()).toBe(isCommentable ? 1 : 0);
1989
2066
  }
1990
2067
  }
1991
2068
 
@@ -2043,9 +2120,12 @@ class $f9016705c1a1eb20$export$aa59788fdecae2f2 extends (0, $f8721861c660dd88$ex
2043
2120
 
2044
2121
 
2045
2122
 
2046
- class $1fbdec5dc9cde599$export$b7be47b40aa877fc extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2123
+
2124
+
2125
+ class $1fbdec5dc9cde599$export$e3515314c13bc477 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2047
2126
  constructor(page){
2048
2127
  super(page);
2128
+ this.dateUtil = new (0, $880df57ffbf6e614$export$9b575f14aa5e09a1)(page);
2049
2129
  }
2050
2130
  async expectStartDateToBeDisplayed() {
2051
2131
  (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".flex-section.column").filter({
@@ -2057,6 +2137,66 @@ class $1fbdec5dc9cde599$export$b7be47b40aa877fc extends (0, $f8721861c660dd88$ex
2057
2137
  hasText: "End Date"
2058
2138
  }).locator(".task-date-view-content").isVisible()).toBe(true);
2059
2139
  }
2140
+ async switchWaitForScheduledDate() {
2141
+ await this.page.locator(".wait-for-start input").click();
2142
+ }
2143
+ async expectWaitForScheduledDateToBeChecked() {
2144
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".wait-for-start input")).toBeChecked();
2145
+ }
2146
+ async expectWaitForScheduledDateToBeUnchecked() {
2147
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".wait-for-start input")).not.toBeChecked();
2148
+ }
2149
+ async setDueTime(day, hour, minute) {
2150
+ await this.page.locator(".duration-view-content").click();
2151
+ if (day) {
2152
+ await this.page.locator("#days").clear();
2153
+ await this.page.locator("#days").fill(day);
2154
+ }
2155
+ if (hour) {
2156
+ await this.page.locator("#hours").clear();
2157
+ await this.page.locator("#hours").fill(hour);
2158
+ }
2159
+ if (minute) {
2160
+ await this.page.locator("#minutes").clear();
2161
+ await this.page.locator("#minutes").fill(minute);
2162
+ }
2163
+ await this.page.getByTestId("save-button").click();
2164
+ }
2165
+ async setStartDate(date, monthYear) {
2166
+ await this.page.locator(".flex-section.column").filter({
2167
+ hasText: "Start date"
2168
+ }).locator(".task-date").waitFor({
2169
+ timeout: 10000
2170
+ });
2171
+ await this.page.locator(".flex-section.column").filter({
2172
+ hasText: "Start date"
2173
+ }).locator(".task-date").click();
2174
+ await this.setDate(date, monthYear);
2175
+ }
2176
+ async setEndDate(date, monthYear) {
2177
+ await this.page.locator(".flex-section.column").filter({
2178
+ hasText: "End date"
2179
+ }).locator(".task-date").waitFor({
2180
+ timeout: 10000
2181
+ });
2182
+ await this.page.locator(".flex-section.column").filter({
2183
+ hasText: "End date"
2184
+ }).locator(".task-date").click();
2185
+ await this.setDate(date, monthYear);
2186
+ }
2187
+ async setDate(date, monthYear) {
2188
+ const prev = this.page.getByTestId("ArrowLeftIcon");
2189
+ const next = this.page.getByTestId("ArrowRightIcon");
2190
+ const monYear = this.page.locator(".MuiPickersCalendarHeader-label");
2191
+ const currentDate = await monYear.textContent();
2192
+ const thisMonth = (0, ($parcel$interopDefault($kKeXs$moment)))(monthYear, "MMMM YYYY").isBefore(currentDate);
2193
+ while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
2194
+ else await next.click();
2195
+ await this.page.getByRole("gridcell", {
2196
+ name: "" + date + "",
2197
+ exact: true
2198
+ }).first().click();
2199
+ }
2060
2200
  }
2061
2201
 
2062
2202
 
@@ -2075,6 +2215,8 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
2075
2215
  this.config = new (0, $8be2ce0eccbe6d27$export$64c93bc7fb9ca44e)(page);
2076
2216
  this.condition = new (0, $9c0b0c2caed50730$export$d4865631ba74f3e2)(page);
2077
2217
  this.overview = new (0, $eb81c1b930e440ff$export$519356f6c50361f7)(page);
2218
+ this.scheduling = new (0, $1fbdec5dc9cde599$export$e3515314c13bc477)(page);
2219
+ this.startButton = this.page.getByTestId("single-action-button");
2078
2220
  this.skipMenu = this.page.getByRole("menuitem", {
2079
2221
  name: "Skip"
2080
2222
  });
@@ -2098,7 +2240,7 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
2098
2240
  }
2099
2241
  async openSchedulingRail() {
2100
2242
  await this.openRail("Scheduling");
2101
- return new (0, $1fbdec5dc9cde599$export$b7be47b40aa877fc)(this.page);
2243
+ return new (0, $1fbdec5dc9cde599$export$e3515314c13bc477)(this.page);
2102
2244
  }
2103
2245
  async openConditionRail() {
2104
2246
  await this.openRail("Conditions");
@@ -2144,6 +2286,12 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
2144
2286
  async expectTaskTitle(taskTitle) {
2145
2287
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-drawer .task-title-input .dot-view-mode-typography")).toContainText(taskTitle);
2146
2288
  }
2289
+ async setTitle(title) {
2290
+ await this.page.getByTestId("task-title-input-view-mode-typography").click();
2291
+ await this.page.getByTestId("task-title-input-input").clear();
2292
+ await this.page.getByTestId("task-title-input-input").fill(title);
2293
+ await this.page.getByTestId("task-title-input-input").press("Enter");
2294
+ }
2147
2295
  async expectTypeToContain(taskType) {
2148
2296
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-drawer .task-type")).toContainText(taskType);
2149
2297
  }
@@ -2168,26 +2316,16 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
2168
2316
  name: username
2169
2317
  })).toBeVisible();
2170
2318
  }
2171
- async expectStartNowButtonToBeVisible() {
2172
- await (0, $kKeXs$playwrighttest.expect)(this.page.getByTestId("single-action-button")).toBeVisible();
2173
- }
2174
- async startNow(comment) {
2175
- await this.page.getByTestId("single-action-button").click();
2176
- await this.page.getByTestId("task-action-comment").fill(comment);
2177
- await this.page.getByTestId("dot-button").click();
2178
- await (0, $kKeXs$playwrighttest.expect)(this.page.getByTestId("single-action-button")).not.toBeVisible();
2179
- }
2180
- async expectCommentsToContain(text) {
2181
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task-comment-body .markdown-wrapper p")).toContainText(text);
2319
+ async expectStartButtonToBeEnabled(isEnabled = true) {
2320
+ if (isEnabled) await (0, $kKeXs$playwrighttest.expect)(this.startButton).toBeEnabled();
2321
+ else await (0, $kKeXs$playwrighttest.expect)(this.startButton).not.toBeEnabled();
2182
2322
  }
2183
- async switchWaitForScheduledDate() {
2184
- await this.page.locator(".wait-for-start input").click();
2185
- }
2186
- async expectWaitForScheduledDateToBeChecked() {
2187
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".wait-for-start input")).toBeChecked();
2188
- }
2189
- async expectWaitForScheduledDateToBeUnchecked() {
2190
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".wait-for-start input")).not.toBeChecked();
2323
+ async startTask(comment) {
2324
+ await this.startButton.click();
2325
+ await this.completeButton.click();
2326
+ await this.commentBox.fill(comment);
2327
+ await this.completeButton.click();
2328
+ await (0, $kKeXs$playwrighttest.expect)(this.startButton).not.toBeVisible();
2191
2329
  }
2192
2330
  // Other locators are flaky and it can be replaced if we get locator change in the frontend
2193
2331
  async clickOnStartDate() {
@@ -2247,10 +2385,12 @@ class $6a21661eb4695574$export$e946776eae644790 extends (0, $f8721861c660dd88$ex
2247
2385
 
2248
2386
 
2249
2387
 
2388
+
2250
2389
  class $e8395395d01b66bb$export$5a82be0a2a261cc6 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2251
2390
  constructor(page){
2252
2391
  super(page);
2253
2392
  this.releaseHeader = this.page.locator(".release-header");
2393
+ this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
2254
2394
  }
2255
2395
  async enableShowDates() {
2256
2396
  await this.page.locator("#toggleIsDatesColumnsShown").check();
@@ -2264,6 +2404,105 @@ class $e8395395d01b66bb$export$5a82be0a2a261cc6 extends (0, $f8721861c660dd88$ex
2264
2404
  async expectPlanningDateColumnsShown() {
2265
2405
  (0, $kKeXs$playwrighttest.expect)(await this.page.locator(`#gantt .gantt_grid_data .gantt_row`).first().locator(`.gantt_cell`).count()).toEqual(4);
2266
2406
  }
2407
+ async expectReleaseOnBreadcrumb(title) {
2408
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("link", {
2409
+ name: title
2410
+ })).toBeVisible();
2411
+ }
2412
+ async expectPhaseDisplayed(phaseName) {
2413
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByTitle(phaseName, {
2414
+ exact: true
2415
+ })).toBeVisible();
2416
+ }
2417
+ async expectTaskDisplayed(taskName, isDisplayed = true) {
2418
+ if (isDisplayed) await (0, $kKeXs$playwrighttest.expect)(this.page.getByTitle(taskName)).toBeVisible();
2419
+ else await (0, $kKeXs$playwrighttest.expect)(this.page.getByTitle(taskName)).not.toBeVisible();
2420
+ }
2421
+ async expandGanttTree(title) {
2422
+ return await this.page.locator(".gantt_cell").filter({
2423
+ hasText: title
2424
+ }).locator(".gantt_open").click();
2425
+ }
2426
+ async expectDifferentWidth(title1, title2) {
2427
+ const releaseWidth = await this.page.locator(`.gantt_task_content`).getByText(title1, {
2428
+ exact: true
2429
+ }).getAttribute("style");
2430
+ const PhaseWidth = await this.page.locator(`.gantt_task_content`).getByText(title2, {
2431
+ exact: true
2432
+ }).getAttribute("style");
2433
+ return (0, $kKeXs$playwrighttest.expect)(releaseWidth).not.toEqual(PhaseWidth);
2434
+ }
2435
+ async expectSameWidth(title1, title2) {
2436
+ const releaseWidth = await this.page.locator(`.gantt_task_content`).getByText(title1, {
2437
+ exact: true
2438
+ }).getAttribute("style");
2439
+ const PhaseWidth = await this.page.locator(`.gantt_task_content`).getByText(title2, {
2440
+ exact: true
2441
+ }).getAttribute("style");
2442
+ return (0, $kKeXs$playwrighttest.expect)(releaseWidth).toEqual(PhaseWidth);
2443
+ }
2444
+ async expectElementWithClasses(title, classes) {
2445
+ const eleNumber = await this.page.locator(`.${classes.join(".")}`).locator(`.gantt_task_content`).getByText(title, {
2446
+ exact: true
2447
+ }).count();
2448
+ return (0, $kKeXs$playwrighttest.expect)(eleNumber).toBe(1);
2449
+ }
2450
+ async resizeToDayIndex(title, index) {
2451
+ await this.page.locator(`#gantt .gantt_container .gantt_task_line`).filter({
2452
+ hasText: title
2453
+ }).click();
2454
+ await this.page.locator(`.gantt_task_line`).filter({
2455
+ hasText: title
2456
+ }).locator(`.gantt_task_drag.task_right`).hover();
2457
+ const objId = await this.page.locator(`.gantt_task_line`).filter({
2458
+ hasText: title
2459
+ }).getAttribute("task_id");
2460
+ await this.page.mouse.down();
2461
+ await this.page.locator(`div[task_id='${objId}']`).locator(".gantt_task_cell").nth(index).hover();
2462
+ await this.page.mouse.up();
2463
+ }
2464
+ async expectLinksToBeDisplayed(countOfLinks) {
2465
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".gantt_task_link").count()).toEqual(countOfLinks);
2466
+ }
2467
+ async expectLeftHandleVisibility(title, visible) {
2468
+ const objId = await this.page.locator(`.gantt_task_line`).filter({
2469
+ hasText: title
2470
+ }).getAttribute("task_id");
2471
+ if (visible) {
2472
+ await this.page.locator("#gantt .gantt_container .gantt_task_line").filter({
2473
+ hasText: title
2474
+ }).hover();
2475
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#gantt .gantt_container ").locator(`div[task_id="${objId}"].gantt-no-left-handle`)).not.toBeVisible();
2476
+ } else {
2477
+ await this.page.locator("#gantt .gantt_container .gantt_task_line").filter({
2478
+ hasText: title
2479
+ }).hover();
2480
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#gantt .gantt_container ").locator(`div[task_id="${objId}"].gantt-no-left-handle`)).toBeVisible();
2481
+ }
2482
+ }
2483
+ async expectRightHandleVisibility(title, visible) {
2484
+ const objId = await this.page.locator(`.gantt_task_line`).filter({
2485
+ hasText: title
2486
+ }).getAttribute("task_id");
2487
+ if (visible) {
2488
+ await this.page.locator("#gantt .gantt_container .gantt_task_line").filter({
2489
+ hasText: title
2490
+ }).hover();
2491
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#gantt .gantt_container").locator(`div[task_id='${objId}'].gantt-no-right-handle`)).not.toBeVisible();
2492
+ } else {
2493
+ await this.page.locator("#gantt .gantt_container .gantt_task_line").filter({
2494
+ hasText: title
2495
+ }).hover();
2496
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#gantt .gantt_container").locator(`div[task_id='${objId}'].gantt-no-right-handle`)).toBeVisible();
2497
+ }
2498
+ }
2499
+ async openTaskDrawer(title) {
2500
+ await this.page.getByTitle(title).dblclick();
2501
+ return this.taskDrawer;
2502
+ }
2503
+ async openPhaseDetails(phaseName) {
2504
+ await this.page.getByTitle(phaseName).dblclick();
2505
+ }
2267
2506
  getRow(phaseName) {
2268
2507
  return new $e8395395d01b66bb$var$GanttRow(this.page, phaseName);
2269
2508
  }
@@ -2297,20 +2536,20 @@ class $e8395395d01b66bb$var$GanttRow extends (0, $f8721861c660dd88$export$2b65d1
2297
2536
  await this.dateUtil.setDate(date, monthYear);
2298
2537
  }
2299
2538
  async expectStartDateToBe(date) {
2300
- const dateTimePicker = await this.getFirstDate();
2301
- this.dateUtil.expectDateToBe(dateTimePicker, date);
2539
+ const dateTimePicker = this.getFirstDate();
2540
+ await this.dateUtil.expectDateToBe(await dateTimePicker, date);
2302
2541
  }
2303
2542
  async expectEndDateToBe(date) {
2304
- const dateTimePicker = await this.getLastDate();
2305
- this.dateUtil.expectDateToBe(dateTimePicker, date);
2543
+ const dateTimePicker = this.getLastDate();
2544
+ await this.dateUtil.expectDateToBe(await dateTimePicker, date);
2306
2545
  }
2307
2546
  async removeStartDate() {
2308
2547
  const dateTimePicker = await this.getFirstDateEditor();
2309
2548
  await this.dateUtil.removeDate(dateTimePicker);
2310
2549
  }
2311
2550
  async removeEndDate() {
2312
- const dateTimePicker = await this.getLastDateEditor();
2313
- await this.dateUtil.removeDate(dateTimePicker);
2551
+ const dateTimePicker = this.getLastDateEditor();
2552
+ await this.dateUtil.removeDate(await dateTimePicker);
2314
2553
  }
2315
2554
  async expectStartDateToBeInferred() {
2316
2555
  const dateTimePicker = await this.getFirstDateEditor();
@@ -2356,6 +2595,7 @@ class $8681d8a3f46f87b7$export$d1077068a9cc9f17 extends (0, $f8721861c660dd88$ex
2356
2595
  await this.page.locator("#release-form-title").fill(name);
2357
2596
  }
2358
2597
  async setDescription(description) {
2598
+ await this.page.locator(".task-description").hover();
2359
2599
  await this.page.locator(".display > .xl-icon").first().click();
2360
2600
  await this.page.locator("textarea").click();
2361
2601
  await this.page.locator("textarea").clear();
@@ -2528,6 +2768,35 @@ class $8681d8a3f46f87b7$export$d1077068a9cc9f17 extends (0, $f8721861c660dd88$ex
2528
2768
  async expectDescriptionToBe(description) {
2529
2769
  (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".release-description p").textContent()).toContain(description);
2530
2770
  }
2771
+ async expectReleaseNameToBe(name) {
2772
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator('form[name="releasePropertiesForm"]')).toContainText("Properties for " + name);
2773
+ }
2774
+ async expectStartDateReadonly() {
2775
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#release-properties .form-group").filter({
2776
+ hasText: "Start date"
2777
+ }).locator(".date-editor.readonly")).toBeVisible();
2778
+ }
2779
+ async expectEndDateReadonly() {
2780
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#release-properties .form-group").filter({
2781
+ hasText: "End date"
2782
+ }).locator(".date-editor.readonly")).toBeVisible();
2783
+ }
2784
+ async setOwner(user) {
2785
+ await this.page.locator(".release-owner").click();
2786
+ await this.page.locator(".release-owner input").clear();
2787
+ await this.page.locator(".release-owner input").fill(user);
2788
+ }
2789
+ async expectPageTitleToBeInBreadcrumbLink(releaseName) {
2790
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".dot-breadcrumbs a").allTextContents()).toContain(releaseName);
2791
+ }
2792
+ async reloadPage() {
2793
+ await this.page.reload({
2794
+ timeout: 3000
2795
+ });
2796
+ }
2797
+ async expectOwnerToBe(user) {
2798
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-owner")).toContainText(user);
2799
+ }
2531
2800
  }
2532
2801
 
2533
2802
 
@@ -2553,6 +2822,212 @@ class $d330a7d6f7926d53$export$3bc3e140e0dcb075 extends (0, $f8721861c660dd88$ex
2553
2822
 
2554
2823
 
2555
2824
 
2825
+ class $c5c393ea4aecca6c$export$649fde34d823ece7 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2826
+ constructor(page){
2827
+ super(page);
2828
+ this.commentBox = this.page.locator(`.input-block-level`);
2829
+ this.dateUtil = new (0, $880df57ffbf6e614$export$9b575f14aa5e09a1)(page);
2830
+ this.refreshButton = this.page.getByTestId("refresh-btn");
2831
+ this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
2832
+ }
2833
+ async openContextMenuForTask(taskTitle) {
2834
+ await this.page.locator(".name-cell-wrapper").filter({
2835
+ hasText: taskTitle
2836
+ }).locator(".context-menu-button").click();
2837
+ }
2838
+ // eslint-disable-next-line max-params
2839
+ async callMenuOptionsForTask(taskTitle, option, taskGroup, taskType) {
2840
+ await this.openContextMenuForTask(taskTitle);
2841
+ await this.page.locator(".dropdown-menu li").getByText(option).click();
2842
+ if (await this.commentBox.isVisible()) await this.commentBox.fill(" Automation Test Comment");
2843
+ else if (await this.page.getByRole("heading", {
2844
+ name: "Change task type"
2845
+ }).isVisible()) {
2846
+ await this.page.getByPlaceholder("Start typing to filter task").click();
2847
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2848
+ // @ts-ignore
2849
+ await this.page.locator("#task-selector").fill(taskGroup);
2850
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2851
+ // @ts-ignore
2852
+ await this.page.getByTestId(taskType).click();
2853
+ }
2854
+ if (await this.page.getByRole("button", {
2855
+ name: option,
2856
+ exact: true
2857
+ }).isVisible()) await this.page.getByRole("button", {
2858
+ name: option,
2859
+ exact: true
2860
+ }).click();
2861
+ }
2862
+ async expectAssignToUser(taskTitle, username) {
2863
+ await this.refreshButton.click();
2864
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".ui-grid-row").filter({
2865
+ hasText: taskTitle
2866
+ }).locator(`span[display-user="row.entity.planItem.owner"] span`).textContent()).toContain(username);
2867
+ }
2868
+ async expectToHasGateIcon(taskTitle) {
2869
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".ui-grid-row").filter({
2870
+ hasText: taskTitle
2871
+ }).locator(".marker-check-icon")).toBeVisible();
2872
+ }
2873
+ async expectTaskRowCountToBe(title, expectedCount) {
2874
+ await this.refreshButton.click();
2875
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".name-cell-title").filter({
2876
+ hasText: title
2877
+ }).count()).toBe(expectedCount);
2878
+ }
2879
+ async setHeaderFilter(columnTitle, valueToFilter) {
2880
+ const filter = this.page.locator(`.ui-grid-header-cell`).filter({
2881
+ hasText: columnTitle
2882
+ }).locator(`input`);
2883
+ await filter.clear();
2884
+ await filter.fill(valueToFilter);
2885
+ }
2886
+ async expectRowCountToBe(cellCount) {
2887
+ const cont = await this.page.locator(".ui-grid-canvas .name-cell").count();
2888
+ (0, $kKeXs$playwrighttest.expect)(cont).toBe(cellCount);
2889
+ }
2890
+ async filterStartDate(date, monthYear) {
2891
+ await this.page.locator(`.ui-grid-header-cell`).filter({
2892
+ hasText: "Start Date"
2893
+ }).locator(`input`).click();
2894
+ await this.dateUtil.setDate(date, monthYear);
2895
+ }
2896
+ async filterEndDate(date, monthYear) {
2897
+ await this.page.locator(`.ui-grid-header-cell`).filter({
2898
+ hasText: "End Date"
2899
+ }).locator(`input`).click();
2900
+ await this.dateUtil.setDate(date, monthYear);
2901
+ }
2902
+ async openTaskDrawer(taskTitle) {
2903
+ await this.page.locator(".name-cell-title").filter({
2904
+ hasText: taskTitle
2905
+ }).click();
2906
+ return this.taskDrawer;
2907
+ }
2908
+ async collapseNthRowByIndex(Indexnumber) {
2909
+ await this.page.locator(".task-group-toggle .xl-icon.arrow-down-icon").nth(Indexnumber).click();
2910
+ }
2911
+ async closePhaseModal() {
2912
+ await this.page.locator("button[type='button'] i[class='xl-icon close-icon']").click();
2913
+ }
2914
+ async expectTaskToHaveStatus(taskTitle, status) {
2915
+ await this.refreshButton.click();
2916
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".ui-grid-row").filter({
2917
+ hasText: taskTitle
2918
+ }).locator(".label ").textContent()).toContain(status);
2919
+ }
2920
+ async expectOverdueOnEndDate(taskTitle) {
2921
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(`.ui-grid-row`).filter({
2922
+ hasText: taskTitle
2923
+ }).locator(`i.xl-icon.delay-icon.overdue-icon`).isVisible()).toBe(true);
2924
+ }
2925
+ async selectTask(taskTitle) {
2926
+ await this.page.locator(`.ui-grid-cell-contents`).filter({
2927
+ hasText: taskTitle
2928
+ }).locator(`.item-selector`).click({
2929
+ force: true
2930
+ });
2931
+ }
2932
+ async expectSelectedTasksCounter(text) {
2933
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByTestId("release-grid-selected-tasks")).toBeVisible();
2934
+ (0, $kKeXs$playwrighttest.expect)(await this.page.getByTestId("release-grid-selected-tasks").textContent()).toContain(text);
2935
+ }
2936
+ async clearSelection() {
2937
+ await this.page.getByTestId("release-grid-unselect-btn").click();
2938
+ return this;
2939
+ }
2940
+ async assignSelectedTasks(owner, team) {
2941
+ await this.page.getByText("Assign to").click();
2942
+ if (owner) {
2943
+ const ownerSelector = this.page.locator(".task-owner");
2944
+ await ownerSelector.focus();
2945
+ await ownerSelector.click();
2946
+ await this.page.getByLabel("*").fill(owner);
2947
+ await this.page.locator("a").filter({
2948
+ hasText: owner
2949
+ }).click();
2950
+ }
2951
+ if (team) {
2952
+ const teamSelector = this.page.locator(".task-team > .display");
2953
+ await teamSelector.focus();
2954
+ await teamSelector.click();
2955
+ await this.page.getByLabel(team, {
2956
+ exact: true
2957
+ }).selectOption(team);
2958
+ }
2959
+ await this.page.getByRole("button", {
2960
+ name: "Assign"
2961
+ }).click();
2962
+ return this;
2963
+ }
2964
+ async expectSuccessMessage(successMessage) {
2965
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("success")).toContainText(successMessage);
2966
+ return this;
2967
+ }
2968
+ async completeSelectedTasks(comment) {
2969
+ await this.page.getByTestId("release-grid-complete-btn").click();
2970
+ await this.page.getByPlaceholder("Give feedback or place a").fill(comment);
2971
+ await this.page.getByRole("button", {
2972
+ name: "Complete"
2973
+ }).click();
2974
+ return this;
2975
+ }
2976
+ async selectFromMoreActions(menuItem) {
2977
+ await this.page.getByTestId("release-grid-dropdown-btn").click();
2978
+ await this.page.getByRole("menuitem", {
2979
+ name: menuItem
2980
+ }).click();
2981
+ if (await this.commentBox.isVisible() == true) await this.commentBox.fill(" Automation Test Comment");
2982
+ if (await this.page.getByRole("button", {
2983
+ name: menuItem,
2984
+ exact: true
2985
+ }).isVisible() == true) await this.page.getByRole("button", {
2986
+ name: menuItem,
2987
+ exact: true
2988
+ }).click();
2989
+ return this;
2990
+ }
2991
+ async addCommentToSelectedTask(comment) {
2992
+ await this.page.getByTestId("release-grid-comment-btn").click();
2993
+ await this.page.getByPlaceholder("Give feedback or place a").click();
2994
+ await this.page.getByPlaceholder("Give feedback or place a").fill(comment);
2995
+ await this.page.getByRole("button", {
2996
+ name: "Comment"
2997
+ }).click();
2998
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("success")).toBeVisible();
2999
+ return this;
3000
+ }
3001
+ async selectSubtasks(item) {
3002
+ await this.page.locator(`.ui-grid-cell-contents`).filter({
3003
+ hasText: item
3004
+ }).locator(`.tasks-group-select`).click({
3005
+ force: true
3006
+ });
3007
+ return this;
3008
+ }
3009
+ async shiftSelectFromTo(taskFrom, taskTo) {
3010
+ await this.page.locator(`.ui-grid-cell-contents`).filter({
3011
+ hasText: taskFrom
3012
+ }).locator(`.item-selector`).click({
3013
+ force: true
3014
+ });
3015
+ await this.page.keyboard.down("Shift");
3016
+ await this.page.locator(`.ui-grid-cell-contents`).filter({
3017
+ hasText: taskTo
3018
+ }).locator(`.item-selector`).click({
3019
+ force: true
3020
+ });
3021
+ await this.page.keyboard.up("Shift");
3022
+ return this;
3023
+ }
3024
+ }
3025
+
3026
+
3027
+
3028
+
3029
+
3030
+
2556
3031
  class $2c89ba54932fbba8$export$f8f26dd395d7e1bd extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2557
3032
  constructor(page){
2558
3033
  super(page);
@@ -2636,8 +3111,10 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
2636
3111
  defaultTimeout = 10000;
2637
3112
  constructor(page){
2638
3113
  super(page);
3114
+ this.addPhaseBtn = this.page.getByTestId("add-phase-btn");
2639
3115
  this.createPage = new (0, $3d3f3946c54f5897$export$34addcca3f0ae43f)(page);
2640
3116
  this.ganttPage = new (0, $e8395395d01b66bb$export$5a82be0a2a261cc6)(page);
3117
+ this.tableView = new (0, $c5c393ea4aecca6c$export$649fde34d823ece7)(page);
2641
3118
  this.taskDrawer = new (0, $6a21661eb4695574$export$e946776eae644790)(page);
2642
3119
  this.teamsPermissions = new (0, $d330a7d6f7926d53$export$3bc3e140e0dcb075)(page);
2643
3120
  this.phaseTitle = this.page.locator(".phase .phase-title");
@@ -2657,6 +3134,7 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
2657
3134
  await this.page.getByRole("button", {
2658
3135
  name: "Abort"
2659
3136
  }).click();
3137
+ await this.page.locator(".progress-status-and-percentage").waitFor();
2660
3138
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".progress-status-and-percentage")).toContainText("Aborted");
2661
3139
  }
2662
3140
  getPhase(phaseName) {
@@ -2680,6 +3158,7 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
2680
3158
  await this.page.getByRole("button", {
2681
3159
  name: "Start"
2682
3160
  }).click();
3161
+ await this.page.waitForSelector("#release");
2683
3162
  }
2684
3163
  async waitForCompletion(timeout = this.defaultTimeout) {
2685
3164
  await this.page.locator("#release.completed").waitFor({
@@ -2693,6 +3172,13 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
2693
3172
  timeout: timeout
2694
3173
  });
2695
3174
  }
3175
+ async waitForTaskNeedsInput(taskTitle) {
3176
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.waiting_for_input").getByText(taskTitle, {
3177
+ exact: true
3178
+ })).toBeVisible({
3179
+ timeout: 10000
3180
+ });
3181
+ }
2696
3182
  async waitForTaskCompletedInAdvance(taskTitle, timeout = this.defaultTimeout) {
2697
3183
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".task.completed_in_advance").getByText(taskTitle, {
2698
3184
  exact: true
@@ -2877,6 +3363,10 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
2877
3363
  });
2878
3364
  (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".progress-status-and-percentage").textContent()).toContain("Aborted");
2879
3365
  }
3366
+ async expectInProgressStatusToBePresent() {
3367
+ await this.page.getByTestId("refresh-btn").click();
3368
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".progress-status-and-percentage").textContent()).toContain("In progress");
3369
+ }
2880
3370
  async openTableView() {
2881
3371
  await this.util.openSideNavMenu("Table");
2882
3372
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-grid-container")).toBeVisible();
@@ -2909,7 +3399,7 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
2909
3399
  })).toBeVisible();
2910
3400
  }
2911
3401
  async addNewPhase(phaseName) {
2912
- await this.page.getByTestId("add-phase-btn").click();
3402
+ await this.addPhaseBtn.click();
2913
3403
  if (phaseName) {
2914
3404
  await this.phaseTitle.getByText("New Phase").click();
2915
3405
  await this.phaseTitle.getByRole("textbox").clear();
@@ -2981,6 +3471,12 @@ class $9b9a8c3da392d020$export$f43492e8ac3c566 extends (0, $f8721861c660dd88$exp
2981
3471
  await this.page.getByTestId("restart-btn").click();
2982
3472
  return new $9b9a8c3da392d020$var$RestartPhaseModel(this.page);
2983
3473
  }
3474
+ async expectAddPhaseNotVisible() {
3475
+ await (0, $kKeXs$playwrighttest.expect)(this.addPhaseBtn).not.toBeVisible();
3476
+ }
3477
+ async expectAddTaskNotVisible() {
3478
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".add-task.link")).not.toBeVisible();
3479
+ }
2984
3480
  }
2985
3481
  class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
2986
3482
  constructor(page, phaseName){
@@ -3073,6 +3569,23 @@ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97
3073
3569
  exact: true
3074
3570
  }).click();
3075
3571
  }
3572
+ async completeFromContextMenu(taskTitle, comment) {
3573
+ await this.openContextMenuForTask(taskTitle);
3574
+ await this.page.locator(".dropdown-menu li").getByText("Complete").click();
3575
+ await this.commentBox.fill(comment);
3576
+ await this.page.getByRole("button", {
3577
+ name: "Complete",
3578
+ exact: true
3579
+ }).click();
3580
+ }
3581
+ async assignToMeFromContextMenu(taskTitle) {
3582
+ await this.openContextMenuForTask(taskTitle);
3583
+ await this.page.locator(".dropdown-menu li").getByText("Assign to me").click();
3584
+ }
3585
+ async duplicateFromContextMenu(taskTitle) {
3586
+ await this.openContextMenuForTask(taskTitle);
3587
+ await this.page.locator(".dropdown-menu li").getByText("Duplicate").click();
3588
+ }
3076
3589
  async expectTemplateLabelNotToBePresent() {
3077
3590
  await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".dot-chip").filter({
3078
3591
  hasText: "TEMPLATE"
@@ -3151,7 +3664,15 @@ class $9b9a8c3da392d020$var$Phase extends (0, $f8721861c660dd88$export$2b65d1d97
3151
3664
  })).not.toBeVisible();
3152
3665
  }
3153
3666
  async expectCompletedPhase() {
3154
- await (0, $kKeXs$playwrighttest.expect)(this.phaseLocator.locator("a")).toContainText("View all completed phases");
3667
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText("View all completed phases")).toBeVisible();
3668
+ }
3669
+ async clickViewAllCompletedPhase() {
3670
+ await this.page.getByText("View all completed phases").click();
3671
+ }
3672
+ async expectTaskToBePresent(taskName) {
3673
+ await (0, $kKeXs$playwrighttest.expect)(this.phaseLocator.locator(".task").filter({
3674
+ hasText: taskName
3675
+ })).toBeVisible();
3155
3676
  }
3156
3677
  }
3157
3678
  class $9b9a8c3da392d020$var$RestartPhaseModel extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
@@ -3280,6 +3801,9 @@ class $b2d8d8d82fc8146c$export$eace2be4de1d3377 extends (0, $f8721861c660dd88$ex
3280
3801
  hasText: "Deleted release delivery successfully"
3281
3802
  })).toBeVisible();
3282
3803
  }
3804
+ async expectDeliveryDisplayed(deliveryName) {
3805
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator(".fc-list-item-title").textContent()).toContain(deliveryName);
3806
+ }
3283
3807
  }
3284
3808
 
3285
3809
 
@@ -3826,6 +4350,14 @@ class $9058d40a81bdb1f5$export$b453f08936c58edb extends (0, $f8721861c660dd88$ex
3826
4350
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("breadcrumb").getByText("Variables")).toBeVisible();
3827
4351
  return this.variables;
3828
4352
  }
4353
+ async openCustomDashboard() {
4354
+ await this.util.openSideNavMenu("Custom dashboards");
4355
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("breadcrumb").getByText("Custom dashboards")).toBeVisible();
4356
+ }
4357
+ async openReleaseByName(releaseName) {
4358
+ await this.page.getByTitle(releaseName).click();
4359
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("breadcrumb").getByText("Flow")).toBeVisible();
4360
+ }
3829
4361
  }
3830
4362
 
3831
4363
 
@@ -6422,6 +6954,7 @@ class $dbc8f157e7b24b12$export$2edf430132ca35d0 extends (0, $f8721861c660dd88$ex
6422
6954
  }
6423
6955
 
6424
6956
 
6957
+
6425
6958
  class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
6426
6959
  constructor(page){
6427
6960
  this.page = page;
@@ -6446,6 +6979,7 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
6446
6979
  this.releaseGroupPage = new (0, $a6a3c1345fc4767e$export$b6fbc3e67030138f)(page);
6447
6980
  this.releaseGroupTimelinePage = new (0, $3fad6a9449b6416f$export$1a0994e9c202d529)(page);
6448
6981
  this.releaseListPage = new (0, $87643f2d97b0644e$export$a678525e79c4ccc4)(page);
6982
+ this.releaseGanttPage = new (0, $e8395395d01b66bb$export$5a82be0a2a261cc6)(page);
6449
6983
  this.rolesPage = new (0, $84dbf24c796d0540$export$7a5b979a220f477c)(page);
6450
6984
  this.util = new (0, $2c89ba54932fbba8$export$f8f26dd395d7e1bd)(page);
6451
6985
  this.workflowCatalogPage = new (0, $7bcc05352d6debcf$export$5628dfd1b9e94785)(page);
@@ -6466,6 +7000,10 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
6466
7000
  async openRelease(id) {
6467
7001
  return this.openReleaseOrTemplate(id, true);
6468
7002
  }
7003
+ async openPlannerView(releaseId) {
7004
+ await this.page.goto(`#/releases/${releaseId}/planner`);
7005
+ return new (0, $e8395395d01b66bb$export$5a82be0a2a261cc6)(this.page);
7006
+ }
6469
7007
  async openApplicationsPage() {
6470
7008
  return new (0, $dc91ece6da6cadfa$export$1533b625ec0c75e2)(this.page).goToApplicationsPage();
6471
7009
  }
@@ -7347,7 +7885,9 @@ const $8977f8672c5de0fa$export$45f0aca2596a2bb3 = function() {
7347
7885
  processTasks(subTask, task, idx);
7348
7886
  });
7349
7887
  (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.templateVariables, function(variable, idx) {
7350
- if (variable.value !== undefined) (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, task.id, idx));
7888
+ if (variable.value !== undefined) // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7889
+ // @ts-ignore
7890
+ (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, task.id, idx));
7351
7891
  });
7352
7892
  (0, (/*@__PURE__*/$parcel$interopDefault($952a2b8d8056b381$exports)))(task.attachments, function(attachment, idx) {
7353
7893
  attachment.type = ATTACHMENT_TYPE;
@@ -7418,7 +7958,9 @@ const $8977f8672c5de0fa$export$45f0aca2596a2bb3 = function() {
7418
7958
  attachment.id = `${release.id}/Attachment${index}`;
7419
7959
  });
7420
7960
  (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))(release.variables, function(variable, index) {
7421
- if (variable.value !== undefined) (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, release.id, index));
7961
+ if (variable.value !== undefined) // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7962
+ // @ts-ignore
7963
+ (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable, getVariableEntity(variable.value, variable.key, release.id, index));
7422
7964
  if (variable.valueProvider) (0, (/*@__PURE__*/$parcel$interopDefault($732eba8dca8b5420$exports)))(variable.valueProvider, getValueProviderConfigurationEntity(variable.id));
7423
7965
  });
7424
7966
  (0, (/*@__PURE__*/$parcel$interopDefault($ae8Uz)))((0, (/*@__PURE__*/$parcel$interopDefault($f51969c4a7467fa0$exports)))(release.variableValues), function(keyValue, index) {
@@ -7475,6 +8017,7 @@ class $6998c6a53a9eb4fa$var$Fixtures {
7475
8017
  folderIds = [];
7476
8018
  usernames = [];
7477
8019
  userProfiles = [];
8020
+ folderVariableIds = [];
7478
8021
  constructor(request, page){
7479
8022
  this.request = request;
7480
8023
  this.page = page;
@@ -7526,18 +8069,26 @@ class $6998c6a53a9eb4fa$var$Fixtures {
7526
8069
  folder.type = "xlrelease.Folder";
7527
8070
  let teams = folder.teams;
7528
8071
  delete folder.teams;
7529
- //ToDo: Add Children
7530
- /* eslint-disable @typescript-eslint/no-unused-vars */ const children = folder.children || [];
8072
+ const children = folder.children || [];
7531
8073
  delete folder.children;
8074
+ const folderVariables = (folder.variables || []).map((variable)=>{
8075
+ variable.folderId = folder.id;
8076
+ return variable;
8077
+ });
8078
+ delete folder.variables;
7532
8079
  const response = await this.doPost(`api/v1/folders/${parentId}`, folder);
7533
8080
  // Add the folder ID to the list
7534
8081
  this.folderIds.push(folder.id);
7535
8082
  // If teams are provided, send a request to add teams to the folder
7536
8083
  if (teams) {
7537
8084
  teams = this.addSystemTeams(teams);
7538
- const newresponse = await this.doPost(`api/v1/folders/${folder.id}/teams`, teams);
7539
- return newresponse;
8085
+ return await this.doPost(`api/v1/folders/${folder.id}/teams`, teams);
8086
+ }
8087
+ if (children && children.length > 0) {
8088
+ await this.folderVariable(folderVariables);
8089
+ return await this.folder(children[0]);
7540
8090
  }
8091
+ if (folderVariables && folderVariables.length > 0) return await this.folderVariable(folderVariables);
7541
8092
  return response;
7542
8093
  }
7543
8094
  createFolder(folderJson) {
@@ -7546,6 +8097,18 @@ class $6998c6a53a9eb4fa$var$Fixtures {
7546
8097
  folderJson
7547
8098
  ]);
7548
8099
  }
8100
+ async folderVariable(variable) {
8101
+ // Flatten and process the variables
8102
+ const variables = [].concat(variable).flat()// eslint-disable-next-line @typescript-eslint/no-shadow
8103
+ .map((variable)=>{
8104
+ variable.id = null;
8105
+ variable.type = variable.type || "xlrelease.StringVariable";
8106
+ variable.requiresValue = false;
8107
+ variable.showOnReleaseStart = false;
8108
+ return variable;
8109
+ });
8110
+ return await this.doPost("fixtures/folders/variables", variables);
8111
+ }
7549
8112
  trigger(trigger) {
7550
8113
  this.triggerIds.push(trigger.id);
7551
8114
  return this.doPost("fixtures/trigger", trigger);
@@ -7559,6 +8122,9 @@ class $6998c6a53a9eb4fa$var$Fixtures {
7559
8122
  globalRoles(rolePrincipals) {
7560
8123
  return this.doPost(`api/v1/roles/${rolePrincipals.name}`, rolePrincipals);
7561
8124
  }
8125
+ dashboard(dashboard) {
8126
+ return this.doPost("fixtures/dashboard", dashboard);
8127
+ }
7562
8128
  deleteGlobalRole(roleName) {
7563
8129
  return this.doDelete(`api/v1/roles/${roleName}`);
7564
8130
  }
@@ -7635,6 +8201,17 @@ class $6998c6a53a9eb4fa$var$Fixtures {
7635
8201
  deleteRiskProfile(riskProfileId) {
7636
8202
  return this.doDelete(`fixtures/riskProfiles/${riskProfileId}`);
7637
8203
  }
8204
+ // Release delivery pattern
8205
+ createDeliveryPattern(delivery, shouldResetPattern = true) {
8206
+ return this.doPost(`fixtures/deliveries/patterns/${shouldResetPattern}`, delivery);
8207
+ }
8208
+ // Release deliveries
8209
+ createDelivery(delivery) {
8210
+ return this.doPost("fixtures/deliveries", delivery);
8211
+ }
8212
+ deleteDelivery(delivery) {
8213
+ return this.doDelete(`fixtures/deliveries/${delivery}`);
8214
+ }
7638
8215
  async cleanAll() {
7639
8216
  for (const username of this.usernames)await this.deleteUser(username);
7640
8217
  for (const userProfile of this.userProfiles)await this.deleteUserProfile(userProfile);