Skip to content

Commit 106abd4

Browse files
committed
add a basic e2e test for external membership management
1 parent 50e2dda commit 106abd4

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { expect } from "@playwright/test";
2+
import { test } from "./base.js";
3+
import { describe } from "node:test";
4+
import { randomUUID } from "crypto";
5+
6+
describe("External Membership tests", () => {
7+
test("A user can create, modify, and delete external memberships", async ({
8+
page,
9+
becomeUser,
10+
}) => {
11+
const uuid = `e2e-${randomUUID()}`;
12+
await becomeUser(page);
13+
await page.locator("a").filter({ hasText: "External Membership" }).click();
14+
await page.getByRole("button", { name: "New List" }).click();
15+
await page.getByRole("textbox", { name: "New List ID" }).fill(uuid);
16+
await page.getByRole("textbox", { name: "Initial Member NetID" }).click();
17+
await page
18+
.getByRole("textbox", { name: "Initial Member NetID" })
19+
.fill("corete5");
20+
await page.getByRole("button", { name: "Create List" }).click();
21+
await expect(page.getByText("corete5")).toBeVisible();
22+
await expect(page.locator("tbody")).toContainText("corete5");
23+
await expect(page.locator("tbody")).toContainText("Active");
24+
await expect(page.getByRole("main")).toContainText("Found 1 member.");
25+
await page.getByRole("button", { name: "Replace List" }).click();
26+
await page
27+
.getByRole("textbox", { name: "jdoe2 [email protected]" })
28+
.fill("corete5\ncorete6");
29+
await page.getByRole("button", { name: "Compute Changes" }).click();
30+
await expect(page.locator("tbody")).toContainText("corete6");
31+
await expect(page.locator("tbody")).toContainText("Queued for addition");
32+
await expect(page.locator("tbody")).toContainText("Cancel Add");
33+
await page
34+
.getByRole("button", { name: "Save Changes (1 Additions, 0" })
35+
.click();
36+
await page.getByRole("button", { name: "Cancel", exact: true }).click();
37+
await expect(page.getByRole("main")).toContainText(
38+
"Save Changes (1 Additions, 0 Removals)",
39+
);
40+
await page
41+
.getByRole("button", { name: "Save Changes (1 Additions, 0" })
42+
.click();
43+
await page.getByRole("button", { name: "Confirm and Save" }).click();
44+
await page
45+
.getByRole("row", { name: "CO corete5 Active Remove" })
46+
.getByRole("button")
47+
.click();
48+
await page.getByRole("button", { name: "Remove" }).click();
49+
await page
50+
.getByRole("button", { name: "Save Changes (0 Additions, 2" })
51+
.click();
52+
await page.getByRole("button", { name: "Confirm and Save" }).click();
53+
await expect(page.getByText("Member list has been updated.")).toBeVisible();
54+
await page.reload();
55+
await expect(
56+
page.getByText("Manage External Membership Lists"),
57+
).toBeVisible();
58+
await page.getByPlaceholder("Pick a list to manage").click();
59+
await expect(page.getByText(uuid)).not.toBeVisible();
60+
await page.getByText("acmlivetesting").click();
61+
await expect(page.getByText("acmtest2")).toBeVisible();
62+
});
63+
});

0 commit comments

Comments
 (0)