@digital-ai/devops-page-object-release 0.0.0-snapshot-20260123084921 → 0.0.0-snapshot-20260123125310

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @digital-ai/devops-page-object-release
2
2
 
3
- ## 0.0.0-snapshot-20260123084921
3
+ ## 0.0.0-snapshot-20260123125310
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - 64848a3: Fixed global variables values entry related issues
7
+ - 650862d: S-127587: Changed the page objects to support SAAS
8
8
 
9
9
  ## 0.0.99
10
10
 
package/dist/main.js CHANGED
@@ -1,3 +1,4 @@
1
+ var $kKeXs$buffer = require("buffer");
1
2
  var $kKeXs$playwrighttest = require("@playwright/test");
2
3
  var $kKeXs$child_process = require("child_process");
3
4
  var $kKeXs$process = require("process");
@@ -6224,7 +6225,7 @@ class $506d511737b3ea46$export$74ca1eaaa9a0054 extends (0, $f8721861c660dd88$exp
6224
6225
  }
6225
6226
  async addVariableText(valuename) {
6226
6227
  await this.page.getByRole("combobox").selectOption("StringVariable");
6227
- await this.page.locator(".variable-value input").fill(valuename);
6228
+ await this.page.locator(".variable-value").type(valuename);
6228
6229
  await this.submitTheVariable();
6229
6230
  }
6230
6231
  async addVariableListbox(possiblevalue) {
@@ -6236,7 +6237,7 @@ class $506d511737b3ea46$export$74ca1eaaa9a0054 extends (0, $f8721861c660dd88$exp
6236
6237
  }
6237
6238
  async addVariablePassword(possiblevalue) {
6238
6239
  await this.page.getByRole("combobox").selectOption("PasswordStringVariable");
6239
- await this.page.locator('input[type="password"]').fill(possiblevalue);
6240
+ await this.page.locator('input[type="password"]').type(possiblevalue);
6240
6241
  await this.submitTheVariable();
6241
6242
  }
6242
6243
  async addVariableCheckbox() {
@@ -6301,7 +6302,7 @@ class $506d511737b3ea46$export$74ca1eaaa9a0054 extends (0, $f8721861c660dd88$exp
6301
6302
  await this.page.getByRole("button", {
6302
6303
  name: "New global variable"
6303
6304
  }).click();
6304
- await this.page.locator(`div.input-group > input`).fill(variableName);
6305
+ await this.page.locator(`div.input-group > input`).type(variableName);
6305
6306
  await this.addVariablelabel.fill(labelname);
6306
6307
  await this.page.locator(".variable-description input").fill(description);
6307
6308
  }
@@ -6312,7 +6313,7 @@ class $506d511737b3ea46$export$74ca1eaaa9a0054 extends (0, $f8721861c660dd88$exp
6312
6313
  })).toBeVisible();
6313
6314
  }
6314
6315
  async submitTheVariable() {
6315
- const pagesubmit = this.page.locator(".button.save");
6316
+ const pagesubmit = await this.page.locator(".button.save");
6316
6317
  await pagesubmit.hover();
6317
6318
  await pagesubmit.click();
6318
6319
  }
@@ -6328,7 +6329,6 @@ class $506d511737b3ea46$export$74ca1eaaa9a0054 extends (0, $f8721861c660dd88$exp
6328
6329
  await this.page.getByRole("button", {
6329
6330
  name: "Delete"
6330
6331
  }).click();
6331
- await (0, $kKeXs$playwrighttest.expect)(this.page.locator("alert.notice.ng-scope")).toBeVisible();
6332
6332
  }
6333
6333
  async editVariable(variableName, editedvariabletext) {
6334
6334
  await this.page.locator("[id='variables-filter']").fill(variableName);
@@ -7428,6 +7428,465 @@ class $a8855257f8bb2b12$export$61be9a231bfbe7b9 extends (0, $f8721861c660dd88$ex
7428
7428
 
7429
7429
 
7430
7430
 
7431
+ class $a6a3c1345fc4767e$export$b6fbc3e67030138f extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
7432
+ async setStatus(status) {
7433
+ await this.page.locator(".react-tagsinput").click({
7434
+ force: true
7435
+ });
7436
+ await this.page.getByText("Clear all").click();
7437
+ await this.page.locator(".react-tagsinput").click({
7438
+ force: true
7439
+ });
7440
+ if (status === "Select all") await this.page.getByText(status).click();
7441
+ else await this.page.getByTitle(status).locator("i").first().click();
7442
+ }
7443
+ async openReleaseGroup(title) {
7444
+ await this.page.locator("xlr-release-group-row").filter({
7445
+ hasText: title
7446
+ }).getByRole("link").click();
7447
+ await this.page.getByTitle(title).click();
7448
+ await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveURL(/.*ReleaseGroup/);
7449
+ }
7450
+ async expectReleaseGroupStatus(status) {
7451
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-status")).toContainText(status);
7452
+ }
7453
+ async expectReleaseGroupDisplayed(title) {
7454
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".row").getByText(title, {
7455
+ exact: true
7456
+ })).toBeVisible();
7457
+ }
7458
+ async expectReleaseGroupNotDisplayed(title) {
7459
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".row").getByText(title, {
7460
+ exact: true
7461
+ })).not.toBeVisible();
7462
+ }
7463
+ async searchReleaseGroupByTitle(title) {
7464
+ await this.page.getByPlaceholder("Search for groups...", {
7465
+ exact: true
7466
+ }).click();
7467
+ await this.page.getByPlaceholder("Search for groups...", {
7468
+ exact: true
7469
+ }).fill(title);
7470
+ await this.page.getByPlaceholder("Search for groups...", {
7471
+ exact: true
7472
+ }).press("Enter");
7473
+ }
7474
+ async deleteReleaseGroup(title) {
7475
+ await this.page.locator(".fc-list-item-line").filter({
7476
+ hasText: title
7477
+ }).locator(".fc-item-delete").click();
7478
+ await this.page.getByRole("button", {
7479
+ name: "Delete"
7480
+ }).click();
7481
+ }
7482
+ async clickReleaseGroupEdit(title) {
7483
+ await this.page.locator(".fc-list-item-line").filter({
7484
+ hasText: title
7485
+ }).locator(".fc-item-update").click();
7486
+ }
7487
+ async enterReleaseGroupDetails(new_title) {
7488
+ await this.page.locator(".modal-body").locator("#title").fill(new_title);
7489
+ }
7490
+ async clickSaveButton() {
7491
+ await this.page.locator(".modal-footer").getByRole("button", {
7492
+ name: "Save"
7493
+ }).click();
7494
+ }
7495
+ async clickCancelButton() {
7496
+ await this.page.locator(".modal-footer").getByRole("button", {
7497
+ name: "Cancel"
7498
+ }).click();
7499
+ }
7500
+ }
7501
+
7502
+
7503
+
7504
+
7505
+ class $3fad6a9449b6416f$export$1a0994e9c202d529 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
7506
+ async expectReleaseDisplayed(title) {
7507
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
7508
+ exact: true
7509
+ })).toBeVisible();
7510
+ }
7511
+ async expectReleaseNotDisplayed(title) {
7512
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
7513
+ exact: true
7514
+ })).not.toBeVisible({
7515
+ timeout: 10000
7516
+ });
7517
+ }
7518
+ async expectPhaseDisplayed(title) {
7519
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText(title, {
7520
+ exact: true
7521
+ })).toBeVisible();
7522
+ }
7523
+ async openContextMenu(title) {
7524
+ await this.page.locator(".timeline-row-name").filter({
7525
+ hasText: title
7526
+ }).locator(".options-icon").click();
7527
+ }
7528
+ async removeFromReleaseGroup() {
7529
+ await this.page.getByRole("menuitem", {
7530
+ name: "Remove from group"
7531
+ }).locator("a").click();
7532
+ await this.page.getByRole("button", {
7533
+ name: "Remove"
7534
+ }).click();
7535
+ }
7536
+ async expectNumberOfReleases(num_of_release) {
7537
+ const elementCount = await this.page.locator(".timeline-row-name-release").count();
7538
+ (0, $kKeXs$playwrighttest.expect)(elementCount).toBe(num_of_release);
7539
+ }
7540
+ async openAddReleaseList() {
7541
+ await this.page.getByRole("button", {
7542
+ name: "Add release"
7543
+ }).click();
7544
+ }
7545
+ async filterReleases(title) {
7546
+ await this.page.getByPlaceholder("Search for a release...").click();
7547
+ await this.page.getByPlaceholder("Search for a release...").fill(title);
7548
+ await this.page.waitForTimeout(5000);
7549
+ await this.page.getByPlaceholder("Search for a release...").press("Enter");
7550
+ }
7551
+ async expectNumberOfReleasesOnModal(num_of_release) {
7552
+ const elementCount = await this.page.locator(".release-modal-line").count();
7553
+ (0, $kKeXs$playwrighttest.expect)(elementCount).toBe(num_of_release);
7554
+ }
7555
+ async selectAllReleaseCheckbox() {
7556
+ await this.page.getByLabel("Select all").check();
7557
+ }
7558
+ async addReleasesToGroup() {
7559
+ await this.page.getByRole("button", {
7560
+ name: "Add"
7561
+ }).click();
7562
+ }
7563
+ }
7564
+
7565
+
7566
+
7567
+
7568
+
7569
+
7570
+
7571
+ class $fd4eef3ad2b2e612$export$a87f0ae8695e74be extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
7572
+ constructor(page){
7573
+ super(page);
7574
+ this.addListValue = this.page.locator(".variable-selector .xl-components-input-full input");
7575
+ this.addVariableValue = this.page.locator(".variable-value .xl-components-input-full input");
7576
+ this.dateUtil = new (0, $880df57ffbf6e614$export$9b575f14aa5e09a1)(page);
7577
+ this.listAddButton = this.page.getByRole("button", {
7578
+ name: "Add"
7579
+ });
7580
+ }
7581
+ async openVariable(variableKey) {
7582
+ await this.page.locator(`.variables-list .variable`).getByText(variableKey).click();
7583
+ return new $fd4eef3ad2b2e612$var$ReleaseVariableModal(this.page);
7584
+ }
7585
+ async addNewVariable(variableName, labelname, description) {
7586
+ await this.page.locator("#action-toolbar").getByText("New variable").click();
7587
+ await this.page.fill(`[name="fieldKey"]`, variableName);
7588
+ await this.page.locator(".variable-label input").fill(labelname);
7589
+ if (description) await this.page.locator(".variable-description input").fill(description);
7590
+ }
7591
+ async selectVariableTextType(valuename) {
7592
+ await this.page.getByRole("combobox").selectOption("StringVariable");
7593
+ await this.page.locator(".variable-value").type(valuename);
7594
+ }
7595
+ async selectVariableListboxType(possiblevalue, defaultValue, required) {
7596
+ await this.page.getByRole("combobox").selectOption("DropDownListBox");
7597
+ if (possiblevalue instanceof Array) for (const value of possiblevalue){
7598
+ await this.addListValue.fill(value);
7599
+ await this.listAddButton.click();
7600
+ }
7601
+ else {
7602
+ await this.addListValue.fill(possiblevalue);
7603
+ await this.listAddButton.click();
7604
+ }
7605
+ await this.page.locator(".variable-value select").type(defaultValue);
7606
+ if (required) await this.page.getByRole("checkbox").check();
7607
+ else await this.page.getByRole("checkbox").uncheck();
7608
+ }
7609
+ async selectVariablePasswordType(possiblevalue) {
7610
+ await this.page.getByRole("combobox").selectOption("PasswordStringVariable");
7611
+ await this.page.locator('input[type="password"]').type(possiblevalue);
7612
+ }
7613
+ async selectVariableCheckboxType() {
7614
+ await this.page.getByRole("combobox").selectOption("BooleanVariable");
7615
+ await this.page.getByRole("checkbox").check();
7616
+ }
7617
+ async selectVariableNumberType(possiblevalue) {
7618
+ await this.page.getByRole("combobox").selectOption("IntegerVariable");
7619
+ await this.page.locator('input[ng-model="var.value"]').fill(possiblevalue);
7620
+ }
7621
+ async selectVariableMultiListType(possiblevalue1, possiblevalue2) {
7622
+ await this.page.getByRole("combobox").selectOption("MultiSelectListBox");
7623
+ await this.addListValue.fill(possiblevalue1);
7624
+ await this.listAddButton.click();
7625
+ await this.addListValue.fill(possiblevalue2);
7626
+ await this.listAddButton.click();
7627
+ await this.page.locator(".react-tagsinput").click();
7628
+ await this.page.getByText("Select all", {
7629
+ exact: true
7630
+ }).click();
7631
+ }
7632
+ async addVariableDate() {
7633
+ await this.page.getByRole("combobox").selectOption("DateVariable");
7634
+ await this.page.getByText("Select date").click();
7635
+ }
7636
+ async setDate(date, monthYear) {
7637
+ await this.dateUtil.setDate(date, monthYear);
7638
+ }
7639
+ async addVariableKeyValueMap(keys1, values1) {
7640
+ await this.page.getByRole("combobox").selectOption("MapStringStringVariable");
7641
+ await this.page.getByPlaceholder("key").fill(keys1);
7642
+ await this.page.getByPlaceholder("Value").fill(values1);
7643
+ await this.listAddButton.click();
7644
+ await this.page.locator(".xl-map-string-string-div-buttons .search-icon").click();
7645
+ await this.page.getByRole("row", {
7646
+ name: "Search"
7647
+ }).getByRole("textbox").fill(keys1);
7648
+ const detail = await this.page.locator("table.table-condensed span").allInnerTexts();
7649
+ (0, $kKeXs$playwrighttest.expect)(detail[0]).toEqual(keys1);
7650
+ (0, $kKeXs$playwrighttest.expect)(detail[1]).toEqual(values1);
7651
+ }
7652
+ async addVariableSet(possiblevalue1) {
7653
+ await this.page.getByRole("combobox").selectOption("SetStringVariable");
7654
+ await this.page.locator(".dip-input input").fill(possiblevalue1);
7655
+ await this.listAddButton.click();
7656
+ }
7657
+ async submitTheVariable() {
7658
+ const createButton = this.page.locator(".modal-footer .save");
7659
+ await (0, $kKeXs$playwrighttest.expect)(createButton).toBeEnabled();
7660
+ await createButton.scrollIntoViewIfNeeded();
7661
+ await createButton.click();
7662
+ // Expect is needed here to avoid flackiness on clicking create button
7663
+ await (0, $kKeXs$playwrighttest.expect)(createButton).not.toBeVisible();
7664
+ }
7665
+ async expectVariableWithNameValueAndType(name, value, type) {
7666
+ const rowLocator = await this.page.locator(".variable .data-row").allTextContents();
7667
+ (0, $kKeXs$playwrighttest.expect)(rowLocator.toString()).toContain(name);
7668
+ (0, $kKeXs$playwrighttest.expect)(rowLocator.toString()).toContain(value);
7669
+ (0, $kKeXs$playwrighttest.expect)(rowLocator.toString()).toContain(type);
7670
+ }
7671
+ async clickEditVariable(variableName) {
7672
+ await this.page.locator("[id='variables-filter']").fill(variableName);
7673
+ await this.page.getByText("Edit").first().click();
7674
+ return new $fd4eef3ad2b2e612$var$ReleaseVariableModal(this.page);
7675
+ }
7676
+ async clickDeleteVariable(variableName) {
7677
+ await this.page.locator("[id='variables-filter']").fill(variableName);
7678
+ await this.page.locator(".action .delete-icon").first().click();
7679
+ return new $fd4eef3ad2b2e612$var$DeleteVariableModel(this.page);
7680
+ }
7681
+ async expectVariablesCountToBe(count) {
7682
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".variable .data-row")).toHaveCount(count);
7683
+ }
7684
+ async expectVariableNotPresent(variableName) {
7685
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".variable").filter({
7686
+ hasText: variableName
7687
+ })).not.toBeVisible();
7688
+ }
7689
+ async clearSearch() {
7690
+ await this.page.locator("[id='variables-filter']").clear();
7691
+ }
7692
+ async switchPossibleValuesToVariable(variableName) {
7693
+ await this.page.locator(".variable-toggle button").click();
7694
+ await this.page.locator(".ui-autocomplete-input").fill(variableName);
7695
+ await this.page.locator(".ui-menu-item-wrapper").filter({
7696
+ hasText: `${variableName}`
7697
+ }).click();
7698
+ }
7699
+ async selectVariableListboxTypeWithVariable(variableName, defaultValue, required) {
7700
+ await this.page.getByRole("combobox").selectOption("DropDownListBox");
7701
+ await this.page.locator(".variable-toggle button").click();
7702
+ await this.page.locator(".ui-autocomplete-input").fill(variableName);
7703
+ await this.page.locator(".ui-menu-item-wrapper").filter({
7704
+ hasText: `${variableName}`
7705
+ }).click();
7706
+ await this.page.locator(".variable-value select").type(defaultValue);
7707
+ if (required) await this.page.getByRole("checkbox").check();
7708
+ else await this.page.getByRole("checkbox").uncheck();
7709
+ }
7710
+ }
7711
+ class $fd4eef3ad2b2e612$var$ReleaseVariableModal extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
7712
+ constructor(page){
7713
+ super(page);
7714
+ this.dateUtil = new (0, $880df57ffbf6e614$export$9b575f14aa5e09a1)(page);
7715
+ }
7716
+ async expectValue(locators, expectFn) {
7717
+ const [index, locator] = await (0, $ef0df8ad8a777ce6$export$a0f926f04148e5d2)(locators);
7718
+ expectFn[index](locator);
7719
+ }
7720
+ async expectValueToBe(value) {
7721
+ await this.expectValue([
7722
+ this.page.locator("#modal .variable-value input"),
7723
+ this.page.locator("#modal .variable-value .field-readonly"),
7724
+ this.page.locator("#modal .variable-value .xl-map-string-string"),
7725
+ this.page.locator("#modal .variable-value .xl-list-display-mode .text-container")
7726
+ ], [
7727
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveValue(value),
7728
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value),
7729
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value),
7730
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toHaveText(value)
7731
+ ]);
7732
+ }
7733
+ async expectValueToContain(value) {
7734
+ await this.expectValue([
7735
+ this.page.locator("#modal .variable-value input"),
7736
+ this.page.locator("#modal .variable-value .field-readonly"),
7737
+ this.page.locator("#modal .variable-value .xl-map-string-string"),
7738
+ this.page.locator("#modal .variable-value .xl-list-display-mode")
7739
+ ], [
7740
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l.inputValue()).toContain(value),
7741
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value),
7742
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value),
7743
+ (l)=>(0, $kKeXs$playwrighttest.expect)(l).toContainText(value)
7744
+ ]);
7745
+ }
7746
+ async close() {
7747
+ await this.page.locator("#modal .modal-header button.close").click();
7748
+ }
7749
+ async expectPossibleValues(possiblevalue) {
7750
+ const listLocator = await this.page.locator(".editor .xl-list-row").allInnerTexts();
7751
+ if (possiblevalue instanceof Array) for (const value of possiblevalue)(0, $kKeXs$playwrighttest.expect)(listLocator).toContain(value);
7752
+ else (0, $kKeXs$playwrighttest.expect)(listLocator).toContain(possiblevalue);
7753
+ }
7754
+ async expectPossibleVariableValues(possiblevariablevalue) {
7755
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".variable-dropdown input")).toHaveValue(possiblevariablevalue);
7756
+ }
7757
+ async addPossibleValue(value) {
7758
+ if (value instanceof Array) for (const li of value){
7759
+ await this.page.locator(".xl-components-input-full input").fill(li);
7760
+ await this.page.getByRole("button", {
7761
+ name: "Add"
7762
+ }).click();
7763
+ }
7764
+ else {
7765
+ await this.page.locator(".xl-components-input-full input").fill(value);
7766
+ await this.page.getByRole("button", {
7767
+ name: "Add"
7768
+ }).click();
7769
+ }
7770
+ }
7771
+ async selectVariableValue(defaultValue) {
7772
+ await this.page.locator(".variable-value select").selectOption(defaultValue);
7773
+ }
7774
+ async save() {
7775
+ const saveButton = this.page.locator("#modal .modal-footer .save");
7776
+ await saveButton.scrollIntoViewIfNeeded();
7777
+ await saveButton.click({
7778
+ delay: 2000
7779
+ });
7780
+ // Expect is needed here to avoid flackiness on clicking save button on modal window
7781
+ await (0, $kKeXs$playwrighttest.expect)(saveButton).not.toBeVisible();
7782
+ }
7783
+ async createPossibleValuesVariable(variableName) {
7784
+ await this.page.locator(".variable-toggle button").click();
7785
+ await this.page.locator(".ui-autocomplete-input").fill(variableName);
7786
+ await this.page.locator(".ui-menu-item-wrapper").filter({
7787
+ hasText: `${variableName}`
7788
+ }).click();
7789
+ }
7790
+ async expectVariableValueToBe(value) {
7791
+ (0, $kKeXs$playwrighttest.expect)(await this.page.locator('.variable-value select option[selected="selected"]').textContent()).toBe(value);
7792
+ }
7793
+ async expectNoVariablesInList() {
7794
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByText("No variables defined.")).toBeVisible();
7795
+ }
7796
+ async expectNameInput(value) {
7797
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`#modal .variable-name input`)).toHaveValue(value);
7798
+ }
7799
+ async expectLabel(value) {
7800
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#modal .variable-label input")).toHaveValue(value);
7801
+ }
7802
+ async expectRequired(value) {
7803
+ if (value == true) await (0, $kKeXs$playwrighttest.expect)(this.page.locator('.form-group input[ng-model="var.requiresValue"]')).toBeChecked();
7804
+ else await (0, $kKeXs$playwrighttest.expect)(this.page.locator('.form-group input[ng-model="var.requiresValue"]')).not.toBeChecked();
7805
+ }
7806
+ async setDescription(description) {
7807
+ await this.page.locator(".variable-description input").click();
7808
+ await this.page.locator(".variable-description input").clear();
7809
+ await this.page.locator(".variable-description input").fill(description);
7810
+ }
7811
+ async setLabel(labelValue) {
7812
+ await this.page.locator(".variable-label input").fill(labelValue);
7813
+ }
7814
+ async setDate(date, monthYear) {
7815
+ await this.page.locator("#modal .date").click();
7816
+ await this.dateUtil.setDate(date, monthYear);
7817
+ }
7818
+ async setValue(value) {
7819
+ await this.page.locator(".variable-value input").fill(value);
7820
+ }
7821
+ }
7822
+ class $fd4eef3ad2b2e612$var$DeleteVariableModel extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
7823
+ constructor(page){
7824
+ super(page);
7825
+ this.model = new $fd4eef3ad2b2e612$var$ReleaseVariableModal(page);
7826
+ this.dateUtil = new (0, $880df57ffbf6e614$export$9b575f14aa5e09a1)(page);
7827
+ }
7828
+ async deleteVariable() {
7829
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("heading", {
7830
+ name: "Replace and delete"
7831
+ })).toBeVisible();
7832
+ await this.page.getByRole("button", {
7833
+ name: "Delete"
7834
+ }).click();
7835
+ }
7836
+ async replaceItWithVariable(variable) {
7837
+ await this.model.createPossibleValuesVariable(variable);
7838
+ }
7839
+ async replaceItwithValue(value) {
7840
+ await this.page.locator(".display").click();
7841
+ await this.page.getByLabel("*").fill(value);
7842
+ }
7843
+ async clickReplaceAndDelete() {
7844
+ await this.page.getByRole("button", {
7845
+ name: "Replace and delete"
7846
+ }).click();
7847
+ }
7848
+ async addValue(value) {
7849
+ await this.page.locator(".xl-components-input-full input").fill(value);
7850
+ await this.page.getByRole("button", {
7851
+ name: "Add"
7852
+ }).click();
7853
+ }
7854
+ async remove(value) {
7855
+ await this.page.locator("li").filter({
7856
+ hasText: value
7857
+ }).locator("i.close-icon").click();
7858
+ }
7859
+ async expectReplacementPromptDisplayed() {
7860
+ await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("heading", {
7861
+ name: "Replace and delete"
7862
+ })).toBeVisible();
7863
+ }
7864
+ async close() {
7865
+ await this.page.locator("#modal .modal-header button.close").click();
7866
+ }
7867
+ async removeItemOnSet(value) {
7868
+ await this.page.locator("tr").filter({
7869
+ hasText: value
7870
+ }).locator("i.close-icon").click();
7871
+ }
7872
+ async addValueForSet(key, value) {
7873
+ await this.page.locator(".input-key").fill(key);
7874
+ await this.page.locator(".input-value").fill(value);
7875
+ }
7876
+ async replaceWithIntegerValue(value) {
7877
+ await this.page.locator(".editable").fill(value);
7878
+ }
7879
+ async replaceForBooleanValue() {
7880
+ await this.page.locator(".editor input").click();
7881
+ }
7882
+ async deleteBySettingDate(date, monthYear) {
7883
+ await this.page.locator("#modal .date").click();
7884
+ await this.dateUtil.setDate(date, monthYear);
7885
+ }
7886
+ }
7887
+
7888
+
7889
+
7431
7890
 
7432
7891
 
7433
7892
 
@@ -9690,6 +10149,7 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
9690
10149
  this.header = new (0, $00fc48341ebf7de4$export$2fb4351c41ce6e7a)(page);
9691
10150
  this.managePluginsPage = new (0, $b4d98f757ef92467$export$7b434e00c788d0bf)(page);
9692
10151
  this.releasePage = new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(page);
10152
+ this.summaryPage = new (0, $fd3e87c08fb5976e$export$46146ef3ab8c339b)(page);
9693
10153
  this.settingsMenu = new (0, $7867194f18360347$export$1d7840d5cdc861d5)(page);
9694
10154
  this.systemSettingsPage = new (0, $dbc8f157e7b24b12$export$2edf430132ca35d0)(page);
9695
10155
  this.usersPage = new (0, $3ceab7c613cabfd6$export$107317390f5aa598)(page);
@@ -9700,8 +10160,10 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
9700
10160
  this.templateListPage = new (0, $8b6ce149dd48e48b$export$7e1d435fa474ee21)(page);
9701
10161
  this.personalSettingsPage = new (0, $010122e1d9b28b80$export$3cf9c90f870f31bd)(page);
9702
10162
  this.releaseCalendarPage = new (0, $a8855257f8bb2b12$export$43682cddead1dd78)(page);
9703
- this.releaseGanttPage = new (0, $e8395395d01b66bb$export$5a82be0a2a261cc6)(page);
10163
+ this.releaseGroupPage = new (0, $a6a3c1345fc4767e$export$b6fbc3e67030138f)(page);
10164
+ this.releaseGroupTimelinePage = new (0, $3fad6a9449b6416f$export$1a0994e9c202d529)(page);
9704
10165
  this.releaseListPage = new (0, $87643f2d97b0644e$export$a678525e79c4ccc4)(page);
10166
+ this.releaseGanttPage = new (0, $e8395395d01b66bb$export$5a82be0a2a261cc6)(page);
9705
10167
  this.rolesPage = new (0, $84dbf24c796d0540$export$7a5b979a220f477c)(page);
9706
10168
  this.util = new (0, $2c89ba54932fbba8$export$f8f26dd395d7e1bd)(page);
9707
10169
  this.workflowCatalogPage = new (0, $7bcc05352d6debcf$export$5628dfd1b9e94785)(page);
@@ -9722,7 +10184,7 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
9722
10184
  async openVariablesOnReleasePage(releaseId) {
9723
10185
  await this.page.goto(`./#/releases/${releaseId}/variables`);
9724
10186
  await this.page.waitForSelector("#release-variables");
9725
- return new (0, $59543fc69900e8db$export$f8e64fcf447db2bf)(this.page);
10187
+ return new (0, $fd4eef3ad2b2e612$export$a87f0ae8695e74be)(this.page);
9726
10188
  }
9727
10189
  async openRelease(id) {
9728
10190
  return this.openReleaseOrTemplate(id, true);
@@ -9742,11 +10204,6 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
9742
10204
  exact: true
9743
10205
  }).click();
9744
10206
  }
9745
- async gotoHomePageFromRelease() {
9746
- await this.page.getByRole("link", {
9747
- name: "Home"
9748
- }).click();
9749
- }
9750
10207
  async gotoFolderPage() {
9751
10208
  await this.page.locator("ul.side-nav li").getByLabel("Folders", {
9752
10209
  exact: true
@@ -9863,26 +10320,31 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
9863
10320
 
9864
10321
 
9865
10322
 
10323
+
9866
10324
  class $258749e0671c845a$export$f14c0e3f98d164c0 extends (0, $f8721861c660dd88$export$2b65d1d97338f32b) {
9867
10325
  /**
9868
10326
  * Login with username and password
9869
10327
  * @param userName
9870
10328
  * @param password
9871
10329
  */ async login(userName, password) {
9872
- await this.page.goto("./#/login");
9873
- await (0, $kKeXs$playwrighttest.expect)(this.page).toHaveTitle("Digital.ai Release");
9874
- await this.page.getByPlaceholder("User").fill(userName, {
9875
- timeout: 1000
9876
- });
9877
- await this.page.getByPlaceholder("Password").fill(password, {
9878
- timeout: 10000
9879
- });
10330
+ if (!$kKeXs$process.env.TEST_ENV) throw new Error("TEST_ENV is not defined. Aborting login.");
10331
+ const testEnv = $kKeXs$process.env.TEST_ENV;
10332
+ $kKeXs$process.stderr.write(`[UI Login Env:]\n` + ` TEST_ENV=${testEnv}\n`);
10333
+ await this.page.goto("./");
10334
+ if (testEnv === "saas") {
10335
+ const saasUsername = this.page.locator('input[name="username"]');
10336
+ await saasUsername.fill(userName);
10337
+ const saasPassword = this.page.locator('input[name="password"]');
10338
+ await saasPassword.fill(password);
10339
+ } else {
10340
+ const localUsername = this.page.getByPlaceholder("User");
10341
+ await localUsername.fill(userName);
10342
+ const localPassword = this.page.getByPlaceholder("Password");
10343
+ await localPassword.fill(password);
10344
+ }
9880
10345
  await this.page.getByRole("button", {
9881
- name: "Log in"
9882
- }).click({
9883
- timeout: 10000
9884
- });
9885
- await this.page.waitForTimeout(1000);
10346
+ name: /log in|sign in/i
10347
+ }).click();
9886
10348
  await this.closePendoModalWindow();
9887
10349
  }
9888
10350
  async loginWithoutReload(userName, password) {
@@ -10761,9 +11223,19 @@ const $8977f8672c5de0fa$export$45f0aca2596a2bb3 = function() {
10761
11223
 
10762
11224
 
10763
11225
 
11226
+
11227
+ var $6998c6a53a9eb4fa$require$Buffer = $kKeXs$buffer.Buffer;
10764
11228
  const $6998c6a53a9eb4fa$var$JIRA_ISSUE_API_URL = "https://digitalai.atlassian.net/rest/api/2/issue";
10765
- const $6998c6a53a9eb4fa$var$adminHeaders = {
10766
- Authorization: "Basic YWRtaW46YWRtaW4=",
11229
+ function $6998c6a53a9eb4fa$var$encodeBasicAuth() {
11230
+ const username = $kKeXs$process.env.TEST_USERNAME;
11231
+ const password = $kKeXs$process.env.TEST_PASSWORD;
11232
+ const environment = $kKeXs$process.env.TEST_ENV;
11233
+ $kKeXs$process.stderr.write(`[Fixtures Env:]\n` + ` TEST_ENV=${environment}\n`);
11234
+ if (!username || !password) throw new Error("Missing TEST_USERNAME or TEST_PASSWORD in environment variables");
11235
+ return $6998c6a53a9eb4fa$require$Buffer.from(`${username}:${password}`).toString("base64");
11236
+ }
11237
+ const $6998c6a53a9eb4fa$export$1d40aa9bc568f58d = {
11238
+ Authorization: `Basic ${$6998c6a53a9eb4fa$var$encodeBasicAuth()}`,
10767
11239
  Cookie: "XSRF-TOKEN=1;",
10768
11240
  "X-XSRF-TOKEN": "1"
10769
11241
  };
@@ -11245,24 +11717,24 @@ class $6998c6a53a9eb4fa$var$Fixtures {
11245
11717
  doPost(url, body) {
11246
11718
  return this.request.post(url, {
11247
11719
  data: body,
11248
- headers: $6998c6a53a9eb4fa$var$adminHeaders
11720
+ headers: $6998c6a53a9eb4fa$export$1d40aa9bc568f58d
11249
11721
  });
11250
11722
  }
11251
11723
  doPut(url, body) {
11252
11724
  return this.request.put(url, {
11253
11725
  data: body,
11254
- headers: $6998c6a53a9eb4fa$var$adminHeaders
11726
+ headers: $6998c6a53a9eb4fa$export$1d40aa9bc568f58d
11255
11727
  });
11256
11728
  }
11257
11729
  doGet(url) {
11258
11730
  return this.request.get(url, {
11259
- headers: $6998c6a53a9eb4fa$var$adminHeaders
11731
+ headers: $6998c6a53a9eb4fa$export$1d40aa9bc568f58d
11260
11732
  });
11261
11733
  }
11262
11734
  doDelete(url, body) {
11263
11735
  return this.request.delete(url, {
11264
11736
  data: body,
11265
- headers: $6998c6a53a9eb4fa$var$adminHeaders
11737
+ headers: $6998c6a53a9eb4fa$export$1d40aa9bc568f58d
11266
11738
  });
11267
11739
  }
11268
11740
  initDefaults(ci) {