From ab5067c984389ce8a1671ff0d0e0291fbe17c7fb Mon Sep 17 00:00:00 2001 From: Jaybe Date: Tue, 16 Dec 2025 19:29:13 +0900 Subject: [PATCH] . --- tests/e2e/block-styles-regression.spec.ts | 36 +++++++++++------------ 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/tests/e2e/block-styles-regression.spec.ts b/tests/e2e/block-styles-regression.spec.ts index ba87b3c..2cf9352 100644 --- a/tests/e2e/block-styles-regression.spec.ts +++ b/tests/e2e/block-styles-regression.spec.ts @@ -23,7 +23,7 @@ function parsePx(value: string): number | null { return Number.isFinite(n) ? n : null; } -async function ensureAuthenticated(page: any, request: any) { +async function ensureAuthenticated(page: any, request: any): Promise { const now = Date.now(); const email = `style-regression-${now}@example.com`; const password = "style-regression-password"; @@ -70,22 +70,20 @@ async function ensureAuthenticated(page: any, request: any) { sameSite: "Lax", }, ]); + + return accessToken; } async function patchProjectStatusForCurrentUser( - page: import("@playwright/test").Page, request: import("@playwright/test").APIRequestContext, + accessToken: string, slug: string, status: "DRAFT" | "PUBLISHED" | "ARCHIVED", ) { - const cookies = await page.context().cookies(); - const pbCookie = cookies.find((c) => c.name === "pb_access"); - expect(pbCookie).toBeTruthy(); - const res = await request.patch(`/api/projects/${slug}`, { headers: { "Content-Type": "application/json", - Cookie: `pb_access=${pbCookie!.value}`, + Cookie: `pb_access=${accessToken}`, }, data: { status }, }); @@ -109,7 +107,7 @@ test("텍스트/버튼/리스트/이미지/비디오/폼 입력 필드 스타일 const slug = `style-regression-${now}`; // 1) 에디터에서 프로젝트 slug 와 기본 블록들을 구성한다. - await ensureAuthenticated(page, request); + const accessToken = await ensureAuthenticated(page, request); await page.goto("/editor"); const sidebar = page.getByTestId("properties-sidebar"); @@ -246,7 +244,7 @@ test("텍스트/버튼/리스트/이미지/비디오/폼 입력 필드 스타일 await page.getByRole("button", { name: "Save (local + server)" }).click(); await expect(page).toHaveURL(/\/_?projects/); - await patchProjectStatusForCurrentUser(page, request, slug, "PUBLISHED"); + await patchProjectStatusForCurrentUser(request, accessToken, slug, "PUBLISHED"); await page.goto(`/p/${slug}`); // 4) 동일한 slug 의 퍼블릭 페이지(/p/[slug])로 이동해 같은 요소들의 스타일을 다시 측정한다. @@ -379,7 +377,7 @@ test("버튼 너비/패딩/색상/둥글기 스타일이 프리뷰와 퍼블릭 const now = Date.now(); const slug = `button-layout-style-regression-${now}`; - await ensureAuthenticated(page, request); + const accessToken = await ensureAuthenticated(page, request); await page.goto("/editor"); const sidebar = page.getByTestId("properties-sidebar"); @@ -435,7 +433,7 @@ test("버튼 너비/패딩/색상/둥글기 스타일이 프리뷰와 퍼블릭 await page.getByRole("button", { name: "Save (local + server)" }).click(); await page.waitForURL(/\/projects/); - await patchProjectStatusForCurrentUser(page, request, slug, "PUBLISHED"); + await patchProjectStatusForCurrentUser(request, accessToken, slug, "PUBLISHED"); await page.goto(`/p/${slug}`); const publicButton = page.getByRole("link", { name: "Button" }).first(); @@ -491,7 +489,7 @@ test("폼 셀렉트/체크박스/라디오 기본 텍스트 스타일이 프리 const slug = `form-style-regression-${now}`; // 1) 에디터에서 폼 블록들을 추가하고 프로젝트를 저장한다. - await ensureAuthenticated(page, request); + const accessToken = await ensureAuthenticated(page, request); await page.goto("/editor"); const sidebar = page.getByTestId("properties-sidebar"); @@ -560,7 +558,7 @@ test("폼 셀렉트/체크박스/라디오 기본 텍스트 스타일이 프리 await page.getByRole("button", { name: "Save (local + server)" }).click(); await page.waitForURL(/\/projects/); - await patchProjectStatusForCurrentUser(page, request, slug, "PUBLISHED"); + await patchProjectStatusForCurrentUser(request, accessToken, slug, "PUBLISHED"); await page.goto(`/p/${slug}`); // 4) 동일한 slug 의 퍼블릭 페이지(/p/[slug])로 이동해 같은 텍스트들의 스타일을 다시 측정한다. @@ -606,7 +604,7 @@ test("폼 셀렉트/체크박스/라디오 레이아웃/패딩/너비/간격 스 const now = Date.now(); const slug = `form-layout-style-regression-${now}`; - await ensureAuthenticated(page, request); + const accessToken = await ensureAuthenticated(page, request); await page.goto("/editor"); const sidebar = page.getByTestId("properties-sidebar"); @@ -784,7 +782,7 @@ test("폼 셀렉트/체크박스/라디오 레이아웃/패딩/너비/간격 스 await page.getByRole("button", { name: "Save (local + server)" }).click(); await page.waitForURL(/\/projects/); - await patchProjectStatusForCurrentUser(page, request, slug, "PUBLISHED"); + await patchProjectStatusForCurrentUser(request, accessToken, slug, "PUBLISHED"); await page.goto(`/p/${slug}`); const publicSelectWrapper = page.locator(".pb-form-field").first(); @@ -1010,8 +1008,8 @@ test("섹션 배경/레이아웃 스타일이 프리뷰와 퍼블릭 페이지 const now = Date.now(); const slug = `section-style-regression-${now}`; - // 1) 에디터에서 섹션 블록을 추가하고 배경색/패딩/최대 폭/컬럼 간격을 설정한다. - await ensureAuthenticated(page, request); + // 1) 에디터에서 섹션 블록을 추가하고 배경색/패딩/최대 폭/컬럼 간 간격을 설정한다. + const accessToken = await ensureAuthenticated(page, request); await page.goto("/editor"); const sidebar = page.getByTestId("properties-sidebar"); @@ -1067,7 +1065,7 @@ test("섹션 배경/레이아웃 스타일이 프리뷰와 퍼블릭 페이지 await page.getByRole("button", { name: "Save (local + server)" }).click(); await page.waitForURL(/\/projects/); - await patchProjectStatusForCurrentUser(page, request, slug, "PUBLISHED"); + await patchProjectStatusForCurrentUser(request, accessToken, slug, "PUBLISHED"); await page.goto(`/p/${slug}`); // 4) 퍼블릭 페이지에서 같은 섹션 레이아웃의 스타일을 다시 측정한다. @@ -1122,7 +1120,7 @@ test("구분선 스타일이 프리뷰와 퍼블릭 페이지에서 동일해야 const now = Date.now(); const slug = `divider-style-regression-${now}`; - await ensureAuthenticated(page, request); + const accessToken = await ensureAuthenticated(page, request); await page.goto("/editor"); const sidebar = page.getByTestId("properties-sidebar");