Skip to content

Commit 7748f7b

Browse files
committed
Test delete end to end
1 parent c9620ad commit 7748f7b

1 file changed

Lines changed: 99 additions & 0 deletions

File tree

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
import { expect, Page, test } from "@playwright/test";
2+
import { navigateTo, suffixForProject } from "../utils/helpers";
3+
import { loginAsServerAdmin } from "../utils/authenticate";
4+
5+
const userLastName = "testdelete";
6+
7+
const userUUID = "seb-user-account-delete";
8+
9+
async function setupUserAccountsPage(page: Page, suffix: string) {
10+
await expect(page.getByTestId("userAccounts-list-container")).toBeVisible();
11+
12+
const searchFieldLocator = page
13+
.getByTestId("userAccounts-search-input")
14+
.getByRole("textbox");
15+
const searchButtonLocator = page.getByTestId(
16+
"userAccounts-searchIcon-button",
17+
);
18+
19+
const deleteButtonLocator = page.getByTestId(
20+
`userAccounts-delete-icon-seb-user-account-delete-${suffix}`,
21+
);
22+
23+
const deleteDialogLocator = page.getByTestId("userAccounts-delete-dialog");
24+
25+
const deleteDialogDeleteButtonLocator = page.getByTestId(
26+
"userAccounts-delete-confirm-button",
27+
);
28+
29+
return {
30+
searchFieldLocator,
31+
searchButtonLocator,
32+
deleteButtonLocator,
33+
deleteDialogLocator,
34+
deleteDialogDeleteButtonLocator,
35+
};
36+
}
37+
38+
test.describe("1.4.1 User Accounts - DELETE Remove", () => {
39+
test.beforeEach(async ({ page }) => {
40+
await loginAsServerAdmin(page);
41+
await navigateTo(page, "/user-accounts");
42+
});
43+
44+
test("A Success", async ({ page }, testInfo) => {
45+
const browserSuffix = suffixForProject(testInfo.project.name);
46+
const userLastNameWithBrowserSuffix =
47+
userLastName + "-" + browserSuffix;
48+
const userUUIDWithBrowserSuffix = userUUID + "-" + browserSuffix;
49+
50+
const deleteRegex = new RegExp(
51+
`/useraccount/${userUUIDWithBrowserSuffix}(?:$|\\?)`,
52+
"i",
53+
);
54+
55+
const {
56+
searchFieldLocator,
57+
searchButtonLocator,
58+
deleteButtonLocator,
59+
deleteDialogLocator,
60+
deleteDialogDeleteButtonLocator,
61+
} = await setupUserAccountsPage(page, browserSuffix);
62+
63+
await searchFieldLocator.fill(userLastNameWithBrowserSuffix);
64+
65+
await searchButtonLocator.click();
66+
67+
await expect(deleteButtonLocator).toBeVisible();
68+
await deleteButtonLocator.click();
69+
70+
await expect(deleteDialogLocator).toBeVisible();
71+
await expect(deleteDialogDeleteButtonLocator).toBeVisible();
72+
73+
await expect(deleteDialogDeleteButtonLocator).toHaveText("Delete");
74+
75+
const deleteRequestPromise = page.waitForRequest(
76+
(req) => req.method() === "DELETE" && deleteRegex.test(req.url()),
77+
);
78+
79+
const deleteResponsePromise = page.waitForResponse(
80+
(resp) =>
81+
resp.request().method() === "DELETE" &&
82+
deleteRegex.test(resp.url()),
83+
);
84+
85+
await deleteDialogDeleteButtonLocator.click();
86+
87+
await deleteDialogDeleteButtonLocator.click();
88+
89+
const deleteRequest = await deleteRequestPromise;
90+
const deleteResponse = await deleteResponsePromise;
91+
92+
expect(deleteRequest.method()).toBe("DELETE");
93+
expect(deleteRequest.url()).toMatch(deleteRegex);
94+
95+
expect(deleteResponse.url()).toMatch(deleteRegex);
96+
expect(deleteResponse.status()).toBe(200);
97+
expect(deleteResponse.ok()).toBeTruthy();
98+
});
99+
});

0 commit comments

Comments
 (0)