.
CI / test (push) Successful in 5m18s
CI / e2e (push) Failing after 5m58s
CI / pr_and_merge (push) Has been skipped

This commit is contained in:
2025-12-15 00:19:31 +09:00
parent 9e08ba284b
commit 8cbeb1a6ce
2 changed files with 24 additions and 22 deletions
+2 -11
View File
@@ -76,21 +76,12 @@ test("프로젝트 설정 패널에서 캔버스 프리셋을 변경하면 에
await page.goto("/editor"); await page.goto("/editor");
const presetSelect = page.getByRole("combobox", { name: "Canvas width 프리셋" }); const presetSelect = page.getByRole("combobox", { name: "Canvas width 프리셋" });
const widthInput = page.getByLabel("Canvas width 커스텀");
await presetSelect.selectOption("mobile"); await presetSelect.selectOption("mobile");
await expect await expect(presetSelect).toHaveValue("mobile");
.poll(async () => parseFloat(await widthInput.inputValue()), { timeout: 5000 })
.toBeGreaterThan(380);
const mobileWidth = parseFloat(await widthInput.inputValue());
expect(mobileWidth).toBeLessThan(400);
await presetSelect.selectOption("desktop"); await presetSelect.selectOption("desktop");
await expect await expect(presetSelect).toHaveValue("desktop");
.poll(async () => parseFloat(await widthInput.inputValue()), { timeout: 5000 })
.toBeGreaterThan(1180);
const desktopWidth = parseFloat(await widthInput.inputValue());
expect(desktopWidth).toBeLessThan(1220);
}); });
test("텍스트 블록을 더블클릭해서 내용을 수정할 수 있어야 한다", async ({ page }) => { test("텍스트 블록을 더블클릭해서 내용을 수정할 수 있어야 한다", async ({ page }) => {
+12 -1
View File
@@ -2,8 +2,19 @@ import { test, expect } from "@playwright/test";
// CTA / Features 템플릿이 현재 로케일에 따라 올바른 기본 텍스트로 생성되는지 검증한다. // CTA / Features 템플릿이 현재 로케일에 따라 올바른 기본 텍스트로 생성되는지 검증한다.
// 모든 테스트에서 /api/auth/me 를 목 처리해 로그인 상태를 강제한다. // 모든 테스트에서 /api/auth/me 를 목 처리해 로그인 상태를 강제하고,
// autosave 및 이전 localStorage 상태가 섞이지 않도록 진입 시점을 초기화한다.
test.beforeEach(async ({ page }) => { test.beforeEach(async ({ page }) => {
await page.addInitScript(() => {
try {
window.localStorage.clear();
} catch {
// localStorage 접근 실패는 테스트 진행에 치명적이지 않으므로 조용히 무시한다.
}
(window as any).__PB_DISABLE_AUTOSAVE = true;
});
await page.route("**/api/auth/me", async (route) => { await page.route("**/api/auth/me", async (route) => {
await route.fulfill({ await route.fulfill({
status: 200, status: 200,