35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
import { expect, test } from "@playwright/test";
|
|
|
|
test("validates and reports the common text-field flow", async ({ page }) => {
|
|
await page.goto("/examples/ui");
|
|
await page.getByRole("button", { name: "입력 확인" }).click();
|
|
|
|
const field = page.getByRole("textbox", { name: "프로젝트 이름" });
|
|
await expect(field).toHaveAttribute("aria-invalid", "true");
|
|
await expect(field).toHaveAccessibleDescription(
|
|
/프로젝트 이름을 입력해 주세요/,
|
|
);
|
|
|
|
await field.fill("Starter");
|
|
await page.getByRole("button", { name: "입력 확인" }).click();
|
|
await expect(page.getByText("“Starter” 입력을 확인했습니다.")).toBeVisible();
|
|
});
|
|
|
|
test("traps modal interaction and restores focus to the trigger", async ({
|
|
page,
|
|
}) => {
|
|
await page.goto("/examples/ui");
|
|
const trigger = page.getByRole("button", { name: "모달 열기" });
|
|
await trigger.click();
|
|
|
|
const dialog = page.getByRole("dialog", { name: "연동 확인" });
|
|
await expect(dialog).toBeVisible();
|
|
await expect(
|
|
dialog.getByRole("button", { name: "연동 확인 닫기" }),
|
|
).toBeFocused();
|
|
|
|
await page.keyboard.press("Escape");
|
|
await expect(dialog).toBeHidden();
|
|
await expect(trigger).toBeFocused();
|
|
});
|