Skip to content

Commit c9620ad

Browse files
committed
Test deactivate end 2 end
1 parent 14d2749 commit c9620ad

2 files changed

Lines changed: 98 additions & 3 deletions

File tree

client/tests/e2e/1-user-account/3.2-update-activate.spec.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ async function setupUserAccountsPage(page: Page, suffix: string) {
1515
"userAccounts-searchIcon-button",
1616
);
1717

18-
//this needs suffix
1918
const activateButtonLocator = page.getByTestId(
2019
`userAccounts-status-chip-seb-inst-admin-inactive-${suffix}`,
2120
);
@@ -85,15 +84,13 @@ test.describe("1.3.2 User Accounts - UPDATE Activate", () => {
8584
const activateRequest = await activateRequestPromise;
8685
const activateResponse = await activateResponsePromise;
8786

88-
//this needs suffix
8987
expect(activateRequest.method()).toBe("POST");
9088
expect(activateRequest.url()).toMatch(activateRegex);
9189

9290
expect(activateResponse.url()).toMatch(activateRegex);
9391
expect(activateResponse.status()).toBe(200);
9492
expect(activateResponse.ok()).toBeTruthy();
9593

96-
// 8. verify the v-chip text is now "Active"
9794
await expect(activateButtonLocator).toHaveText("Active");
9895
});
9996
});
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
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 = "testactive";
6+
const userUUID = "seb-inst-admin-active";
7+
8+
async function setupUserAccountsPage(page: Page, suffix: string) {
9+
await expect(page.getByTestId("userAccounts-list-container")).toBeVisible();
10+
11+
const searchFieldLocator = page
12+
.getByTestId("userAccounts-search-input")
13+
.getByRole("textbox");
14+
const searchButtonLocator = page.getByTestId(
15+
"userAccounts-searchIcon-button",
16+
);
17+
18+
const activateButtonLocator = page.getByTestId(
19+
`userAccounts-status-chip-seb-inst-admin-active-${suffix}`,
20+
);
21+
const statusDialogLocator = page.getByTestId("userAccounts-status-dialog");
22+
const statusDialogActivateButtonLocator = page.getByTestId(
23+
"userAccounts-status-confirm-button",
24+
);
25+
26+
return {
27+
searchFieldLocator,
28+
searchButtonLocator,
29+
activateButtonLocator,
30+
statusDialogLocator,
31+
statusDialogActivateButtonLocator,
32+
};
33+
}
34+
35+
test.describe("1.3.3 User Accounts - UPDATE Deactivate", () => {
36+
test.beforeEach(async ({ page }) => {
37+
await loginAsServerAdmin(page);
38+
await navigateTo(page, "/user-accounts");
39+
});
40+
41+
test("A Success", async ({ page }, testInfo) => {
42+
const browserSuffix = suffixForProject(testInfo.project.name);
43+
const userLastNameWithBrowserSuffix =
44+
userLastName + "-" + browserSuffix;
45+
const userUUIDWithBrowserSuffix = userUUID + "-" + browserSuffix;
46+
const deactivateRegex = new RegExp(
47+
`/useraccount/${userUUIDWithBrowserSuffix}/inactive(?:\\?|$)`,
48+
"i",
49+
);
50+
51+
const {
52+
searchFieldLocator,
53+
searchButtonLocator,
54+
activateButtonLocator,
55+
statusDialogLocator,
56+
statusDialogActivateButtonLocator,
57+
} = await setupUserAccountsPage(page, browserSuffix);
58+
59+
await searchFieldLocator.fill(userLastNameWithBrowserSuffix);
60+
61+
await searchButtonLocator.click();
62+
63+
await expect(activateButtonLocator).toBeVisible();
64+
await expect(activateButtonLocator).toHaveText("Active");
65+
66+
await activateButtonLocator.click();
67+
68+
await expect(statusDialogLocator).toBeVisible();
69+
70+
await expect(statusDialogActivateButtonLocator).toHaveText(
71+
"Deactivate",
72+
);
73+
74+
const activateRequestPromise = page.waitForRequest(
75+
(req) => req.method() === "POST" && deactivateRegex.test(req.url()),
76+
);
77+
78+
const activateResponsePromise = page.waitForResponse(
79+
(resp) =>
80+
resp.request().method() === "POST" &&
81+
deactivateRegex.test(resp.url()),
82+
);
83+
84+
await statusDialogActivateButtonLocator.click();
85+
86+
const activateRequest = await activateRequestPromise;
87+
const activateResponse = await activateResponsePromise;
88+
89+
expect(activateRequest.method()).toBe("POST");
90+
expect(activateRequest.url()).toMatch(deactivateRegex);
91+
92+
expect(activateResponse.url()).toMatch(deactivateRegex);
93+
expect(activateResponse.status()).toBe(200);
94+
expect(activateResponse.ok()).toBeTruthy();
95+
96+
await expect(activateButtonLocator).toHaveText("Inactive");
97+
});
98+
});

0 commit comments

Comments
 (0)