@digital-ai/devops-page-object-release 0.0.21 → 0.0.22
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 +10 -0
- package/dist/main.js +867 -153
- package/dist/main.js.map +1 -1
- package/dist/module.js +867 -153
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +213 -28
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/module.js
CHANGED
|
@@ -26,6 +26,7 @@ class $9626bc9256ce31f7$export$2b65d1d97338f32b {
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
+
|
|
29
30
|
class $05d91a1d3381a287$export$34addcca3f0ae43f extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
30
31
|
constructor(page){
|
|
31
32
|
super(page);
|
|
@@ -56,6 +57,25 @@ class $05d91a1d3381a287$export$34addcca3f0ae43f extends (0, $9626bc9256ce31f7$ex
|
|
|
56
57
|
name: "Create"
|
|
57
58
|
}).click();
|
|
58
59
|
}
|
|
60
|
+
async expectVariablesCountToBe(count) {
|
|
61
|
+
await (0, $hOLA6$expect)(this.page.locator(".variable-editor .form-group")).toHaveCount(count);
|
|
62
|
+
}
|
|
63
|
+
async expectContainingVariable(variableName, value) {
|
|
64
|
+
(0, $hOLA6$expect)(await this.page.locator(`#form-${variableName} .text span`).textContent()).toBe(value);
|
|
65
|
+
}
|
|
66
|
+
async selectTemplate(templateName) {
|
|
67
|
+
await this.page.getByPlaceholder("No template").click();
|
|
68
|
+
await this.page.getByPlaceholder("No template").clear();
|
|
69
|
+
await this.page.getByPlaceholder("No template").fill(templateName);
|
|
70
|
+
await this.page.getByText(templateName).click();
|
|
71
|
+
}
|
|
72
|
+
async removeTemplate() {
|
|
73
|
+
await this.page.locator(".template-select .close-icon").click();
|
|
74
|
+
}
|
|
75
|
+
async setValueForVariables(variableName, value) {
|
|
76
|
+
await this.page.locator(`#form-${variableName} .display`).click();
|
|
77
|
+
await this.page.locator(`input[name="${variableName}"]`).fill(value);
|
|
78
|
+
}
|
|
59
79
|
}
|
|
60
80
|
|
|
61
81
|
|
|
@@ -154,25 +174,273 @@ async function $251ce8153733e46f$export$a0f926f04148e5d2(locators) {
|
|
|
154
174
|
}
|
|
155
175
|
|
|
156
176
|
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class $71075ce65fcede1d$export$9b575f14aa5e09a1 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
181
|
+
constructor(page){
|
|
182
|
+
super(page);
|
|
183
|
+
}
|
|
184
|
+
async openDatePicker(selector) {
|
|
185
|
+
await this.page.locator(`${selector} .date`).click();
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Setting date, month and year from calendar picker
|
|
189
|
+
*/ async setDate(date, monthYear) {
|
|
190
|
+
const prev = this.page.locator(".datepicker-days .prev");
|
|
191
|
+
const next = this.page.locator(".datepicker-days .next");
|
|
192
|
+
const monYear = this.page.locator(".datepicker-days .datepicker-switch");
|
|
193
|
+
const currentYear = await monYear.textContent();
|
|
194
|
+
const thisMonth = (0, $hOLA6$moment)(monthYear, "MMMM YYYY").isBefore(currentYear);
|
|
195
|
+
while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
|
|
196
|
+
else await next.click();
|
|
197
|
+
await this.page.getByRole("cell", {
|
|
198
|
+
name: "" + date + "",
|
|
199
|
+
exact: true
|
|
200
|
+
}).first().click();
|
|
201
|
+
}
|
|
202
|
+
async expectDurationToBe(duration) {
|
|
203
|
+
(0, $hOLA6$expect)(await this.page.locator(".duration-editor").textContent()).toBe(duration);
|
|
204
|
+
}
|
|
205
|
+
async setDuration(days, hours, mins) {
|
|
206
|
+
if (typeof days !== "undefined") await this.page.locator(".days").fill(days);
|
|
207
|
+
if (typeof hours !== "undefined") await this.page.locator(".hours").fill(hours);
|
|
208
|
+
if (typeof mins !== "undefined") await this.page.locator(".minutes").fill(mins);
|
|
209
|
+
await this.page.keyboard.press("Enter");
|
|
210
|
+
}
|
|
211
|
+
async expectTimeToBe(selector, format, date) {
|
|
212
|
+
if (typeof date === "string") date = new Date(date);
|
|
213
|
+
const formattedDate = (0, $hOLA6$moment)(date).format(format);
|
|
214
|
+
const input = this.page.locator(`${selector}`);
|
|
215
|
+
await (0, $hOLA6$expect)(input).toBeVisible();
|
|
216
|
+
const value = await input.inputValue();
|
|
217
|
+
(0, $hOLA6$expect)(value).toBe(formattedDate);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
*
|
|
221
|
+
* @returns Getting current month and year in the format "MonthName YYYY"
|
|
222
|
+
*/ async getCurrentMonthYear() {
|
|
223
|
+
const monthNames = [
|
|
224
|
+
"January",
|
|
225
|
+
"February",
|
|
226
|
+
"March",
|
|
227
|
+
"April",
|
|
228
|
+
"May",
|
|
229
|
+
"June",
|
|
230
|
+
"July",
|
|
231
|
+
"August",
|
|
232
|
+
"September",
|
|
233
|
+
"October",
|
|
234
|
+
"November",
|
|
235
|
+
"December"
|
|
236
|
+
];
|
|
237
|
+
const d = new Date();
|
|
238
|
+
const month = monthNames[d.getMonth()];
|
|
239
|
+
const year = d.getFullYear();
|
|
240
|
+
return `${month} ${year}`;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
*
|
|
244
|
+
* @returns Getting current date in the format "dd MonthName YYYY"
|
|
245
|
+
*/ async getCurrentDate() {
|
|
246
|
+
const d = new Date();
|
|
247
|
+
const date = d.getDate();
|
|
248
|
+
const monthYear = await this.getCurrentMonthYear();
|
|
249
|
+
return `${date} ${monthYear}`;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
*
|
|
253
|
+
* @param days Number of days to add to current date within the current month
|
|
254
|
+
* @returns
|
|
255
|
+
*/ async getFutureDate(days) {
|
|
256
|
+
const d = new Date();
|
|
257
|
+
d.setDate(d.getDate() + days);
|
|
258
|
+
const date = d.getDate();
|
|
259
|
+
const monthYear = await this.getCurrentMonthYear();
|
|
260
|
+
return `${date} ${monthYear}`;
|
|
261
|
+
}
|
|
262
|
+
async removeDate(selector) {
|
|
263
|
+
return await selector.locator(`.remove`).click();
|
|
264
|
+
}
|
|
265
|
+
async expectDateNotDeletable(selector) {
|
|
266
|
+
await (0, $hOLA6$expect)(selector.locator(`.remove`)).not.toBeVisible();
|
|
267
|
+
}
|
|
268
|
+
async expectDateToBe(selector, date) {
|
|
269
|
+
return await this.expectInputContainingDate(selector, date);
|
|
270
|
+
}
|
|
271
|
+
async expectDateToBeInferred(selector) {
|
|
272
|
+
await (0, $hOLA6$expect)(selector.locator(`input.light-text`).first()).toBeVisible();
|
|
273
|
+
}
|
|
274
|
+
async expectNoDate(selector) {
|
|
275
|
+
(0, $hOLA6$expect)(selector.locator(`.date-placeholder`)).toBeVisible();
|
|
276
|
+
}
|
|
277
|
+
async expectInputContainingDate(inputLocator, date) {
|
|
278
|
+
await (0, $hOLA6$expect)(inputLocator).toBeVisible();
|
|
279
|
+
const attribute = await inputLocator.getAttribute("value");
|
|
280
|
+
(0, $hOLA6$expect)(attribute).toContain(date);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
|
|
157
285
|
class $f48771b486a3eb8f$export$a87f0ae8695e74be extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
286
|
+
constructor(page){
|
|
287
|
+
super(page);
|
|
288
|
+
this.addListValue = this.page.locator(".variable-selector .xl-components-input-full input");
|
|
289
|
+
this.addVariableValue = this.page.locator(".variable-value .xl-components-input-full input");
|
|
290
|
+
this.dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(page);
|
|
291
|
+
this.listAddButton = this.page.getByRole("button", {
|
|
292
|
+
name: "Add"
|
|
293
|
+
});
|
|
294
|
+
}
|
|
158
295
|
async openVariable(variableKey) {
|
|
159
296
|
await this.page.locator(`.variables-list .variable`).getByText(variableKey).click();
|
|
160
297
|
return new $f48771b486a3eb8f$var$ReleaseVariableModal(this.page);
|
|
161
298
|
}
|
|
299
|
+
async addNewVariable(variableName, labelname, description) {
|
|
300
|
+
await this.page.locator("#action-toolbar").getByTestId("dot-button").click();
|
|
301
|
+
await this.page.fill(`[name="fieldKey"]`, variableName);
|
|
302
|
+
await this.page.locator(".variable-label input").fill(labelname);
|
|
303
|
+
if (description) await this.page.locator(".variable-description input").fill(description);
|
|
304
|
+
}
|
|
305
|
+
async selectVariableTextType(valuename) {
|
|
306
|
+
await this.page.getByRole("combobox").selectOption("StringVariable");
|
|
307
|
+
await this.page.locator(".variable-value").type(valuename);
|
|
308
|
+
}
|
|
309
|
+
async selectVariableListboxType(possiblevalue, defaultValue, required) {
|
|
310
|
+
await this.page.getByRole("combobox").selectOption("DropDownListBox");
|
|
311
|
+
if (possiblevalue instanceof Array) for (const value of possiblevalue){
|
|
312
|
+
await this.addListValue.fill(value);
|
|
313
|
+
await this.listAddButton.click();
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
await this.addListValue.fill(possiblevalue);
|
|
317
|
+
await this.listAddButton.click();
|
|
318
|
+
}
|
|
319
|
+
await this.page.locator(".variable-value select").type(defaultValue);
|
|
320
|
+
if (required) await this.page.getByRole("checkbox").check();
|
|
321
|
+
else await this.page.getByRole("checkbox").uncheck();
|
|
322
|
+
}
|
|
323
|
+
async selectVariablePasswordType(possiblevalue) {
|
|
324
|
+
await this.page.getByRole("combobox").selectOption("PasswordStringVariable");
|
|
325
|
+
await this.page.locator('input[type="password"]').type(possiblevalue);
|
|
326
|
+
}
|
|
327
|
+
async selectVariableCheckboxType() {
|
|
328
|
+
await this.page.getByRole("combobox").selectOption("BooleanVariable");
|
|
329
|
+
await this.page.getByRole("checkbox").check();
|
|
330
|
+
}
|
|
331
|
+
async selectVariableNumberType(possiblevalue) {
|
|
332
|
+
await this.page.getByRole("combobox").selectOption("IntegerVariable");
|
|
333
|
+
await this.page.locator('input[ng-model="var.value"]').fill(possiblevalue);
|
|
334
|
+
}
|
|
335
|
+
async selectVariableMultiListType(possiblevalue1, possiblevalue2) {
|
|
336
|
+
await this.page.getByRole("combobox").selectOption("MultiSelectListBox");
|
|
337
|
+
await this.addListValue.fill(possiblevalue1);
|
|
338
|
+
await this.listAddButton.click();
|
|
339
|
+
await this.addListValue.fill(possiblevalue2);
|
|
340
|
+
await this.listAddButton.click();
|
|
341
|
+
await this.page.locator(".react-tagsinput").click();
|
|
342
|
+
await this.page.getByText("Select all", {
|
|
343
|
+
exact: true
|
|
344
|
+
}).click();
|
|
345
|
+
}
|
|
346
|
+
async addVariableDate() {
|
|
347
|
+
await this.page.getByRole("combobox").selectOption("DateVariable");
|
|
348
|
+
await this.page.getByText("Select date").click();
|
|
349
|
+
}
|
|
350
|
+
async setDate(date, monthYear) {
|
|
351
|
+
await this.dateUtil.setDate(date, monthYear);
|
|
352
|
+
}
|
|
353
|
+
async addVariableKeyValueMap(keys1, values1) {
|
|
354
|
+
await this.page.getByRole("combobox").selectOption("MapStringStringVariable");
|
|
355
|
+
await this.page.getByPlaceholder("key").fill(keys1);
|
|
356
|
+
await this.page.getByPlaceholder("Value").fill(values1);
|
|
357
|
+
await this.listAddButton.click();
|
|
358
|
+
await this.page.locator(".xl-map-string-string-div-buttons .search-icon").click();
|
|
359
|
+
await this.page.getByRole("row", {
|
|
360
|
+
name: "Search"
|
|
361
|
+
}).getByRole("textbox").fill(keys1);
|
|
362
|
+
const detail = await this.page.locator("table.table-condensed span").allInnerTexts();
|
|
363
|
+
(0, $hOLA6$expect)(detail[0]).toEqual(keys1);
|
|
364
|
+
(0, $hOLA6$expect)(detail[1]).toEqual(values1);
|
|
365
|
+
}
|
|
366
|
+
async addVariableSet(possiblevalue1) {
|
|
367
|
+
await this.page.getByRole("combobox").selectOption("SetStringVariable");
|
|
368
|
+
await this.page.locator(".dip-input input").fill(possiblevalue1);
|
|
369
|
+
await this.listAddButton.click();
|
|
370
|
+
}
|
|
371
|
+
async submitTheVariable() {
|
|
372
|
+
const createButton = this.page.locator(".modal-footer .save");
|
|
373
|
+
await (0, $hOLA6$expect)(createButton).toBeEnabled();
|
|
374
|
+
await createButton.scrollIntoViewIfNeeded();
|
|
375
|
+
await createButton.click();
|
|
376
|
+
// Expect is needed here to avoid flackiness on clicking create button
|
|
377
|
+
await (0, $hOLA6$expect)(createButton).not.toBeVisible();
|
|
378
|
+
}
|
|
379
|
+
async expectVariableWithNameValueAndType(name, value, type) {
|
|
380
|
+
const rowLocator = await this.page.locator(".variable .data-row").allTextContents();
|
|
381
|
+
(0, $hOLA6$expect)(rowLocator.toString()).toContain(name);
|
|
382
|
+
(0, $hOLA6$expect)(rowLocator.toString()).toContain(value);
|
|
383
|
+
(0, $hOLA6$expect)(rowLocator.toString()).toContain(type);
|
|
384
|
+
}
|
|
385
|
+
async clickEditVariable(variableName) {
|
|
386
|
+
await this.page.locator("[id='variables-filter']").fill(variableName);
|
|
387
|
+
await this.page.getByText("Edit").first().click();
|
|
388
|
+
return new $f48771b486a3eb8f$var$ReleaseVariableModal(this.page);
|
|
389
|
+
}
|
|
390
|
+
async clickDeleteVariable(variableName) {
|
|
391
|
+
await this.page.locator("[id='variables-filter']").fill(variableName);
|
|
392
|
+
await this.page.locator(".action .delete-icon").first().click();
|
|
393
|
+
return new $f48771b486a3eb8f$var$DeleteVariableModel(this.page);
|
|
394
|
+
}
|
|
395
|
+
async expectVariablesCountToBe(count) {
|
|
396
|
+
await (0, $hOLA6$expect)(this.page.locator(".variable .data-row")).toHaveCount(count);
|
|
397
|
+
}
|
|
398
|
+
async expectVariableNotPresent(variableName) {
|
|
399
|
+
await (0, $hOLA6$expect)(this.page.locator(".variable").filter({
|
|
400
|
+
hasText: variableName
|
|
401
|
+
})).not.toBeVisible();
|
|
402
|
+
}
|
|
403
|
+
async clearSearch() {
|
|
404
|
+
await this.page.locator("[id='variables-filter']").clear();
|
|
405
|
+
}
|
|
406
|
+
async switchPossibleValuesToVariable(variableName) {
|
|
407
|
+
await this.page.locator(".variable-toggle button").click();
|
|
408
|
+
await this.page.locator(".ui-autocomplete-input").fill(variableName);
|
|
409
|
+
await this.page.locator(".ui-menu-item-wrapper").filter({
|
|
410
|
+
hasText: `${variableName}`
|
|
411
|
+
}).click();
|
|
412
|
+
}
|
|
413
|
+
async selectVariableListboxTypeWithVariable(variableName, defaultValue, required) {
|
|
414
|
+
await this.page.getByRole("combobox").selectOption("DropDownListBox");
|
|
415
|
+
await this.page.locator(".variable-toggle button").click();
|
|
416
|
+
await this.page.locator(".ui-autocomplete-input").fill(variableName);
|
|
417
|
+
await this.page.locator(".ui-menu-item-wrapper").filter({
|
|
418
|
+
hasText: `${variableName}`
|
|
419
|
+
}).click();
|
|
420
|
+
await this.page.locator(".variable-value select").type(defaultValue);
|
|
421
|
+
if (required) await this.page.getByRole("checkbox").check();
|
|
422
|
+
else await this.page.getByRole("checkbox").uncheck();
|
|
423
|
+
}
|
|
162
424
|
}
|
|
163
425
|
class $f48771b486a3eb8f$var$ReleaseVariableModal extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
426
|
+
constructor(page){
|
|
427
|
+
super(page);
|
|
428
|
+
this.dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(page);
|
|
429
|
+
}
|
|
164
430
|
async expectValue(locators, expectFn) {
|
|
165
431
|
const [index, locator] = await (0, $251ce8153733e46f$export$a0f926f04148e5d2)(locators);
|
|
166
|
-
|
|
432
|
+
expectFn[index](locator);
|
|
167
433
|
}
|
|
168
434
|
async expectValueToBe(value) {
|
|
169
435
|
await this.expectValue([
|
|
170
436
|
this.page.locator("#modal .variable-value input"),
|
|
171
437
|
this.page.locator("#modal .variable-value .field-readonly"),
|
|
172
|
-
this.page.locator("#modal .variable-value .xl-map-string-string")
|
|
438
|
+
this.page.locator("#modal .variable-value .xl-map-string-string"),
|
|
439
|
+
this.page.locator("#modal .variable-value .xl-list-display-mode .text-container")
|
|
173
440
|
], [
|
|
174
441
|
(l)=>(0, $hOLA6$expect)(l).toHaveValue(value),
|
|
175
442
|
(l)=>(0, $hOLA6$expect)(l).toHaveText(value),
|
|
443
|
+
(l)=>(0, $hOLA6$expect)(l).toHaveText(value),
|
|
176
444
|
(l)=>(0, $hOLA6$expect)(l).toHaveText(value)
|
|
177
445
|
]);
|
|
178
446
|
}
|
|
@@ -180,16 +448,155 @@ class $f48771b486a3eb8f$var$ReleaseVariableModal extends (0, $9626bc9256ce31f7$e
|
|
|
180
448
|
await this.expectValue([
|
|
181
449
|
this.page.locator("#modal .variable-value input"),
|
|
182
450
|
this.page.locator("#modal .variable-value .field-readonly"),
|
|
183
|
-
this.page.locator("#modal .variable-value .xl-map-string-string")
|
|
451
|
+
this.page.locator("#modal .variable-value .xl-map-string-string"),
|
|
452
|
+
this.page.locator("#modal .variable-value .xl-list-display-mode")
|
|
184
453
|
], [
|
|
185
454
|
(l)=>(0, $hOLA6$expect)(l.inputValue()).toContain(value),
|
|
186
455
|
(l)=>(0, $hOLA6$expect)(l).toContainText(value),
|
|
456
|
+
(l)=>(0, $hOLA6$expect)(l).toContainText(value),
|
|
187
457
|
(l)=>(0, $hOLA6$expect)(l).toContainText(value)
|
|
188
458
|
]);
|
|
189
459
|
}
|
|
190
460
|
async close() {
|
|
191
461
|
await this.page.locator("#modal .modal-header button.close").click();
|
|
192
462
|
}
|
|
463
|
+
async expectPossibleValues(possiblevalue) {
|
|
464
|
+
const listLocator = await this.page.locator(".editor .xl-list-row").allInnerTexts();
|
|
465
|
+
if (possiblevalue instanceof Array) for (const value of possiblevalue)(0, $hOLA6$expect)(listLocator).toContain(value);
|
|
466
|
+
else (0, $hOLA6$expect)(listLocator).toContain(possiblevalue);
|
|
467
|
+
}
|
|
468
|
+
async expectPossibleVariableValues(possiblevariablevalue) {
|
|
469
|
+
await (0, $hOLA6$expect)(this.page.locator(".variable-dropdown input")).toHaveValue(possiblevariablevalue);
|
|
470
|
+
}
|
|
471
|
+
async addPossibleValue(value) {
|
|
472
|
+
if (value instanceof Array) for (const li of value){
|
|
473
|
+
await this.page.locator(".xl-components-input-full input").fill(li);
|
|
474
|
+
await this.page.getByRole("button", {
|
|
475
|
+
name: "Add"
|
|
476
|
+
}).click();
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
await this.page.locator(".xl-components-input-full input").fill(value);
|
|
480
|
+
await this.page.getByRole("button", {
|
|
481
|
+
name: "Add"
|
|
482
|
+
}).click();
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
async selectVariableValue(defaultValue) {
|
|
486
|
+
await this.page.locator(".variable-value select").selectOption(defaultValue);
|
|
487
|
+
}
|
|
488
|
+
async save() {
|
|
489
|
+
const saveButton = this.page.locator("#modal .modal-footer .save");
|
|
490
|
+
await saveButton.scrollIntoViewIfNeeded();
|
|
491
|
+
await saveButton.click({
|
|
492
|
+
delay: 2000
|
|
493
|
+
});
|
|
494
|
+
// Expect is needed here to avoid flackiness on clicking save button on modal window
|
|
495
|
+
await (0, $hOLA6$expect)(saveButton).not.toBeVisible();
|
|
496
|
+
}
|
|
497
|
+
async createPossibleValuesVariable(variableName) {
|
|
498
|
+
await this.page.locator(".variable-toggle button").click();
|
|
499
|
+
await this.page.locator(".ui-autocomplete-input").fill(variableName);
|
|
500
|
+
await this.page.locator(".ui-menu-item-wrapper").filter({
|
|
501
|
+
hasText: `${variableName}`
|
|
502
|
+
}).click();
|
|
503
|
+
}
|
|
504
|
+
async expectVariableValueToBe(value) {
|
|
505
|
+
(0, $hOLA6$expect)(await this.page.locator('.variable-value select option[selected="selected"]').textContent()).toBe(value);
|
|
506
|
+
}
|
|
507
|
+
async expectNoVariablesInList() {
|
|
508
|
+
await (0, $hOLA6$expect)(this.page.getByText("No variables defined.")).toBeVisible();
|
|
509
|
+
}
|
|
510
|
+
async expectNameInput(value) {
|
|
511
|
+
await (0, $hOLA6$expect)(this.page.locator(`#modal .variable-name input`)).toHaveValue(value);
|
|
512
|
+
}
|
|
513
|
+
async expectLabel(value) {
|
|
514
|
+
await (0, $hOLA6$expect)(this.page.locator("#modal .variable-label input")).toHaveValue(value);
|
|
515
|
+
}
|
|
516
|
+
async expectRequired(value) {
|
|
517
|
+
if (value == true) await (0, $hOLA6$expect)(this.page.locator('.form-group input[ng-model="var.requiresValue"]')).toBeChecked();
|
|
518
|
+
else await (0, $hOLA6$expect)(this.page.locator('.form-group input[ng-model="var.requiresValue"]')).not.toBeChecked();
|
|
519
|
+
}
|
|
520
|
+
async setDescription(description) {
|
|
521
|
+
await this.page.locator(".variable-description input").click();
|
|
522
|
+
await this.page.locator(".variable-description input").clear();
|
|
523
|
+
await this.page.locator(".variable-description input").fill(description);
|
|
524
|
+
}
|
|
525
|
+
async setLabel(labelValue) {
|
|
526
|
+
await this.page.locator(".variable-label input").fill(labelValue);
|
|
527
|
+
}
|
|
528
|
+
async setDate(date, monthYear) {
|
|
529
|
+
await this.page.locator("#modal .date").click();
|
|
530
|
+
await this.dateUtil.setDate(date, monthYear);
|
|
531
|
+
}
|
|
532
|
+
async setValue(value) {
|
|
533
|
+
await this.page.locator(".variable-value input").fill(value);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
class $f48771b486a3eb8f$var$DeleteVariableModel extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
537
|
+
constructor(page){
|
|
538
|
+
super(page);
|
|
539
|
+
this.model = new $f48771b486a3eb8f$var$ReleaseVariableModal(page);
|
|
540
|
+
this.dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(page);
|
|
541
|
+
}
|
|
542
|
+
async deleteVariable() {
|
|
543
|
+
await (0, $hOLA6$expect)(this.page.getByRole("heading", {
|
|
544
|
+
name: "Replace and delete"
|
|
545
|
+
})).toBeVisible();
|
|
546
|
+
await this.page.getByRole("button", {
|
|
547
|
+
name: "Delete"
|
|
548
|
+
}).click();
|
|
549
|
+
}
|
|
550
|
+
async replaceItWithVariable(variable) {
|
|
551
|
+
await this.model.createPossibleValuesVariable(variable);
|
|
552
|
+
}
|
|
553
|
+
async replaceItwithValue(value) {
|
|
554
|
+
await this.page.locator(".display").click();
|
|
555
|
+
await this.page.getByLabel("*").fill(value);
|
|
556
|
+
}
|
|
557
|
+
async clickReplaceAndDelete() {
|
|
558
|
+
await this.page.getByRole("button", {
|
|
559
|
+
name: "Replace and delete"
|
|
560
|
+
}).click();
|
|
561
|
+
}
|
|
562
|
+
async addValue(value) {
|
|
563
|
+
await this.page.locator(".xl-components-input-full input").fill(value);
|
|
564
|
+
await this.page.getByRole("button", {
|
|
565
|
+
name: "Add"
|
|
566
|
+
}).click();
|
|
567
|
+
}
|
|
568
|
+
async remove(value) {
|
|
569
|
+
await this.page.locator("li").filter({
|
|
570
|
+
hasText: value
|
|
571
|
+
}).locator("i.close-icon").click();
|
|
572
|
+
}
|
|
573
|
+
async expectReplacementPromptDisplayed() {
|
|
574
|
+
await (0, $hOLA6$expect)(this.page.getByRole("heading", {
|
|
575
|
+
name: "Replace and delete"
|
|
576
|
+
})).toBeVisible();
|
|
577
|
+
}
|
|
578
|
+
async close() {
|
|
579
|
+
await this.page.locator("#modal .modal-header button.close").click();
|
|
580
|
+
}
|
|
581
|
+
async removeItemOnSet(value) {
|
|
582
|
+
await this.page.locator("tr").filter({
|
|
583
|
+
hasText: value
|
|
584
|
+
}).locator("i.close-icon").click();
|
|
585
|
+
}
|
|
586
|
+
async addValueForSet(key, value) {
|
|
587
|
+
await this.page.locator(".input-key").fill(key);
|
|
588
|
+
await this.page.locator(".input-value").fill(value);
|
|
589
|
+
}
|
|
590
|
+
async replaceWithIntegerValue(value) {
|
|
591
|
+
await this.page.locator(".editable").fill(value);
|
|
592
|
+
}
|
|
593
|
+
async replaceForBooleanValue() {
|
|
594
|
+
await this.page.locator(".editor input").click();
|
|
595
|
+
}
|
|
596
|
+
async deleteBySettingDate(date, monthYear) {
|
|
597
|
+
await this.page.locator("#modal .date").click();
|
|
598
|
+
await this.dateUtil.setDate(date, monthYear);
|
|
599
|
+
}
|
|
193
600
|
}
|
|
194
601
|
|
|
195
602
|
|
|
@@ -425,6 +832,22 @@ class $90bb70a7e909e500$export$519356f6c50361f7 extends (0, $9626bc9256ce31f7$ex
|
|
|
425
832
|
}).click();
|
|
426
833
|
}
|
|
427
834
|
}
|
|
835
|
+
async validateAutoCompleteOptions(descriptionName, expectedDescription, variableSelection) {
|
|
836
|
+
await this.page.getByLabel("Double-click to edit").waitFor({
|
|
837
|
+
timeout: 10000
|
|
838
|
+
});
|
|
839
|
+
await this.page.getByLabel("Double-click to edit").hover();
|
|
840
|
+
await this.page.locator(".markdown-viewer-actions").getByTestId("edit-button").click();
|
|
841
|
+
await this.page.locator("#task-description-input").fill(descriptionName);
|
|
842
|
+
await (0, $hOLA6$expect)(this.page.locator(".dot-popper-content-wrapper .option-name")).toHaveCount(6);
|
|
843
|
+
await this.page.locator(".dot-popper-content-wrapper .option-name").filter({
|
|
844
|
+
hasText: variableSelection
|
|
845
|
+
}).click();
|
|
846
|
+
await this.page.getByRole("button", {
|
|
847
|
+
name: "Save"
|
|
848
|
+
}).click();
|
|
849
|
+
await (0, $hOLA6$expect)(this.page.locator(".phase-link-container").locator(".variable").first()).toHaveText(expectedDescription);
|
|
850
|
+
}
|
|
428
851
|
}
|
|
429
852
|
class $90bb70a7e909e500$export$fbbf45eff21470e3 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
430
853
|
constructor(page){
|
|
@@ -526,6 +949,9 @@ class $69e86f559cdf2bd0$export$15d3f9b095bb5188 extends (0, $9626bc9256ce31f7$ex
|
|
|
526
949
|
async expectCommentToContain(text) {
|
|
527
950
|
await (0, $hOLA6$expect)(this.page.locator(".task-comment .markdown-wrapper p")).toContainText(text);
|
|
528
951
|
}
|
|
952
|
+
async expectTaskIsCommentable(isCommentable) {
|
|
953
|
+
(0, $hOLA6$expect)(await this.page.locator("#task-comment").count()).toBe(isCommentable ? 1 : 0);
|
|
954
|
+
}
|
|
529
955
|
}
|
|
530
956
|
|
|
531
957
|
|
|
@@ -589,7 +1015,7 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
|
|
|
589
1015
|
});
|
|
590
1016
|
this.cancelButton = this.page.getByTestId("task-action-cancel");
|
|
591
1017
|
this.commentBox = this.page.getByTestId("task-action-comment");
|
|
592
|
-
this.confirm = this.page.getByTestId("dot-button");
|
|
1018
|
+
this.confirm = this.page.locator(".popper-action-buttons").getByTestId("dot-button");
|
|
593
1019
|
this.activity = new (0, $69e86f559cdf2bd0$export$15d3f9b095bb5188)(page);
|
|
594
1020
|
this.attachment = new (0, $9c357602b6f466e7$export$aa59788fdecae2f2)(page);
|
|
595
1021
|
this.config = new (0, $e44e9af564fb00f7$export$64c93bc7fb9ca44e)(page);
|
|
@@ -707,52 +1133,153 @@ class $8e39246218b802fc$export$e946776eae644790 extends (0, $9626bc9256ce31f7$ex
|
|
|
707
1133
|
async expectWaitForScheduledDateToBeUnchecked() {
|
|
708
1134
|
await (0, $hOLA6$expect)(this.page.locator(".wait-for-start input")).not.toBeChecked();
|
|
709
1135
|
}
|
|
710
|
-
// Other locators are flaky and it can be replaced if we get locator change in the frontend
|
|
711
|
-
async clickOnStartDate() {
|
|
712
|
-
await this.page.getByTestId("month-and-year").first().click();
|
|
1136
|
+
// Other locators are flaky and it can be replaced if we get locator change in the frontend
|
|
1137
|
+
async clickOnStartDate() {
|
|
1138
|
+
await this.page.getByTestId("month-and-year").first().click();
|
|
1139
|
+
}
|
|
1140
|
+
async removeStartDate() {
|
|
1141
|
+
await this.page.getByRole("button", {
|
|
1142
|
+
name: "Set by user"
|
|
1143
|
+
}).locator(".MuiChip-deleteIcon").click();
|
|
1144
|
+
}
|
|
1145
|
+
async setStartDate(date) {
|
|
1146
|
+
await this.clickOnStartDate();
|
|
1147
|
+
await this.page.locator(".MuiPickersDay-root", {
|
|
1148
|
+
hasText: date
|
|
1149
|
+
}).click();
|
|
1150
|
+
}
|
|
1151
|
+
async assignToMe(userName, existingUsername) {
|
|
1152
|
+
await this.page.getByRole("button", {
|
|
1153
|
+
name: existingUsername
|
|
1154
|
+
}).click();
|
|
1155
|
+
await this.page.getByTestId(`render-option-${userName}`).click();
|
|
1156
|
+
}
|
|
1157
|
+
async setFlag(flagName, flagComment) {
|
|
1158
|
+
await this.page.getByTestId("flag-btn").click();
|
|
1159
|
+
await this.page.getByLabel(flagName).click();
|
|
1160
|
+
await this.page.getByPlaceholder("Set message").click();
|
|
1161
|
+
await this.page.getByPlaceholder("Set message").fill(flagComment);
|
|
1162
|
+
await this.page.getByPlaceholder("Set message").press("Enter");
|
|
1163
|
+
await (0, $hOLA6$expect)(this.page.getByRole("button", {
|
|
1164
|
+
name: `flag icon ${flagComment}`
|
|
1165
|
+
})).toBeVisible();
|
|
1166
|
+
}
|
|
1167
|
+
async expectFlaggedWith(flagName, flagComment) {
|
|
1168
|
+
await this.page.getByRole("button", {
|
|
1169
|
+
name: "flag icon"
|
|
1170
|
+
}).click();
|
|
1171
|
+
const regexPattern = new RegExp(`${flagComment}.*${flagName}`, "i");
|
|
1172
|
+
await (0, $hOLA6$expect)(this.page.getByText(regexPattern)).toBeVisible();
|
|
1173
|
+
}
|
|
1174
|
+
async expectStartDateToBeDisplayed() {
|
|
1175
|
+
await (0, $hOLA6$expect)(this.page.getByTestId("start-date-title")).toHaveCount(1);
|
|
1176
|
+
}
|
|
1177
|
+
async expectEndDateToBeDisplayed() {
|
|
1178
|
+
await (0, $hOLA6$expect)(this.page.getByTestId("end-date-title")).toHaveCount(1);
|
|
1179
|
+
}
|
|
1180
|
+
async expectStartDateAndEndDateToBeDisplayed() {
|
|
1181
|
+
await (0, $hOLA6$expect)(this.page.getByTestId("month-and-year")).toHaveCount(2);
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
|
|
1186
|
+
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
|
|
1190
|
+
class $a546aadb4e6fa16a$export$5a82be0a2a261cc6 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1191
|
+
constructor(page){
|
|
1192
|
+
super(page);
|
|
1193
|
+
this.releaseHeader = this.page.locator(".release-header");
|
|
1194
|
+
}
|
|
1195
|
+
async enableShowDates() {
|
|
1196
|
+
await this.page.locator("#toggleIsDatesColumnsShown").check();
|
|
1197
|
+
}
|
|
1198
|
+
async disableShowDates() {
|
|
1199
|
+
await this.page.locator("#toggleIsDatesColumnsShown").uncheck();
|
|
1200
|
+
}
|
|
1201
|
+
async expectPlanningDataColumnsHidden() {
|
|
1202
|
+
(0, $hOLA6$expect)(await this.page.locator(`#gantt .gantt_grid_data .gantt_row`).first().locator(`.gantt_cell`).count()).toEqual(1);
|
|
1203
|
+
}
|
|
1204
|
+
async expectPlanningDateColumnsShown() {
|
|
1205
|
+
(0, $hOLA6$expect)(await this.page.locator(`#gantt .gantt_grid_data .gantt_row`).first().locator(`.gantt_cell`).count()).toEqual(4);
|
|
1206
|
+
}
|
|
1207
|
+
getRow(phaseName) {
|
|
1208
|
+
return new $a546aadb4e6fa16a$var$GanttRow(this.page, phaseName);
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
class $a546aadb4e6fa16a$var$GanttRow extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1212
|
+
constructor(page, phaseName){
|
|
1213
|
+
super(page);
|
|
1214
|
+
this.phaseName = page.locator(".gantt_row").filter({
|
|
1215
|
+
hasText: phaseName
|
|
1216
|
+
});
|
|
1217
|
+
this.dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(page);
|
|
1218
|
+
}
|
|
1219
|
+
async getFirstDate() {
|
|
1220
|
+
return this.phaseName.locator(".date-editor .date input").first();
|
|
1221
|
+
}
|
|
1222
|
+
async getLastDate() {
|
|
1223
|
+
return this.phaseName.locator(".date-editor .date input").last();
|
|
1224
|
+
}
|
|
1225
|
+
async getFirstDateEditor() {
|
|
1226
|
+
return this.phaseName.locator(".date-editor").first();
|
|
1227
|
+
}
|
|
1228
|
+
async getLastDateEditor() {
|
|
1229
|
+
return this.phaseName.locator(".date-editor").last();
|
|
1230
|
+
}
|
|
1231
|
+
async setStartDate(date, monthYear) {
|
|
1232
|
+
await (await this.getFirstDate()).click();
|
|
1233
|
+
await this.dateUtil.setDate(date, monthYear);
|
|
1234
|
+
}
|
|
1235
|
+
async setEndDate(date, monthYear) {
|
|
1236
|
+
await (await this.getLastDate()).click();
|
|
1237
|
+
await this.dateUtil.setDate(date, monthYear);
|
|
1238
|
+
}
|
|
1239
|
+
async expectStartDateToBe(date) {
|
|
1240
|
+
const dateTimePicker = await this.getFirstDate();
|
|
1241
|
+
this.dateUtil.expectDateToBe(dateTimePicker, date);
|
|
1242
|
+
}
|
|
1243
|
+
async expectEndDateToBe(date) {
|
|
1244
|
+
const dateTimePicker = await this.getLastDate();
|
|
1245
|
+
this.dateUtil.expectDateToBe(dateTimePicker, date);
|
|
713
1246
|
}
|
|
714
1247
|
async removeStartDate() {
|
|
715
|
-
await this.
|
|
716
|
-
|
|
717
|
-
}).locator(".MuiChip-deleteIcon").click();
|
|
1248
|
+
const dateTimePicker = await this.getFirstDateEditor();
|
|
1249
|
+
await this.dateUtil.removeDate(dateTimePicker);
|
|
718
1250
|
}
|
|
719
|
-
async
|
|
720
|
-
await this.
|
|
721
|
-
await this.
|
|
722
|
-
hasText: date
|
|
723
|
-
}).click();
|
|
1251
|
+
async removeEndDate() {
|
|
1252
|
+
const dateTimePicker = await this.getLastDateEditor();
|
|
1253
|
+
await this.dateUtil.removeDate(dateTimePicker);
|
|
724
1254
|
}
|
|
725
|
-
async
|
|
726
|
-
await this.
|
|
727
|
-
|
|
728
|
-
}).click();
|
|
729
|
-
await this.page.getByTestId(`render-option-${userName}`).click();
|
|
1255
|
+
async expectStartDateToBeInferred() {
|
|
1256
|
+
const dateTimePicker = await this.getFirstDateEditor();
|
|
1257
|
+
await this.dateUtil.expectDateToBeInferred(dateTimePicker);
|
|
730
1258
|
}
|
|
731
|
-
async
|
|
732
|
-
await this.
|
|
733
|
-
await this.
|
|
734
|
-
await this.page.getByPlaceholder("Set message").click();
|
|
735
|
-
await this.page.getByPlaceholder("Set message").fill(flagComment);
|
|
736
|
-
await this.page.getByPlaceholder("Set message").press("Enter");
|
|
737
|
-
await (0, $hOLA6$expect)(this.page.getByRole("button", {
|
|
738
|
-
name: `flag icon ${flagComment}`
|
|
739
|
-
})).toBeVisible();
|
|
1259
|
+
async expectEndDateToBeInferred() {
|
|
1260
|
+
const dateTimePicker = await this.getLastDateEditor();
|
|
1261
|
+
await this.dateUtil.expectDateToBeInferred(dateTimePicker);
|
|
740
1262
|
}
|
|
741
|
-
async
|
|
742
|
-
await this.
|
|
743
|
-
|
|
744
|
-
}).click();
|
|
745
|
-
const regexPattern = new RegExp(`${flagComment}.*${flagName}`, "i");
|
|
746
|
-
await (0, $hOLA6$expect)(this.page.getByText(regexPattern)).toBeVisible();
|
|
1263
|
+
async expectStartDateNotDeletable() {
|
|
1264
|
+
const dateTimePicker = await this.getFirstDate();
|
|
1265
|
+
await this.dateUtil.expectDateNotDeletable(dateTimePicker);
|
|
747
1266
|
}
|
|
748
|
-
async
|
|
749
|
-
await
|
|
1267
|
+
async expectEndDateNotDeletable() {
|
|
1268
|
+
const dateTimePicker = await this.getLastDate();
|
|
1269
|
+
await this.dateUtil.expectDateNotDeletable(dateTimePicker);
|
|
750
1270
|
}
|
|
751
|
-
async
|
|
752
|
-
|
|
1271
|
+
async expectDurationToBe(duration) {
|
|
1272
|
+
(0, $hOLA6$expect)(await this.phaseName.locator(".duration-editor").textContent()).toBe(duration);
|
|
753
1273
|
}
|
|
754
|
-
async
|
|
755
|
-
await
|
|
1274
|
+
async clickDuration() {
|
|
1275
|
+
await this.phaseName.locator(".duration-editor").first().click();
|
|
1276
|
+
}
|
|
1277
|
+
async removeDuration() {
|
|
1278
|
+
await this.phaseName.click();
|
|
1279
|
+
return await this.phaseName.locator(`.remove-duration`).click();
|
|
1280
|
+
}
|
|
1281
|
+
async expectNoDuration() {
|
|
1282
|
+
(0, $hOLA6$expect)(await this.phaseName.locator(".duration-editor").textContent()).toContain("");
|
|
756
1283
|
}
|
|
757
1284
|
}
|
|
758
1285
|
|
|
@@ -858,7 +1385,8 @@ class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$ex
|
|
|
858
1385
|
while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
|
|
859
1386
|
else await next.click();
|
|
860
1387
|
await this.page.getByRole("cell", {
|
|
861
|
-
name: "" + date + ""
|
|
1388
|
+
name: "" + date + "",
|
|
1389
|
+
exact: true
|
|
862
1390
|
}).first().click();
|
|
863
1391
|
}
|
|
864
1392
|
async setScheduledStartTime(hrs, mins, meridian) {
|
|
@@ -937,92 +1465,26 @@ class $c9bb587dd92143c3$export$d1077068a9cc9f17 extends (0, $9626bc9256ce31f7$ex
|
|
|
937
1465
|
await this.page.locator("#release-form-abort-on-failure").check();
|
|
938
1466
|
await (0, $hOLA6$expect)(this.page.locator("#release-form-abort-on-failure")).toBeChecked();
|
|
939
1467
|
}
|
|
1468
|
+
async expectDescriptionToBe(description) {
|
|
1469
|
+
(0, $hOLA6$expect)(await this.page.locator(".release-description p").textContent()).toContain(description);
|
|
1470
|
+
}
|
|
940
1471
|
}
|
|
941
1472
|
|
|
942
1473
|
|
|
943
1474
|
|
|
944
1475
|
|
|
945
|
-
|
|
946
|
-
class $71075ce65fcede1d$export$9b575f14aa5e09a1 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1476
|
+
class $96c6280ff1c47b81$export$3bc3e140e0dcb075 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
947
1477
|
constructor(page){
|
|
948
1478
|
super(page);
|
|
1479
|
+
this.resetButton = this.page.getByRole("button", {
|
|
1480
|
+
name: "Reset"
|
|
1481
|
+
});
|
|
1482
|
+
this.saveButton = this.page.getByRole("button", {
|
|
1483
|
+
name: "Save"
|
|
1484
|
+
});
|
|
949
1485
|
}
|
|
950
|
-
async
|
|
951
|
-
|
|
952
|
-
}
|
|
953
|
-
/**
|
|
954
|
-
* Setting date, month and year from calendar picker
|
|
955
|
-
*/ async setDate(date, monthYear) {
|
|
956
|
-
const prev = this.page.locator(".datepicker-days .prev");
|
|
957
|
-
const next = this.page.locator(".datepicker-days .next");
|
|
958
|
-
const monYear = this.page.locator(".datepicker-days .datepicker-switch");
|
|
959
|
-
const thisMonth = (0, $hOLA6$moment)(monthYear, "MMMM YYYY").isBefore();
|
|
960
|
-
while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
|
|
961
|
-
else await next.click();
|
|
962
|
-
await this.page.getByRole("cell", {
|
|
963
|
-
name: "" + date + ""
|
|
964
|
-
}).first().click();
|
|
965
|
-
}
|
|
966
|
-
async expectDurationToBe(duration) {
|
|
967
|
-
(0, $hOLA6$expect)(await this.page.locator(".duration-editor").textContent()).toBe(duration);
|
|
968
|
-
}
|
|
969
|
-
async setDuration(days, hours, mins) {
|
|
970
|
-
await this.page.locator(".duration-editor").click();
|
|
971
|
-
if (typeof days !== "undefined") await this.page.locator(".days").fill(days);
|
|
972
|
-
if (typeof hours !== "undefined") await this.page.locator(".hours").fill(hours);
|
|
973
|
-
if (typeof mins !== "undefined") await this.page.locator(".minutes").fill(mins);
|
|
974
|
-
await this.page.keyboard.press("Enter");
|
|
975
|
-
}
|
|
976
|
-
async expectTimeToBe(selector, format, date) {
|
|
977
|
-
if (typeof date === "string") date = new Date(date);
|
|
978
|
-
const formattedDate = (0, $hOLA6$moment)(date).format(format);
|
|
979
|
-
const input = this.page.locator(`${selector}`);
|
|
980
|
-
await (0, $hOLA6$expect)(input).toBeVisible();
|
|
981
|
-
const value = await input.inputValue();
|
|
982
|
-
(0, $hOLA6$expect)(value).toBe(formattedDate);
|
|
983
|
-
}
|
|
984
|
-
/**
|
|
985
|
-
*
|
|
986
|
-
* @returns Getting current month and year in the format "MonthName YYYY"
|
|
987
|
-
*/ async getCurrentMonthYear() {
|
|
988
|
-
const monthNames = [
|
|
989
|
-
"January",
|
|
990
|
-
"February",
|
|
991
|
-
"March",
|
|
992
|
-
"April",
|
|
993
|
-
"May",
|
|
994
|
-
"June",
|
|
995
|
-
"July",
|
|
996
|
-
"August",
|
|
997
|
-
"September",
|
|
998
|
-
"October",
|
|
999
|
-
"November",
|
|
1000
|
-
"December"
|
|
1001
|
-
];
|
|
1002
|
-
const d = new Date();
|
|
1003
|
-
const month = monthNames[d.getMonth()];
|
|
1004
|
-
const year = d.getFullYear();
|
|
1005
|
-
return `${month} ${year}`;
|
|
1006
|
-
}
|
|
1007
|
-
/**
|
|
1008
|
-
*
|
|
1009
|
-
* @returns Getting current date in the format "dd MonthName YYYY"
|
|
1010
|
-
*/ async getCurrentDate() {
|
|
1011
|
-
const d = new Date();
|
|
1012
|
-
const date = d.getDate();
|
|
1013
|
-
const monthYear = await this.getCurrentMonthYear();
|
|
1014
|
-
return `${date} ${monthYear}`;
|
|
1015
|
-
}
|
|
1016
|
-
/**
|
|
1017
|
-
*
|
|
1018
|
-
* @param days Number of days to add to current date within the current month
|
|
1019
|
-
* @returns
|
|
1020
|
-
*/ async getFutureDate(days) {
|
|
1021
|
-
const d = new Date();
|
|
1022
|
-
d.setDate(d.getDate() + days);
|
|
1023
|
-
const date = d.getDate();
|
|
1024
|
-
const monthYear = await this.getCurrentMonthYear();
|
|
1025
|
-
return `${date} ${monthYear}`;
|
|
1486
|
+
async expectSaveButtonDisabled() {
|
|
1487
|
+
(0, $hOLA6$expect)(this.saveButton).toBeDisabled();
|
|
1026
1488
|
}
|
|
1027
1489
|
}
|
|
1028
1490
|
|
|
@@ -1030,6 +1492,7 @@ class $71075ce65fcede1d$export$9b575f14aa5e09a1 extends (0, $9626bc9256ce31f7$ex
|
|
|
1030
1492
|
|
|
1031
1493
|
|
|
1032
1494
|
|
|
1495
|
+
|
|
1033
1496
|
class $87bbb6d35ad31a00$export$f8f26dd395d7e1bd extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1034
1497
|
constructor(page){
|
|
1035
1498
|
super(page);
|
|
@@ -1112,7 +1575,10 @@ class $87bbb6d35ad31a00$export$f8f26dd395d7e1bd extends (0, $9626bc9256ce31f7$ex
|
|
|
1112
1575
|
class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1113
1576
|
constructor(page){
|
|
1114
1577
|
super(page);
|
|
1578
|
+
this.createPage = new (0, $05d91a1d3381a287$export$34addcca3f0ae43f)(page);
|
|
1579
|
+
this.ganttPage = new (0, $a546aadb4e6fa16a$export$5a82be0a2a261cc6)(page);
|
|
1115
1580
|
this.taskDrawer = new (0, $8e39246218b802fc$export$e946776eae644790)(page);
|
|
1581
|
+
this.teamsPermissions = new (0, $96c6280ff1c47b81$export$3bc3e140e0dcb075)(page);
|
|
1116
1582
|
this.phaseTitle = this.page.locator(".phase .phase-title");
|
|
1117
1583
|
this.properties = new (0, $c9bb587dd92143c3$export$d1077068a9cc9f17)(page);
|
|
1118
1584
|
this.variables = new (0, $f48771b486a3eb8f$export$a87f0ae8695e74be)(page);
|
|
@@ -1123,11 +1589,14 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1123
1589
|
return new (0, $862f65268e488e83$export$fb932093f944abe4)(this.page);
|
|
1124
1590
|
}
|
|
1125
1591
|
async abort(comment = "Abort for testing") {
|
|
1126
|
-
await this.page.
|
|
1127
|
-
|
|
1592
|
+
await this.page.getByTestId("abort-btn").waitFor();
|
|
1593
|
+
await this.page.getByTestId("abort-btn").click();
|
|
1594
|
+
await this.page.getByPlaceholder("Give feedback or place a").click();
|
|
1595
|
+
await this.page.getByPlaceholder("Give feedback or place a").fill(comment);
|
|
1596
|
+
await this.page.getByRole("button", {
|
|
1597
|
+
name: "Abort"
|
|
1128
1598
|
}).click();
|
|
1129
|
-
await this.page.locator(".
|
|
1130
|
-
await this.page.locator(".modal .continue").click();
|
|
1599
|
+
await (0, $hOLA6$expect)(this.page.locator(".progress-status-and-percentage")).toContainText("Aborted");
|
|
1131
1600
|
}
|
|
1132
1601
|
getPhase(phaseName) {
|
|
1133
1602
|
return new $43cbcdfccb6c2a76$var$Phase(this.page, phaseName);
|
|
@@ -1337,6 +1806,12 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1337
1806
|
hasText: "TEMPLATE"
|
|
1338
1807
|
})).not.toBeVisible();
|
|
1339
1808
|
}
|
|
1809
|
+
async expectAbortedStatusToBePresent() {
|
|
1810
|
+
await this.page.locator(".progress-status-and-percentage").waitFor({
|
|
1811
|
+
timeout: 10000
|
|
1812
|
+
});
|
|
1813
|
+
(0, $hOLA6$expect)(await this.page.locator(".progress-status-and-percentage").textContent()).toContain("Aborted");
|
|
1814
|
+
}
|
|
1340
1815
|
async openTableView() {
|
|
1341
1816
|
await this.util.openSideNavMenu("Table");
|
|
1342
1817
|
await (0, $hOLA6$expect)(this.page.locator(".release-grid-container")).toBeVisible();
|
|
@@ -1435,6 +1910,9 @@ class $43cbcdfccb6c2a76$export$f43492e8ac3c566 extends (0, $9626bc9256ce31f7$exp
|
|
|
1435
1910
|
hasText: title
|
|
1436
1911
|
}).locator(`.task-infos .delay-count`)).toBeVisible();
|
|
1437
1912
|
}
|
|
1913
|
+
async expectOnePhaseDisplayed() {
|
|
1914
|
+
(0, $hOLA6$expect)(await this.page.locator(".phase-content").count()).toBe(1);
|
|
1915
|
+
}
|
|
1438
1916
|
}
|
|
1439
1917
|
class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
1440
1918
|
constructor(page, phaseName){
|
|
@@ -1565,10 +2043,12 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
|
|
|
1565
2043
|
await this.dateUtil.expectDurationToBe(duration);
|
|
1566
2044
|
}
|
|
1567
2045
|
async setDurationFromPhaseDetails(days, hours, mins) {
|
|
2046
|
+
await this.page.locator(".duration-editor").click();
|
|
1568
2047
|
await this.dateUtil.setDuration(days, hours, mins);
|
|
1569
2048
|
}
|
|
1570
2049
|
async expectDueTimeToBe(format, date) {
|
|
1571
|
-
|
|
2050
|
+
const selector = this.page.locator(".modal .due-date .time-picker-holder input");
|
|
2051
|
+
await this.dateUtil.expectTimeToBe(selector, format, date);
|
|
1572
2052
|
}
|
|
1573
2053
|
async deleteTaskInPhase(taskName) {
|
|
1574
2054
|
await this.page.locator(".task").filter({
|
|
@@ -2227,6 +2707,10 @@ class $50c91328c9110668$export$b453f08936c58edb extends (0, $9626bc9256ce31f7$ex
|
|
|
2227
2707
|
await this.util.openSideNavMenu("Notifications");
|
|
2228
2708
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Notifications")).toBeVisible();
|
|
2229
2709
|
}
|
|
2710
|
+
async openTemplates() {
|
|
2711
|
+
await this.util.openSideNavMenu("Templates");
|
|
2712
|
+
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Templates")).toBeVisible();
|
|
2713
|
+
}
|
|
2230
2714
|
}
|
|
2231
2715
|
|
|
2232
2716
|
|
|
@@ -2712,7 +3196,7 @@ class $a5932af323ac015a$export$3cf9c90f870f31bd extends (0, $9626bc9256ce31f7$ex
|
|
|
2712
3196
|
})).toBeVisible();
|
|
2713
3197
|
await (0, $hOLA6$expect)(this.page.getByLabel("Delete token")).toContainText("Delete token");
|
|
2714
3198
|
await this.page.getByRole("button", {
|
|
2715
|
-
name: "delete icon Delete
|
|
3199
|
+
name: "delete icon Delete"
|
|
2716
3200
|
}).click();
|
|
2717
3201
|
await (0, $hOLA6$expect)(this.page.getByText(tokenName)).not.toBeVisible();
|
|
2718
3202
|
}
|
|
@@ -3188,7 +3672,7 @@ class $3a340a3f4fd8f04d$export$43682cddead1dd78 extends (0, $9626bc9256ce31f7$ex
|
|
|
3188
3672
|
await this.page.getByRole("button", {
|
|
3189
3673
|
name: "Today"
|
|
3190
3674
|
}).click();
|
|
3191
|
-
await this.page.getByText(release_title).click();
|
|
3675
|
+
await this.page.locator(".tl-event-title").getByText(release_title).click();
|
|
3192
3676
|
await this.page.locator(".release-modal-container").locator(".xl-icon.release-icon").click();
|
|
3193
3677
|
const releaseurl = `/#/releases/${release_id}`;
|
|
3194
3678
|
const currentURL = await this.page.url();
|
|
@@ -3370,6 +3854,7 @@ class $cc231ea61b77c7a2$export$1a0994e9c202d529 extends (0, $9626bc9256ce31f7$ex
|
|
|
3370
3854
|
|
|
3371
3855
|
|
|
3372
3856
|
|
|
3857
|
+
|
|
3373
3858
|
class $c37c93912f458e81$export$60c3bfa6385e2a10 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
3374
3859
|
constructor(page){
|
|
3375
3860
|
super(page);
|
|
@@ -3588,6 +4073,8 @@ class $c37c93912f458e81$export$60c3bfa6385e2a10 extends (0, $9626bc9256ce31f7$ex
|
|
|
3588
4073
|
class $880dec03c4eca8dc$export$ccf2756779bad715 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
3589
4074
|
constructor(page){
|
|
3590
4075
|
super(page);
|
|
4076
|
+
this.dateUtil = new (0, $71075ce65fcede1d$export$9b575f14aa5e09a1)(page);
|
|
4077
|
+
this.scheduledStartDate = this.page.locator(`.scheduled-start-date .date`);
|
|
3591
4078
|
}
|
|
3592
4079
|
async getAttachmentsListCount() {
|
|
3593
4080
|
return await this.page.locator(".attachments tr").count();
|
|
@@ -3644,16 +4131,8 @@ class $880dec03c4eca8dc$export$ccf2756779bad715 extends (0, $9626bc9256ce31f7$ex
|
|
|
3644
4131
|
await this.page.locator(".due-date .close-icon").click();
|
|
3645
4132
|
}
|
|
3646
4133
|
async setScheduledStartDate(date, monthYear) {
|
|
3647
|
-
await this.
|
|
3648
|
-
|
|
3649
|
-
const next = this.page.locator(".datepicker-days .next");
|
|
3650
|
-
const monYear = this.page.locator(".datepicker-days .datepicker-switch");
|
|
3651
|
-
const thisMonth = (0, $hOLA6$moment)(monthYear, "MMMM YYYY").isBefore();
|
|
3652
|
-
while(await monYear.textContent() != monthYear)if (thisMonth) await prev.click();
|
|
3653
|
-
else await next.click();
|
|
3654
|
-
await this.page.getByRole("cell", {
|
|
3655
|
-
name: "" + date + ""
|
|
3656
|
-
}).first().click();
|
|
4134
|
+
await this.scheduledStartDate.click();
|
|
4135
|
+
await this.dateUtil.setDate(date, monthYear);
|
|
3657
4136
|
}
|
|
3658
4137
|
async setDuration(days, hours, mins) {
|
|
3659
4138
|
await this.page.locator(".duration-editor").click();
|
|
@@ -3755,6 +4234,30 @@ class $8f36d138075416d2$export$899a7095bab1879d extends (0, $9626bc9256ce31f7$ex
|
|
|
3755
4234
|
|
|
3756
4235
|
|
|
3757
4236
|
|
|
4237
|
+
class $527f56b2e41ad18d$export$e0f84914460c3382 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
4238
|
+
constructor(page){
|
|
4239
|
+
super(page);
|
|
4240
|
+
}
|
|
4241
|
+
async clickEditVariable(variableName) {
|
|
4242
|
+
await this.page.locator("[id='variables-filter']").fill(variableName);
|
|
4243
|
+
await this.page.getByText("Edit").click();
|
|
4244
|
+
return new $527f56b2e41ad18d$var$TemplateVariableModal(this.page);
|
|
4245
|
+
}
|
|
4246
|
+
}
|
|
4247
|
+
class $527f56b2e41ad18d$var$TemplateVariableModal extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
4248
|
+
async setLabel(label) {
|
|
4249
|
+
await this.page.locator(".variable-label input").fill(label);
|
|
4250
|
+
}
|
|
4251
|
+
async setDefalutValue(value) {
|
|
4252
|
+
await this.page.locator(".variable-value input").fill(value);
|
|
4253
|
+
}
|
|
4254
|
+
async save() {
|
|
4255
|
+
await this.page.locator("#modal .button.save").click();
|
|
4256
|
+
}
|
|
4257
|
+
}
|
|
4258
|
+
|
|
4259
|
+
|
|
4260
|
+
|
|
3758
4261
|
class $0c4084f199d70d72$export$8c8e7207254accc2 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
3759
4262
|
constructor(page){
|
|
3760
4263
|
super(page);
|
|
@@ -3764,6 +4267,7 @@ class $0c4084f199d70d72$export$8c8e7207254accc2 extends (0, $9626bc9256ce31f7$ex
|
|
|
3764
4267
|
this.createTemplatePage = new (0, $e83a7515970cee7f$export$98de9bca7d44fc1a)(page);
|
|
3765
4268
|
this.triggers = new (0, $8f36d138075416d2$export$899a7095bab1879d)(page);
|
|
3766
4269
|
this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
|
|
4270
|
+
this.variables = new (0, $527f56b2e41ad18d$export$e0f84914460c3382)(page);
|
|
3767
4271
|
}
|
|
3768
4272
|
async openTemplateMenu(menuItem) {
|
|
3769
4273
|
await this.page.locator(`navigation-sidebar ul li`).getByText(menuItem, {
|
|
@@ -3882,6 +4386,10 @@ class $0c4084f199d70d72$export$8c8e7207254accc2 extends (0, $9626bc9256ce31f7$ex
|
|
|
3882
4386
|
hasText: newPhaseName
|
|
3883
4387
|
})).toBeVisible();
|
|
3884
4388
|
}
|
|
4389
|
+
async clickNewRelease() {
|
|
4390
|
+
await this.page.getByTestId("new-release-btn").click();
|
|
4391
|
+
await (0, $hOLA6$expect)(this.page.locator(".release-properties-form")).toBeVisible();
|
|
4392
|
+
}
|
|
3885
4393
|
getPhase(phaseName) {
|
|
3886
4394
|
return new $0c4084f199d70d72$var$Phase(this.page, phaseName);
|
|
3887
4395
|
}
|
|
@@ -4228,9 +4736,184 @@ class $208f399edeb35aa2$export$7a5b979a220f477c extends (0, $9626bc9256ce31f7$ex
|
|
|
4228
4736
|
|
|
4229
4737
|
|
|
4230
4738
|
|
|
4739
|
+
class $a4ba753fcd18eb4a$export$539d82a5d70c4909 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
4740
|
+
constructor(page){
|
|
4741
|
+
super(page);
|
|
4742
|
+
}
|
|
4743
|
+
async getValue(classIdentifier) {
|
|
4744
|
+
return await this.page.locator(`.rz-bubble.${classIdentifier}-label`).innerText();
|
|
4745
|
+
}
|
|
4746
|
+
async setPointerValue(elem, value, isIncrease) {
|
|
4747
|
+
await elem.waitFor({
|
|
4748
|
+
state: "visible"
|
|
4749
|
+
});
|
|
4750
|
+
await elem.click();
|
|
4751
|
+
for(let i = 0; i < value; i++){
|
|
4752
|
+
if (isIncrease) await this.page.keyboard.press("ArrowRight");
|
|
4753
|
+
else await this.page.keyboard.press("ArrowLeft");
|
|
4754
|
+
await elem.click();
|
|
4755
|
+
}
|
|
4756
|
+
}
|
|
4757
|
+
async setValue(identifier, newValue) {
|
|
4758
|
+
const value = await this.getValue(identifier);
|
|
4759
|
+
const initialDiff = newValue - parseInt(value);
|
|
4760
|
+
const elem = this.page.locator(`.rz-pointer-${identifier}`);
|
|
4761
|
+
const diffValue = Math.abs(initialDiff);
|
|
4762
|
+
await this.setPointerValue(elem, diffValue, initialDiff > 0);
|
|
4763
|
+
await this.checkValue(identifier, newValue);
|
|
4764
|
+
}
|
|
4765
|
+
async checkValue(identifier, value) {
|
|
4766
|
+
(0, $hOLA6$expect)(await this.getValue(identifier)).toEqual(value.toString());
|
|
4767
|
+
}
|
|
4768
|
+
async shouldHaveEditButton(present = true) {
|
|
4769
|
+
(0, $hOLA6$expect)(await this.page.locator("#editRisk").isVisible()).toBe(present);
|
|
4770
|
+
}
|
|
4771
|
+
async shouldHaveSaveButton(present = true) {
|
|
4772
|
+
(0, $hOLA6$expect)(await this.page.getByTestId("save-btn").isVisible()).toBe(present);
|
|
4773
|
+
}
|
|
4774
|
+
async startEditGlobalRiskThreshold() {
|
|
4775
|
+
await this.page.locator("#editRisk").click();
|
|
4776
|
+
}
|
|
4777
|
+
async setInitialValues() {
|
|
4778
|
+
await this.setValue("min", 10);
|
|
4779
|
+
await this.setValue("max", 50);
|
|
4780
|
+
}
|
|
4781
|
+
async changeValuesAndSave(minValue, maxValue) {
|
|
4782
|
+
await this.setValue("min", minValue);
|
|
4783
|
+
await this.setValue("max", maxValue);
|
|
4784
|
+
await this.page.locator("#submit").click();
|
|
4785
|
+
}
|
|
4786
|
+
async checkValuesChanged(minValue, maxValue) {
|
|
4787
|
+
await this.checkValue("min", minValue);
|
|
4788
|
+
await this.checkValue("max", maxValue);
|
|
4789
|
+
}
|
|
4790
|
+
async expectRiskProfileToBePresent(title, present = true) {
|
|
4791
|
+
await this.page.locator("#risk-profile-table").waitFor({
|
|
4792
|
+
state: "visible"
|
|
4793
|
+
});
|
|
4794
|
+
(0, $hOLA6$expect)(await this.page.locator(".risk-profile .data-row").filter({
|
|
4795
|
+
hasText: title
|
|
4796
|
+
}).isVisible()).toBe(present);
|
|
4797
|
+
}
|
|
4798
|
+
async expectDefaultRiskProfileToBeFirst() {
|
|
4799
|
+
await this.page.locator("#risk-profile-table").waitFor({
|
|
4800
|
+
state: "visible"
|
|
4801
|
+
});
|
|
4802
|
+
await (0, $hOLA6$expect)(this.page.locator(".risk-profile .data-row .ng-binding").first()).toHaveText("Default risk profile");
|
|
4803
|
+
}
|
|
4804
|
+
async openRiskProfile(title) {
|
|
4805
|
+
await this.page.locator("#risk-profile-table").waitFor({
|
|
4806
|
+
state: "visible"
|
|
4807
|
+
});
|
|
4808
|
+
await this.page.locator(".risk-profile .data-row").filter({
|
|
4809
|
+
hasText: title
|
|
4810
|
+
}).click();
|
|
4811
|
+
return new $a4ba753fcd18eb4a$var$RisksProfilePage(this.page);
|
|
4812
|
+
}
|
|
4813
|
+
async shouldHaveCopyButtonEnabledForRiskProfile(title, enabled = true) {
|
|
4814
|
+
await this.page.locator(".risk-profile .data-row").filter({
|
|
4815
|
+
hasText: title
|
|
4816
|
+
}).waitFor({
|
|
4817
|
+
state: "visible"
|
|
4818
|
+
});
|
|
4819
|
+
(0, $hOLA6$expect)(await this.page.locator(".risk-profile .data-row").filter({
|
|
4820
|
+
hasText: title
|
|
4821
|
+
}).locator(".copy-action").isVisible()).toBe(enabled);
|
|
4822
|
+
}
|
|
4823
|
+
async shouldHaveDeleteButtonEnabledForRiskProfile(title, enabled = true) {
|
|
4824
|
+
await this.page.locator(".risk-profile .data-row").filter({
|
|
4825
|
+
hasText: title
|
|
4826
|
+
}).waitFor({
|
|
4827
|
+
state: "visible"
|
|
4828
|
+
});
|
|
4829
|
+
(0, $hOLA6$expect)(await this.page.locator(`.risk-profile .data-row`).filter({
|
|
4830
|
+
hasText: title
|
|
4831
|
+
}).locator(`.remove-action`).isVisible()).toBe(enabled);
|
|
4832
|
+
}
|
|
4833
|
+
async clickNewRiskProfile() {
|
|
4834
|
+
await this.page.getByTestId("new-risk-btn").waitFor({
|
|
4835
|
+
state: "visible"
|
|
4836
|
+
});
|
|
4837
|
+
await this.page.getByTestId("new-risk-btn").click();
|
|
4838
|
+
return new $a4ba753fcd18eb4a$var$RisksProfilePage(this.page);
|
|
4839
|
+
}
|
|
4840
|
+
async deleteRiskProfile(title) {
|
|
4841
|
+
await this.page.locator(".risk-profile .data-row").filter({
|
|
4842
|
+
hasText: title
|
|
4843
|
+
}).locator(".remove-action").waitFor({
|
|
4844
|
+
state: "visible"
|
|
4845
|
+
});
|
|
4846
|
+
await this.page.locator(".risk-profile .data-row").filter({
|
|
4847
|
+
hasText: title
|
|
4848
|
+
}).locator(".remove-action").click();
|
|
4849
|
+
await this.page.locator(".modal-footer .button.save").click();
|
|
4850
|
+
}
|
|
4851
|
+
async expectSuccessMessageOnRisksPage() {
|
|
4852
|
+
await (0, $hOLA6$expect)(this.page.getByLabel("success")).toBeVisible();
|
|
4853
|
+
await (0, $hOLA6$expect)(this.page.locator(".success").filter({
|
|
4854
|
+
hasText: "Risk Profile Created Successfully"
|
|
4855
|
+
})).toBeVisible();
|
|
4856
|
+
}
|
|
4857
|
+
async copyRiskProfile(title) {
|
|
4858
|
+
await this.page.locator(".risk-profile .data-row").filter({
|
|
4859
|
+
hasText: title
|
|
4860
|
+
}).waitFor({
|
|
4861
|
+
state: "visible"
|
|
4862
|
+
});
|
|
4863
|
+
await this.page.locator(".risk-profile .data-row").filter({
|
|
4864
|
+
hasText: title
|
|
4865
|
+
}).locator(".copy-action").click();
|
|
4866
|
+
}
|
|
4867
|
+
async expectSuccessMessageOnUpdateRiskProfile() {
|
|
4868
|
+
await (0, $hOLA6$expect)(this.page.getByLabel("success")).toBeVisible();
|
|
4869
|
+
await (0, $hOLA6$expect)(this.page.locator(".success").filter({
|
|
4870
|
+
hasText: "Risk Profile Updated Successfully"
|
|
4871
|
+
})).toBeVisible();
|
|
4872
|
+
}
|
|
4873
|
+
async filter(filterText) {
|
|
4874
|
+
await this.page.locator("#risk-profile-filter").waitFor({
|
|
4875
|
+
state: "visible"
|
|
4876
|
+
});
|
|
4877
|
+
await this.page.locator("#risk-profile-filter").clear();
|
|
4878
|
+
await this.page.locator("#risk-profile-filter").fill(filterText);
|
|
4879
|
+
}
|
|
4880
|
+
async shouldHaveNVisibleRiskProfiles(numberOfVisibleRiskProfiles) {
|
|
4881
|
+
await this.page.locator("#risk-profile-table").waitFor({
|
|
4882
|
+
state: "visible"
|
|
4883
|
+
});
|
|
4884
|
+
(0, $hOLA6$expect)(await this.page.locator("#risk-profile-table .data-row").count()).toEqual(numberOfVisibleRiskProfiles);
|
|
4885
|
+
}
|
|
4886
|
+
async shouldHaveNewRiskProfileButton(present = true) {
|
|
4887
|
+
(0, $hOLA6$expect)(await this.page.getByTestId("new-risk-btn").isVisible()).toBe(present);
|
|
4888
|
+
}
|
|
4889
|
+
}
|
|
4890
|
+
class $a4ba753fcd18eb4a$var$RisksProfilePage extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
4891
|
+
async shouldBeEditable(editable) {
|
|
4892
|
+
const elem = this.page.locator("#riskProfileTitle");
|
|
4893
|
+
if (editable) await (0, $hOLA6$expect)(elem).toBeEnabled();
|
|
4894
|
+
else await (0, $hOLA6$expect)(elem).toBeDisabled();
|
|
4895
|
+
}
|
|
4896
|
+
async setName(name) {
|
|
4897
|
+
await this.page.locator("#riskProfileTitle").waitFor({
|
|
4898
|
+
state: "visible"
|
|
4899
|
+
});
|
|
4900
|
+
await this.page.locator("#riskProfileTitle").click();
|
|
4901
|
+
await this.page.locator("#riskProfileTitle").clear();
|
|
4902
|
+
await this.page.locator("#riskProfileTitle").fill(name);
|
|
4903
|
+
}
|
|
4904
|
+
async save() {
|
|
4905
|
+
await this.page.getByTestId("save-btn").click();
|
|
4906
|
+
await (0, $hOLA6$expect)(this.page.locator("#risk-profile-table")).toBeVisible();
|
|
4907
|
+
}
|
|
4908
|
+
}
|
|
4909
|
+
|
|
4910
|
+
|
|
4911
|
+
|
|
4912
|
+
|
|
4231
4913
|
class $2cbb78eec86d0a9f$export$2edf430132ca35d0 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
4232
4914
|
constructor(page){
|
|
4233
4915
|
super(page);
|
|
4916
|
+
this.risksPage = new (0, $a4ba753fcd18eb4a$export$539d82a5d70c4909)(page);
|
|
4234
4917
|
this.util = new (0, $87bbb6d35ad31a00$export$f8f26dd395d7e1bd)(page);
|
|
4235
4918
|
}
|
|
4236
4919
|
async openGeneralSettings() {
|
|
@@ -4264,6 +4947,7 @@ class $2cbb78eec86d0a9f$export$2edf430132ca35d0 extends (0, $9626bc9256ce31f7$ex
|
|
|
4264
4947
|
async openRiskProfiles() {
|
|
4265
4948
|
await this.util.openSideNavMenu("Risk profiles");
|
|
4266
4949
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Risk profiles")).toBeVisible();
|
|
4950
|
+
return new (0, $a4ba753fcd18eb4a$export$539d82a5d70c4909)(this.page);
|
|
4267
4951
|
}
|
|
4268
4952
|
async openWorkflowCategories() {
|
|
4269
4953
|
await this.util.openSideNavMenu("Workflow categories");
|
|
@@ -4307,6 +4991,16 @@ class $e72552cbf941ecfa$export$b8a61e5c71402559 {
|
|
|
4307
4991
|
async openTemplate(id) {
|
|
4308
4992
|
return this.openReleaseOrTemplate(id, false);
|
|
4309
4993
|
}
|
|
4994
|
+
async openFolder(id) {
|
|
4995
|
+
await this.page.goto(`./#/folders/${id}/releases`);
|
|
4996
|
+
await this.page.waitForSelector("#releases-content");
|
|
4997
|
+
return new (0, $50c91328c9110668$export$b453f08936c58edb)(this.page);
|
|
4998
|
+
}
|
|
4999
|
+
async openVariablesOnReleasePage(releaseId) {
|
|
5000
|
+
await this.page.goto(`./#/releases/${releaseId}/variables`);
|
|
5001
|
+
await this.page.waitForSelector("#release-variables");
|
|
5002
|
+
return new (0, $f48771b486a3eb8f$export$a87f0ae8695e74be)(this.page);
|
|
5003
|
+
}
|
|
4310
5004
|
async openRelease(id) {
|
|
4311
5005
|
return this.openReleaseOrTemplate(id, true);
|
|
4312
5006
|
}
|
|
@@ -4316,83 +5010,88 @@ class $e72552cbf941ecfa$export$b8a61e5c71402559 {
|
|
|
4316
5010
|
async openPersonalAccessTokenPage() {
|
|
4317
5011
|
return new (0, $6720a523bcb1cce0$export$3cac5fd37ae64b91)(this.page).openPersonalAccessTokenPage();
|
|
4318
5012
|
}
|
|
5013
|
+
async gotoHomePage() {
|
|
5014
|
+
await this.page.locator("ul.side-nav li").getByLabel("Home", {
|
|
5015
|
+
exact: true
|
|
5016
|
+
}).click();
|
|
5017
|
+
}
|
|
4319
5018
|
async gotoFolderPage() {
|
|
4320
|
-
await this.page.locator("ul.side-nav li").
|
|
5019
|
+
await this.page.locator("ul.side-nav li").getByLabel("Folders", {
|
|
4321
5020
|
exact: true
|
|
4322
5021
|
}).click();
|
|
4323
5022
|
}
|
|
4324
5023
|
async gotoTaskPage() {
|
|
4325
|
-
await this.page.locator("ul.side-nav li").
|
|
5024
|
+
await this.page.locator("ul.side-nav li").getByLabel("Tasks", {
|
|
4326
5025
|
exact: true
|
|
4327
5026
|
}).click();
|
|
4328
5027
|
}
|
|
4329
5028
|
async gotoReleasePage() {
|
|
4330
|
-
await this.page.locator("ul.side-nav li").
|
|
5029
|
+
await this.page.locator("ul.side-nav li").getByLabel("Releases", {
|
|
4331
5030
|
exact: true
|
|
4332
5031
|
}).click();
|
|
4333
5032
|
}
|
|
4334
5033
|
async gotoWorkflowCatalogPage() {
|
|
4335
|
-
await this.page.locator("ul.side-nav li").
|
|
5034
|
+
await this.page.locator("ul.side-nav li").getByLabel("Workflow catalog", {
|
|
4336
5035
|
exact: true
|
|
4337
5036
|
}).click();
|
|
4338
5037
|
}
|
|
4339
5038
|
async gotoWorkflowsPage() {
|
|
4340
|
-
await this.page.locator("ul.side-nav li").
|
|
5039
|
+
await this.page.locator("ul.side-nav li").getByLabel("Workflows", {
|
|
4341
5040
|
exact: true
|
|
4342
5041
|
}).click();
|
|
4343
5042
|
}
|
|
4344
5043
|
async gotoGroupsPage() {
|
|
4345
|
-
await this.page.locator("ul.side-nav li").
|
|
5044
|
+
await this.page.locator("ul.side-nav li").getByLabel("Groups", {
|
|
4346
5045
|
exact: true
|
|
4347
5046
|
}).click();
|
|
4348
5047
|
}
|
|
4349
5048
|
async gotoReleaseCalenderPage() {
|
|
4350
|
-
await this.page.locator("ul.side-nav li").
|
|
5049
|
+
await this.page.locator("ul.side-nav li").getByLabel("Release calendar", {
|
|
4351
5050
|
exact: true
|
|
4352
5051
|
}).click();
|
|
4353
5052
|
}
|
|
4354
5053
|
async gotoDeliveriesPage() {
|
|
4355
|
-
await this.page.locator("ul.side-nav li").
|
|
5054
|
+
await this.page.locator("ul.side-nav li").getByLabel("Deliveries", {
|
|
4356
5055
|
exact: true
|
|
4357
5056
|
}).click();
|
|
4358
5057
|
}
|
|
4359
5058
|
async gotoTriggersPage() {
|
|
4360
|
-
await this.page.locator("ul.side-nav li").
|
|
5059
|
+
await this.page.locator("ul.side-nav li").getByLabel("Triggers", {
|
|
4361
5060
|
exact: true
|
|
4362
5061
|
}).click();
|
|
4363
5062
|
}
|
|
4364
5063
|
async gotoDigitalAnalyticsPage() {
|
|
4365
|
-
await this.page.locator("ul.side-nav li").
|
|
5064
|
+
await this.page.locator("ul.side-nav li").getByLabel("Digital.ai Analytics", {
|
|
4366
5065
|
exact: true
|
|
4367
5066
|
}).click();
|
|
4368
5067
|
}
|
|
4369
5068
|
async gotoReportsPage() {
|
|
4370
|
-
await this.page.locator("ul.side-nav li").
|
|
5069
|
+
await this.page.locator("ul.side-nav li").getByLabel("Reports", {
|
|
4371
5070
|
exact: true
|
|
4372
5071
|
}).click();
|
|
4373
5072
|
}
|
|
4374
5073
|
async gotoTemplatesPage() {
|
|
4375
|
-
await this.page.locator("ul.side-nav li").
|
|
5074
|
+
await this.page.locator("ul.side-nav li").getByLabel("Templates", {
|
|
4376
5075
|
exact: true
|
|
4377
5076
|
}).click();
|
|
4378
5077
|
}
|
|
4379
5078
|
async gotoEnvironmentsPage() {
|
|
4380
|
-
await this.page.locator("ul.side-nav li").
|
|
5079
|
+
await this.page.locator("ul.side-nav li").getByLabel("Environments", {
|
|
4381
5080
|
exact: true
|
|
4382
5081
|
}).click();
|
|
4383
5082
|
}
|
|
4384
5083
|
async gotoEnvironmentsCalenderPage() {
|
|
4385
|
-
await this.page.locator("ul.side-nav li").
|
|
5084
|
+
await this.page.locator("ul.side-nav li").getByLabel("Environments calendar", {
|
|
4386
5085
|
exact: true
|
|
4387
5086
|
}).click();
|
|
4388
5087
|
}
|
|
4389
5088
|
async gotoGobalVariablesPage() {
|
|
4390
|
-
await this.page.locator("ul.side-nav li").
|
|
5089
|
+
await this.page.locator("ul.side-nav li").getByLabel("Global variables", {
|
|
4391
5090
|
exact: true
|
|
4392
5091
|
}).click();
|
|
4393
5092
|
}
|
|
4394
5093
|
async gotoConnectionsPage() {
|
|
4395
|
-
await this.page.locator("ul.side-nav li").
|
|
5094
|
+
await this.page.locator("ul.side-nav li").getByLabel("Connections", {
|
|
4396
5095
|
exact: true
|
|
4397
5096
|
}).click();
|
|
4398
5097
|
}
|
|
@@ -4410,6 +5109,9 @@ class $e72552cbf941ecfa$export$b8a61e5c71402559 {
|
|
|
4410
5109
|
await this.page.getByLabel("Expand Q").click();
|
|
4411
5110
|
await (0, $hOLA6$expect)(this.page.getByLabel("Expand Q")).not.toBeVisible();
|
|
4412
5111
|
}
|
|
5112
|
+
async openRisksProfile() {
|
|
5113
|
+
await this.page.goto("./#/risks");
|
|
5114
|
+
}
|
|
4413
5115
|
}
|
|
4414
5116
|
|
|
4415
5117
|
|
|
@@ -4656,6 +5358,12 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
4656
5358
|
ci
|
|
4657
5359
|
]);
|
|
4658
5360
|
}
|
|
5361
|
+
ci(ci) {
|
|
5362
|
+
this.configurationIds.push(ci.id);
|
|
5363
|
+
return this.doPost("fixtures", [
|
|
5364
|
+
ci
|
|
5365
|
+
]);
|
|
5366
|
+
}
|
|
4659
5367
|
getParentId(id) {
|
|
4660
5368
|
return id.substring(0, id.lastIndexOf("/"));
|
|
4661
5369
|
}
|
|
@@ -4711,6 +5419,12 @@ class $80c3ae34677b4324$var$Fixtures {
|
|
|
4711
5419
|
permissions(rolePermissions) {
|
|
4712
5420
|
return this.doPost("fixtures/roles/permissions/global", rolePermissions);
|
|
4713
5421
|
}
|
|
5422
|
+
globalRoles(rolePrincipals) {
|
|
5423
|
+
return this.doPost(`api/v1/roles/${rolePrincipals.name}`, rolePrincipals);
|
|
5424
|
+
}
|
|
5425
|
+
deleteGlobalRole(roleName) {
|
|
5426
|
+
return this.doDelete(`api/v1/roles/${roleName}`);
|
|
5427
|
+
}
|
|
4714
5428
|
updateUserProfile(username, profile) {
|
|
4715
5429
|
profile.id = username;
|
|
4716
5430
|
profile.type = "xlrelease.UserProfile";
|