forked from baron/baron-sso
chore: snapshot local state before dev merge
This commit is contained in:
@@ -527,6 +527,93 @@ test.describe("Tenants Management", () => {
|
||||
);
|
||||
});
|
||||
|
||||
test("should bulk update selected tenant status type and visibility", async ({
|
||||
page,
|
||||
}) => {
|
||||
await page.setViewportSize({ width: 1100, height: 760 });
|
||||
const updatePayloads: Record<string, unknown>[] = [];
|
||||
|
||||
await page.route("**/api/v1/admin/tenants**", async (route) => {
|
||||
const request = route.request();
|
||||
const url = new URL(request.url());
|
||||
|
||||
if (request.method() === "PUT") {
|
||||
updatePayloads.push(request.postDataJSON());
|
||||
return route.fulfill({
|
||||
json: {
|
||||
id: url.pathname.split("/").at(-1),
|
||||
name: "Updated Tenant",
|
||||
slug: "updated-tenant",
|
||||
status: "inactive",
|
||||
type: "ORGANIZATION",
|
||||
config: { visibility: "public" },
|
||||
},
|
||||
headers: { "Access-Control-Allow-Origin": "*" },
|
||||
});
|
||||
}
|
||||
|
||||
if (request.method() !== "GET") {
|
||||
return route.continue();
|
||||
}
|
||||
|
||||
return route.fulfill({
|
||||
json: {
|
||||
items: [
|
||||
{
|
||||
id: "tenant-a",
|
||||
name: "Tenant A",
|
||||
slug: "tenant-a",
|
||||
status: "active",
|
||||
type: "COMPANY",
|
||||
config: { visibility: "internal" },
|
||||
updatedAt: new Date().toISOString(),
|
||||
},
|
||||
{
|
||||
id: "tenant-b",
|
||||
name: "Tenant B",
|
||||
slug: "tenant-b",
|
||||
status: "active",
|
||||
type: "COMPANY",
|
||||
config: { visibility: "internal" },
|
||||
updatedAt: new Date().toISOString(),
|
||||
},
|
||||
],
|
||||
total: 2,
|
||||
limit: 500,
|
||||
offset: 0,
|
||||
},
|
||||
headers: { "Access-Control-Allow-Origin": "*" },
|
||||
});
|
||||
});
|
||||
|
||||
await page.goto("/tenants");
|
||||
|
||||
for (const tenantId of ["tenant-a", "tenant-b"]) {
|
||||
await page
|
||||
.getByTestId(`tenant-internal-id-${tenantId}`)
|
||||
.locator("xpath=ancestor::tr")
|
||||
.getByRole("checkbox")
|
||||
.click();
|
||||
}
|
||||
|
||||
await page.getByTestId("tenant-bulk-status-select").click();
|
||||
await page.getByRole("option", { name: /비활성|inactive/i }).click();
|
||||
await page.getByTestId("tenant-bulk-type-select").click();
|
||||
await page.getByRole("option", { name: /Organization|정규 조직/i }).click();
|
||||
await page.getByTestId("tenant-bulk-visibility-select").click();
|
||||
await page.getByRole("option", { name: "공개", exact: true }).click();
|
||||
await page.getByTestId("tenant-bulk-apply-btn").click();
|
||||
|
||||
await expect.poll(() => updatePayloads).toHaveLength(2);
|
||||
for (const payload of updatePayloads) {
|
||||
expect(payload).toMatchObject({
|
||||
status: "inactive",
|
||||
type: "ORGANIZATION",
|
||||
config: { visibility: "public" },
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
test("switches tree and flat views, searches UUID, and selects descendants", async ({
|
||||
page,
|
||||
}) => {
|
||||
|
||||
Reference in New Issue
Block a user