@digital-ai/devops-page-object-release 0.0.0-snapshot-20251121125952 → 0.0.0-snapshot-20251122175005

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,11 +1,11 @@
1
1
  # @digital-ai/devops-page-object-release
2
2
 
3
- ## 0.0.0-snapshot-20251121125952
3
+ ## 0.0.0-snapshot-20251122175005
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - 21ad43e: S-126861: Added page objects for template-flag-scenario conversion
8
7
  - 8fd6062: Corrected the User Filter placeholder to the new UI label change
8
+ - b99183c: S-126526: Added page object for edit-teams-and-permissions-scenario
9
9
 
10
10
  ## 0.0.92
11
11
 
package/dist/main.js CHANGED
@@ -1258,10 +1258,6 @@ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $e403098cd4f59faa$ex
1258
1258
  }).click();
1259
1259
  return new (0, $9b9a8c3da392d020$export$f43492e8ac3c566)(this.page);
1260
1260
  }
1261
- async expectReleaseFlagged(title, flag) {
1262
- const release = this.page.locator(`.release:has-text("${title}").flagged_${flag}`);
1263
- await (0, $kKeXs$playwrighttest.expect)(release).toHaveCount(1);
1264
- }
1265
1261
  async createNewRelease(releaseName, description) {
1266
1262
  await this.releaseCreatePage.setName(releaseName);
1267
1263
  await this.releaseCreatePage.setDescription(description);
@@ -5919,6 +5915,55 @@ class $e5c8dec182aa2e84$export$e2613a7eee3a1b1b extends (0, $f8721861c660dd88$ex
5919
5915
  });
5920
5916
  await tag.locator(".close-icon").click();
5921
5917
  }
5918
+ async expectPermissionReadOnly(permission, team, readOnly) {
5919
+ const rowLocator = this.page.locator(`table tr:has-text("${permission}")`);
5920
+ const tagLocator = rowLocator.locator(`.tag-label:has-text("${team}")`);
5921
+ if (readOnly) await (0, $kKeXs$playwrighttest.expect)(tagLocator).toBeVisible();
5922
+ else {
5923
+ const closeIconLocator = tagLocator.locator('xpath=following-sibling::*[contains(@class, "tag-close")]');
5924
+ await (0, $kKeXs$playwrighttest.expect)(closeIconLocator).toBeVisible();
5925
+ }
5926
+ }
5927
+ async expectTeamsNotToExist(teams, readOnly) {
5928
+ for (const team of teams){
5929
+ //const teamRow = this.page.locator(`table:first-of-type tr:has(td:has-text("${team}"))`);
5930
+ const teamRow = this.page.locator(`tr:has-text("${team}")`);
5931
+ if (readOnly) // Verify read-only team does NOT have a delete button
5932
+ await (0, $kKeXs$playwrighttest.expect)(teamRow.locator('.action-label:has-text("Delete")')).toHaveCount(0);
5933
+ else // For editable teams, make sure delete button exists
5934
+ await (0, $kKeXs$playwrighttest.expect)(teamRow.locator('.action-label:has-text("Delete")')).toHaveCount(1);
5935
+ }
5936
+ }
5937
+ async expectInheritTeamsDisabled() {
5938
+ const inheritCheckbox = this.page.locator(".inherit-checkbox input");
5939
+ await (0, $kKeXs$playwrighttest.expect)(inheritCheckbox).toBeVisible();
5940
+ await (0, $kKeXs$playwrighttest.expect)(inheritCheckbox).toBeDisabled();
5941
+ }
5942
+ async expectNewTeamButtonDisabled() {
5943
+ const addTeamButton = this.page.locator(".button-add-team");
5944
+ await (0, $kKeXs$playwrighttest.expect)(addTeamButton).toBeDisabled();
5945
+ }
5946
+ async expectRemoveTeamButtonNotToExist() {
5947
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator("#teams-permissions-table table tr .action-label")).toHaveCount(0);
5948
+ return this;
5949
+ }
5950
+ async expectSaveButtonDisabled() {
5951
+ const saveButton = this.page.getByRole("button", {
5952
+ name: "Save"
5953
+ });
5954
+ await (0, $kKeXs$playwrighttest.expect)(saveButton).toBeVisible();
5955
+ await (0, $kKeXs$playwrighttest.expect)(saveButton).toBeDisabled();
5956
+ return this;
5957
+ }
5958
+ async expectTeamsReadOnly(teams, readOnly) {
5959
+ for (const team of teams){
5960
+ const teamRow = this.page.locator("table").first().locator("tr", {
5961
+ hasText: team
5962
+ });
5963
+ await (0, $kKeXs$playwrighttest.expect)(teamRow.locator(".tag-label + .tag-close")).toHaveCount(readOnly ? 0 : 1);
5964
+ }
5965
+ return this;
5966
+ }
5922
5967
  async expectPermissionNotToExist(permission, team) {
5923
5968
  const row = this.page.locator("table tr", {
5924
5969
  hasText: permission
@@ -6032,6 +6077,19 @@ class $9058d40a81bdb1f5$export$b453f08936c58edb extends (0, $f8721861c660dd88$ex
6032
6077
  await this.util.openSideNavMenu("Teams & permissions");
6033
6078
  await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("breadcrumb").getByText("Teams & permissions")).toBeVisible();
6034
6079
  }
6080
+ async clickOnFolderRowAction(folderName, actionLabel) {
6081
+ const folderRow = this.page.locator(`.folder-list-row-wrapper:has-text("${folderName}")`);
6082
+ await folderRow.hover();
6083
+ const optionsWrapper = folderRow.locator(".folder-options-wrapper");
6084
+ const actionLink = optionsWrapper.locator(`.flatten-links a:has-text("${actionLabel}")`);
6085
+ await actionLink.click();
6086
+ }
6087
+ async createNewFolderFromRowAction(folderName, subFolderName) {
6088
+ await this.clickOnFolderRowAction(folderName, "Add folder");
6089
+ const modal = this.page.locator(".xl-react-modal-content");
6090
+ await modal.locator("input").fill(subFolderName);
6091
+ await modal.locator(".button.primary").click();
6092
+ }
6035
6093
  async expectReleaseGroupisDisplayed(title) {
6036
6094
  //await this.page.locator(`.fc-list-item-title-wrapper .fc-list-item-title strong:text-is('${title}`).isVisible()
6037
6095
  await this.page.waitForSelector(`.fc-list-item-title-wrapper .fc-list-item-title strong:text-is('${title}')`);
@@ -10090,6 +10148,19 @@ class $4ef41cf96a5fae4c$export$b8a61e5c71402559 {
10090
10148
  await this.page.waitForSelector("#releases-content");
10091
10149
  return new (0, $9058d40a81bdb1f5$export$b453f08936c58edb)(this.page);
10092
10150
  }
10151
+ async openFolderByName(folderName) {
10152
+ const folder = this.page.getByTitle(folderName);
10153
+ await (0, $kKeXs$playwrighttest.expect)(folder).toBeVisible({
10154
+ timeout: 5000
10155
+ });
10156
+ await folder.click();
10157
+ await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".MuiBreadcrumbs-li").getByRole("link", {
10158
+ name: folderName
10159
+ })).toBeVisible({
10160
+ timeout: 5000
10161
+ });
10162
+ return this;
10163
+ }
10093
10164
  async openProfilePage() {
10094
10165
  await this.page.goto(`./#/profile`);
10095
10166
  return new (0, $010122e1d9b28b80$export$3cf9c90f870f31bd)(this.page);