@digital-ai/devops-page-object-release 0.0.67 → 0.0.69
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 +13 -0
- package/dist/main.js +149 -6
- package/dist/main.js.map +1 -1
- package/dist/module.js +149 -6
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +40 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @digital-ai/devops-page-object-release
|
|
2
2
|
|
|
3
|
+
## 0.0.69
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8a33ccd: S-122054: page-objects updated for delivery-flow-stage-scenario
|
|
8
|
+
- cc89660: S-122814: Migrated create from scratch scenarios in playwright
|
|
9
|
+
|
|
10
|
+
## 0.0.68
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- fc8b418: S-122005: Sanity flaky script fixes
|
|
15
|
+
|
|
3
16
|
## 0.0.67
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/main.js
CHANGED
|
@@ -984,6 +984,10 @@ class $3d3f3946c54f5897$export$34addcca3f0ae43f extends (0, $f8721861c660dd88$ex
|
|
|
984
984
|
exact: true
|
|
985
985
|
}).click();
|
|
986
986
|
}
|
|
987
|
+
async setOwner(ownerName) {
|
|
988
|
+
await this.page.locator(".release-owner").click();
|
|
989
|
+
await this.page.locator('input[name="owner"]').fill(ownerName);
|
|
990
|
+
}
|
|
987
991
|
async create() {
|
|
988
992
|
await this.page.getByRole("button", {
|
|
989
993
|
name: "Create"
|
|
@@ -1057,6 +1061,9 @@ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$ex
|
|
|
1057
1061
|
constructor(page){
|
|
1058
1062
|
super(page);
|
|
1059
1063
|
this.releaseCreatePage = new (0, $3d3f3946c54f5897$export$34addcca3f0ae43f)(page);
|
|
1064
|
+
this.buttonNewRelease = page.locator(".action-toolbar-actions button").filter({
|
|
1065
|
+
hasText: "New release"
|
|
1066
|
+
});
|
|
1060
1067
|
}
|
|
1061
1068
|
async expectNumberOfReleases(releaseTitle, amount) {
|
|
1062
1069
|
await this.filterReleaseByTitle(releaseTitle);
|
|
@@ -1113,10 +1120,18 @@ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$ex
|
|
|
1113
1120
|
});
|
|
1114
1121
|
await (0, $kKeXs$playwrighttest.expect)(releaseStatus).toBeVisible();
|
|
1115
1122
|
}
|
|
1123
|
+
async expectRedirectToReleasesList() {
|
|
1124
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("breadcrumb").getByText("Releases")).toBeVisible();
|
|
1125
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".release-list")).toBeVisible();
|
|
1126
|
+
}
|
|
1116
1127
|
async filterReleaseByAllStatus() {
|
|
1117
1128
|
await this.page.locator(".ci-status .remaining-tags").getByText("more").click();
|
|
1118
1129
|
await this.page.locator(".ci-status .xl-react-link").getByText("Select all").click();
|
|
1119
1130
|
}
|
|
1131
|
+
async filterReleaseByStatus(release_status) {
|
|
1132
|
+
await this.page.locator(".react-tagsinput-wrapper .remaining-tags").click();
|
|
1133
|
+
await this.page.getByTitle(release_status).locator("i").first().click();
|
|
1134
|
+
}
|
|
1120
1135
|
async openReleaseByName(releaseTitle) {
|
|
1121
1136
|
await this.page.locator(".release-line .row-wrapper .release-title-wrapper a", {
|
|
1122
1137
|
hasText: releaseTitle
|
|
@@ -1158,6 +1173,12 @@ class $87643f2d97b0644e$export$a678525e79c4ccc4 extends (0, $f8721861c660dd88$ex
|
|
|
1158
1173
|
await this.releaseCreatePage.create();
|
|
1159
1174
|
await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("breadcrumb").getByText("Flow")).toBeVisible();
|
|
1160
1175
|
}
|
|
1176
|
+
async createNewReleaseWithOwner(releaseName, description, ownerName) {
|
|
1177
|
+
await this.releaseCreatePage.setName(releaseName);
|
|
1178
|
+
await this.releaseCreatePage.setDescription(description);
|
|
1179
|
+
await this.releaseCreatePage.setOwner(ownerName);
|
|
1180
|
+
await this.releaseCreatePage.create();
|
|
1181
|
+
}
|
|
1161
1182
|
async gotoListView() {
|
|
1162
1183
|
await this.page.getByRole("tab", {
|
|
1163
1184
|
name: "release icon List"
|
|
@@ -3771,6 +3792,10 @@ class $d330a7d6f7926d53$export$3bc3e140e0dcb075 extends (0, $f8721861c660dd88$ex
|
|
|
3771
3792
|
async expectSaveButtonDisabled() {
|
|
3772
3793
|
(0, $kKeXs$playwrighttest.expect)(this.saveButton).toBeDisabled();
|
|
3773
3794
|
}
|
|
3795
|
+
async expectTeamExists(teamName) {
|
|
3796
|
+
const teamLocator = this.page.getByText(teamName).first();
|
|
3797
|
+
await (0, $kKeXs$playwrighttest.expect)(teamLocator).toBeVisible();
|
|
3798
|
+
}
|
|
3774
3799
|
}
|
|
3775
3800
|
|
|
3776
3801
|
|
|
@@ -5071,6 +5096,99 @@ class $b2d8d8d82fc8146c$export$eace2be4de1d3377 extends (0, $f8721861c660dd88$ex
|
|
|
5071
5096
|
async expectDeliveryDisplayed(deliveryName) {
|
|
5072
5097
|
(0, $kKeXs$playwrighttest.expect)(await this.page.locator(".fc-list-item-title").textContent()).toContain(deliveryName);
|
|
5073
5098
|
}
|
|
5099
|
+
async openDeliveries() {
|
|
5100
|
+
await this.page.goto("./#/deliveries");
|
|
5101
|
+
return;
|
|
5102
|
+
}
|
|
5103
|
+
async resetFilter() {
|
|
5104
|
+
await Promise.all([
|
|
5105
|
+
this.page.waitForResponse((r)=>r.url().includes("/api/v1/deliveries/search")),
|
|
5106
|
+
this.page.locator("navigation-sidebar, .navigation-sidebar").locator("li", {
|
|
5107
|
+
hasText: "Deliveries"
|
|
5108
|
+
}).click()
|
|
5109
|
+
]);
|
|
5110
|
+
const clearAllLink = this.page.locator('a.xl-react-link:has-text("Clear all")');
|
|
5111
|
+
if (await clearAllLink.isVisible() && !await clearAllLink.isDisabled()) await Promise.all([
|
|
5112
|
+
this.page.waitForResponse((r)=>r.url().includes("/api/v1/deliveries/search")),
|
|
5113
|
+
clearAllLink.click()
|
|
5114
|
+
]);
|
|
5115
|
+
await this.page.locator(".xl-react-components-input-full:visible").first().click();
|
|
5116
|
+
const input = this.page.locator(".react-tagsinput-input");
|
|
5117
|
+
await input.fill("In progress");
|
|
5118
|
+
const inputCheckbox = this.page.locator('[title="In progress"] input[type="checkbox"]');
|
|
5119
|
+
if (!await inputCheckbox.isChecked()) await Promise.all([
|
|
5120
|
+
this.page.waitForResponse((r)=>r.url().includes("/api/v1/deliveries/search")),
|
|
5121
|
+
this.page.locator('[title="In progress"] .checkbox').click()
|
|
5122
|
+
]);
|
|
5123
|
+
await this.setOrderBy("Start date");
|
|
5124
|
+
await this.page.waitForSelector(".fc-list-loaded", {
|
|
5125
|
+
state: "visible"
|
|
5126
|
+
});
|
|
5127
|
+
}
|
|
5128
|
+
async setOrderBy(orderBy) {
|
|
5129
|
+
await this.page.locator(".order-by-filter .btn:first-child").click();
|
|
5130
|
+
await this.page.locator(`.order-by-filter .bootstrap-link`, {
|
|
5131
|
+
hasText: orderBy
|
|
5132
|
+
}).click();
|
|
5133
|
+
await this.page.locator(".order-by-filter .btn:first-child").click();
|
|
5134
|
+
await this.page.waitForSelector(".fc-list-loaded", {
|
|
5135
|
+
state: "visible"
|
|
5136
|
+
});
|
|
5137
|
+
}
|
|
5138
|
+
async openDeliveryFlow(title) {
|
|
5139
|
+
await this.filterDeliveryByName(title);
|
|
5140
|
+
await this.page.locator("xlr-delivery-row, .delivery-row").filter({
|
|
5141
|
+
hasText: title
|
|
5142
|
+
}).getByRole("link").first().click();
|
|
5143
|
+
}
|
|
5144
|
+
async completeStage(stageTitle, trackedItems = []) {
|
|
5145
|
+
const popup = this.page.locator(`[data-cy='popup-${stageTitle}']`);
|
|
5146
|
+
await popup.click();
|
|
5147
|
+
const popover = this.page.locator(".ant-popover:not(.ant-popover-hidden)");
|
|
5148
|
+
const completeOption = popover.locator('a:text("Complete")');
|
|
5149
|
+
await completeOption.click();
|
|
5150
|
+
if (trackedItems.length > 0) {
|
|
5151
|
+
const trackedRows = this.page.locator(".tracked-item-row");
|
|
5152
|
+
await (0, $kKeXs$playwrighttest.expect)(trackedRows).toHaveCount(trackedItems.length);
|
|
5153
|
+
for (const item of trackedItems)await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.tracked-item-row:has-text("${item}")`)).toBeVisible();
|
|
5154
|
+
}
|
|
5155
|
+
const confirmButton = this.page.locator('.confirmation-dialog button:text("Complete")');
|
|
5156
|
+
await confirmButton.click();
|
|
5157
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(`.label-completed:has-text("Completed")`)).toBeVisible();
|
|
5158
|
+
return this;
|
|
5159
|
+
}
|
|
5160
|
+
async reopenStage(stageTitle) {
|
|
5161
|
+
const popup = this.page.locator(`[data-cy='popup-${stageTitle}']`);
|
|
5162
|
+
await popup.click();
|
|
5163
|
+
const popover = this.page.locator(".ant-popover:not(.ant-popover-hidden)");
|
|
5164
|
+
await popover.locator('a:text("Reopen")').click();
|
|
5165
|
+
await this.page.locator('.confirmation-dialog button:text("Reopen")').click();
|
|
5166
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator('.label-completed:has-text("Completed")')).not.toBeVisible();
|
|
5167
|
+
return this;
|
|
5168
|
+
}
|
|
5169
|
+
async verifyStageContextMenuIsPresent(titles) {
|
|
5170
|
+
for (const title of titles){
|
|
5171
|
+
const locator = this.page.locator(`[data-cy='popup-${title}']`);
|
|
5172
|
+
await (0, $kKeXs$playwrighttest.expect)(locator).toHaveCount(1);
|
|
5173
|
+
}
|
|
5174
|
+
return;
|
|
5175
|
+
}
|
|
5176
|
+
async openFolderPath(folderPath) {
|
|
5177
|
+
await this.page.goto(`./#/folders/${encodeURIComponent(folderPath)}/releases`);
|
|
5178
|
+
await this.page.waitForSelector(".folder-content, .folder-view", {
|
|
5179
|
+
state: "visible"
|
|
5180
|
+
});
|
|
5181
|
+
return;
|
|
5182
|
+
}
|
|
5183
|
+
async openDeliveryFromFolder(title) {
|
|
5184
|
+
await this.page.locator("xlr-delivery-row, .release-row").filter({
|
|
5185
|
+
hasText: title
|
|
5186
|
+
}).getByRole("link").first().click();
|
|
5187
|
+
await this.page.waitForSelector(".delivery-flow, .flow-container", {
|
|
5188
|
+
state: "visible"
|
|
5189
|
+
});
|
|
5190
|
+
return;
|
|
5191
|
+
}
|
|
5074
5192
|
}
|
|
5075
5193
|
|
|
5076
5194
|
|
|
@@ -5123,6 +5241,8 @@ class $0767ec703ce1f9a5$export$572f40d328c1d028 extends (0, $f8721861c660dd88$ex
|
|
|
5123
5241
|
await this.page.locator("#title").click();
|
|
5124
5242
|
await this.page.locator("#title").clear();
|
|
5125
5243
|
await this.page.locator("#title").fill(newGroupName);
|
|
5244
|
+
await this.page.locator(".modal-footer .button.save").click();
|
|
5245
|
+
await this.expectSuccessMessageOnUpdatingGroup();
|
|
5126
5246
|
}
|
|
5127
5247
|
async enterGroupName(groupName) {
|
|
5128
5248
|
await this.page.locator("#title").click();
|
|
@@ -5150,18 +5270,25 @@ class $0767ec703ce1f9a5$export$572f40d328c1d028 extends (0, $f8721861c660dd88$ex
|
|
|
5150
5270
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".success").filter({
|
|
5151
5271
|
hasText: "Created release group successfully"
|
|
5152
5272
|
})).toBeVisible();
|
|
5273
|
+
await this.closeNotificationBanner();
|
|
5153
5274
|
}
|
|
5154
5275
|
async expectSuccessMessageOnAddingReleaseToGroup() {
|
|
5155
5276
|
await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("success")).toBeVisible();
|
|
5156
5277
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".success").filter({
|
|
5157
5278
|
hasText: "Added release to release group successfully"
|
|
5158
5279
|
})).toBeVisible();
|
|
5280
|
+
await this.closeNotificationBanner();
|
|
5159
5281
|
}
|
|
5160
5282
|
async expectSuccessMessageOnUpdatingGroup() {
|
|
5161
5283
|
await (0, $kKeXs$playwrighttest.expect)(this.page.getByLabel("success")).toBeVisible();
|
|
5162
5284
|
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".success").filter({
|
|
5163
5285
|
hasText: "Updated release group successfully"
|
|
5164
5286
|
})).toBeVisible();
|
|
5287
|
+
await this.closeNotificationBanner();
|
|
5288
|
+
}
|
|
5289
|
+
async closeNotificationBanner() {
|
|
5290
|
+
const closeIcon = this.page.locator(".dot-alert-banner").getByTestId(`CloseIcon`);
|
|
5291
|
+
if (await closeIcon.isVisible()) await closeIcon.click();
|
|
5165
5292
|
}
|
|
5166
5293
|
async searchReleaseGroupByTitle(title) {
|
|
5167
5294
|
await this.page.getByPlaceholder("Search for groups...", {
|
|
@@ -5182,6 +5309,10 @@ class $0767ec703ce1f9a5$export$572f40d328c1d028 extends (0, $f8721861c660dd88$ex
|
|
|
5182
5309
|
await this.page.getByRole("button", {
|
|
5183
5310
|
name: "Delete"
|
|
5184
5311
|
}).click();
|
|
5312
|
+
await (0, $kKeXs$playwrighttest.expect)(this.page.locator(".success").filter({
|
|
5313
|
+
hasText: "Deleted release group successfully"
|
|
5314
|
+
})).toBeVisible();
|
|
5315
|
+
await this.closeNotificationBanner();
|
|
5185
5316
|
}
|
|
5186
5317
|
async clickReleaseGroupEdit(title) {
|
|
5187
5318
|
await this.page.locator(".fc-list-item-line").filter({
|
|
@@ -5232,7 +5363,9 @@ class $ceb2e9e08e1837c2$export$9b9454a7f137e99b extends (0, $f8721861c660dd88$ex
|
|
|
5232
5363
|
this.addDescription = page.getByPlaceholder("Set description...");
|
|
5233
5364
|
}
|
|
5234
5365
|
async clickNewDeliveryPattern() {
|
|
5235
|
-
await this.page.
|
|
5366
|
+
await this.page.getByRole("button", {
|
|
5367
|
+
name: "New delivery pattern"
|
|
5368
|
+
}).click();
|
|
5236
5369
|
await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("heading", {
|
|
5237
5370
|
name: "Create delivery pattern"
|
|
5238
5371
|
})).toBeVisible();
|
|
@@ -5541,8 +5674,9 @@ class $9058d40a81bdb1f5$export$b453f08936c58edb extends (0, $f8721861c660dd88$ex
|
|
|
5541
5674
|
name: existingFolderName
|
|
5542
5675
|
}).hover();
|
|
5543
5676
|
await this.clickFolderOptions(existingFolderName, "edit");
|
|
5544
|
-
await this.page.
|
|
5545
|
-
|
|
5677
|
+
await this.page.getByRole("tab", {
|
|
5678
|
+
name: existingFolderName
|
|
5679
|
+
}).getByRole("textbox").fill(newFolderName);
|
|
5546
5680
|
await this.page.keyboard.press("Enter");
|
|
5547
5681
|
await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("link", {
|
|
5548
5682
|
name: newFolderName
|
|
@@ -6357,8 +6491,12 @@ class $3ceab7c613cabfd6$export$107317390f5aa598 extends (0, $f8721861c660dd88$ex
|
|
|
6357
6491
|
async sortByColumn(columnName, columnIndex) {
|
|
6358
6492
|
const table = this.page.getByTestId("users-table");
|
|
6359
6493
|
const column = table.locator(`th[title="${columnName}"]`);
|
|
6360
|
-
const
|
|
6361
|
-
|
|
6494
|
+
const columnClick = this.page.getByRole("button", {
|
|
6495
|
+
name: columnName,
|
|
6496
|
+
exact: true
|
|
6497
|
+
});
|
|
6498
|
+
const originalData = await table.locator(`tr td:nth-child(${columnIndex})`).allTextContents();
|
|
6499
|
+
await columnClick.click();
|
|
6362
6500
|
const sort = await column.getAttribute("aria-sort");
|
|
6363
6501
|
if (sort == "ascending") {
|
|
6364
6502
|
const data = await table.locator(`td:nth-child(${columnIndex})`).allTextContents();
|
|
@@ -6367,7 +6505,9 @@ class $3ceab7c613cabfd6$export$107317390f5aa598 extends (0, $f8721861c660dd88$ex
|
|
|
6367
6505
|
}
|
|
6368
6506
|
if (sort == "descending") {
|
|
6369
6507
|
const data = await table.locator(`td:nth-child(${columnIndex})`).allTextContents();
|
|
6370
|
-
(0, $kKeXs$playwrighttest.expect)(data).toEqual(
|
|
6508
|
+
(0, $kKeXs$playwrighttest.expect)(data).toEqual([
|
|
6509
|
+
...data
|
|
6510
|
+
].sort((a, b)=>a.localeCompare(b)));
|
|
6371
6511
|
}
|
|
6372
6512
|
return this;
|
|
6373
6513
|
}
|
|
@@ -8174,6 +8314,9 @@ class $8b6ce149dd48e48b$export$7e1d435fa474ee21 extends (0, $f8721861c660dd88$ex
|
|
|
8174
8314
|
await (0, $kKeXs$playwrighttest.expect)(this.page.getByRole("button", {
|
|
8175
8315
|
name: "Close"
|
|
8176
8316
|
})).toBeVisible();
|
|
8317
|
+
await this.page.getByRole("button", {
|
|
8318
|
+
name: "Close"
|
|
8319
|
+
}).click();
|
|
8177
8320
|
}
|
|
8178
8321
|
async expectTemplateVisible(title, expected = true) {
|
|
8179
8322
|
if (expected) {
|