From 2ffb9545e010954f7ef5b28900a106af05158764 Mon Sep 17 00:00:00 2001 From: Jaybe Date: Tue, 18 Nov 2025 17:25:46 +0900 Subject: [PATCH] =?UTF-8?q?=ED=94=84=EB=A6=AC=EB=B7=B0=20UX:=20=EB=AA=A8?= =?UTF-8?q?=EB=B0=94=EC=9D=BC=20=EB=B7=B0=20E2E=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/e2e/preview.spec.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/e2e/preview.spec.ts b/tests/e2e/preview.spec.ts index 2cc2aee..b846b6f 100644 --- a/tests/e2e/preview.spec.ts +++ b/tests/e2e/preview.spec.ts @@ -75,3 +75,35 @@ test("에디터에서 CTA 템플릿을 추가하면 프리뷰에서 CTA 텍스 await expect(page.getByText("지금 바로 행동을 유도하는 CTA 텍스트를 입력하세요.")).toBeVisible(); await expect(page.getByText("CTA 버튼")).toBeVisible(); }); + +test("모바일 뷰에서도 프리뷰 페이지가 깨지지 않고 주요 템플릿 컨텐츠를 보여줘야 한다", async ({ page }) => { + // 에디터에서 여러 템플릿을 추가한다. + await page.goto("/editor"); + + await page.getByRole("button", { name: "Hero 템플릿 추가" }).click(); + await page.getByRole("button", { name: "Features 템플릿 추가" }).click(); + await page.getByRole("button", { name: "Pricing 템플릿 추가" }).click(); + await page.getByRole("button", { name: "Testimonials 템플릿 추가" }).click(); + + // 모바일 뷰포트로 전환한다. + await page.setViewportSize({ width: 390, height: 844 }); + + // 프리뷰로 이동한다. + await page.getByRole("link", { name: "프리뷰 열기" }).click(); + + // 프리뷰 헤더와 주요 템플릿 텍스트들이 모두 보여야 한다. + await expect(page.getByRole("heading", { name: "Page Preview" })).toBeVisible(); + + // Hero 헤드라인 + await expect(page.getByText("Hero 제목을 여기에 입력하세요")).toBeVisible(); + + // Features 제목 일부 + await expect(page.getByText("Feature 1 제목")).toBeVisible(); + + // Pricing 플랜 이름/가격 일부 + await expect(page.getByText("Basic")).toBeVisible(); + await expect(page.getByText("₩9,900/월")).toBeVisible(); + + // Testimonials 본문 일부 + await expect(page.getByText("이 서비스 덕분에 랜딩 페이지 제작 시간이 크게 줄었습니다.")).toBeVisible(); +});