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.

22 lines
935 B
TypeScript

// frontend/playwright/responsive.spec.ts
import { expect, test } from "@playwright/test";
const viewports = [
{ name: "mobile", w: 390, h: 844 },
{ name: "tablet", w: 834, h: 1112 },
{ name: "desktop", w: 1440, h: 900 },
];
for (const v of viewports) {
test(`반응형(${v.name}): 가로 스크롤 없음 + 내비 접근 가능`, async ({ page }) => {
await page.setViewportSize({ width: v.w, height: v.h });
await page.goto("/tasks");
await expect(page.locator(".kboard")).toBeVisible();
const scrollW = await page.evaluate(() => document.documentElement.scrollWidth);
const clientW = await page.evaluate(() => document.documentElement.clientWidth);
expect(scrollW).toBeLessThanOrEqual(clientW + 1);
// 모바일에서도 13항목 내비에 도달 가능(가로 스크롤 내비 유지)
await expect(page.getByRole("navigation").getByRole("link", { name: /작업/ })).toBeVisible();
});
}