You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
// frontend/playwright/multiuser.spec.ts — 두 사용자 데이터 격리 E2E (auth.config.ts)
|
|
import { expect, test } from "@playwright/test";
|
|
|
|
async function login(page, email: string) {
|
|
await page.goto("/login");
|
|
await page.getByPlaceholder("이메일").fill(email);
|
|
await page.getByPlaceholder("비밀번호").fill("demo-1234");
|
|
await page.getByRole("button", { name: "로그인" }).click();
|
|
await expect(page).toHaveURL(/\/dashboard$/);
|
|
}
|
|
|
|
test("지우는 시드 작업이 보이고, 현우는 빈 상태", async ({ browser }) => {
|
|
const ctxA = await browser.newContext();
|
|
const ctxB = await browser.newContext();
|
|
const pa = await ctxA.newPage();
|
|
const pb = await ctxB.newPage();
|
|
|
|
await login(pa, "jiwoo@lumi.co");
|
|
await pa.goto("/tasks");
|
|
await expect(pa.getByText("분기 리포트 초안 마무리").first()).toBeVisible(); // 지우 시드 작업
|
|
|
|
await login(pb, "hyunwoo@lumi.co");
|
|
await pb.goto("/tasks");
|
|
// 현우는 소유 작업 0 → 시드 작업(분기 리포트) 안 보임
|
|
await expect(pb.getByText("분기 리포트 초안 마무리")).toHaveCount(0);
|
|
|
|
await ctxA.close();
|
|
await ctxB.close();
|
|
});
|