i18n 적용
This commit is contained in:
+34
-30
@@ -23,7 +23,7 @@ test("/editor 페이지가 존재하고 Page Editor 헤더를 보여줘야 한
|
||||
test("텍스트 버튼을 누르면 캔버스에 '새 텍스트' 블록이 보여야 한다", async ({ page }) => {
|
||||
await page.goto("/editor");
|
||||
|
||||
await page.getByRole("button", { name: "텍스트" }).first().click();
|
||||
await page.getByRole("button", { name: "Text" }).first().click();
|
||||
|
||||
const canvas = page.getByTestId("editor-canvas");
|
||||
await expect(canvas.getByText("새 텍스트")).toBeVisible();
|
||||
@@ -255,22 +255,22 @@ test("에디터 상태를 JSON으로 내보내고 다시 불러오면 동일한
|
||||
await sizeSelect.selectOption("lg");
|
||||
|
||||
// JSON 내보내기/불러오기 모달을 연다.
|
||||
await page.getByRole("button", { name: "메뉴 ▼" }).click();
|
||||
await page.getByRole("button", { name: "JSON 내보내기/불러오기" }).click();
|
||||
await page.getByRole("button", { name: "Menu" }).click();
|
||||
await page.getByRole("button", { name: "JSON export / import" }).click();
|
||||
|
||||
// 현재 상태를 JSON으로 내보낸다.
|
||||
await page.getByRole("button", { name: "JSON 내보내기" }).click();
|
||||
const exportArea = page.getByRole("textbox", { name: "에디터 상태 JSON" });
|
||||
await page.getByRole("button", { name: "Export JSON" }).click();
|
||||
const exportArea = page.getByRole("textbox", { name: "Editor state JSON" });
|
||||
const exportedJson = await exportArea.inputValue();
|
||||
|
||||
// 캔버스를 초기화한다.
|
||||
await page.getByRole("button", { name: "캔버스 초기화" }).click();
|
||||
await page.getByRole("button", { name: "Clear canvas" }).click();
|
||||
await expect(canvas.getByTestId("editor-block")).toHaveCount(0);
|
||||
|
||||
// JSON을 다시 입력하고 불러온다.
|
||||
const importArea = page.getByRole("textbox", { name: "JSON에서 불러오기" });
|
||||
const importArea = page.getByRole("textbox", { name: "Import from JSON" });
|
||||
await importArea.fill(exportedJson);
|
||||
await page.getByRole("button", { name: "JSON 적용하기" }).click();
|
||||
await page.getByRole("button", { name: "Apply JSON" }).click();
|
||||
|
||||
// 복원된 캔버스에 두 블록이 모두 존재해야 한다.
|
||||
const restoredBlocks = canvas.getByTestId("editor-block");
|
||||
@@ -510,9 +510,9 @@ test("에디터 메뉴에서 페이지 파일로 내보내기 (ZIP)를 클릭하
|
||||
await page.getByRole("button", { name: "텍스트" }).first().click();
|
||||
|
||||
// 헤더 메뉴를 연다.
|
||||
await page.getByRole("button", { name: "메뉴 ▼" }).click();
|
||||
await page.getByRole("button", { name: "Menu" }).click();
|
||||
|
||||
const exportButton = page.getByRole("button", { name: "페이지 파일로 내보내기 (ZIP)" });
|
||||
const exportButton = page.getByRole("button", { name: "Export as page files (ZIP)" });
|
||||
await expect(exportButton).toBeVisible();
|
||||
|
||||
const [download] = await Promise.all([
|
||||
@@ -573,10 +573,10 @@ test("Hero 템플릿 버튼을 클릭하면 섹션과 기본 텍스트/버튼
|
||||
await expect(blocks.first()).toBeVisible();
|
||||
|
||||
// Hero 헤드라인 텍스트가 포함된 블록이 보여야 한다.
|
||||
await expect(canvas.getByText("Hero 제목을 여기에 입력하세요")).toBeVisible();
|
||||
await expect(canvas.getByText("Your hero headline goes here")).toBeVisible();
|
||||
|
||||
// CTA 버튼도 렌더되어 있어야 한다.
|
||||
const ctaButton = canvas.getByRole("button", { name: "지금 시작하기" });
|
||||
const ctaButton = canvas.getByRole("button", { name: "Get started now" });
|
||||
await expect(ctaButton).toBeVisible();
|
||||
});
|
||||
|
||||
@@ -588,9 +588,9 @@ test("Features 템플릿 버튼을 클릭하면 3개의 Feature 항목(제목/
|
||||
await page.getByRole("button", { name: "기능 템플릿" }).click();
|
||||
|
||||
// Feature 제목들이 렌더되어야 한다.
|
||||
await expect(canvas.getByText("Feature 1 제목")).toBeVisible();
|
||||
await expect(canvas.getByText("Feature 2 제목")).toBeVisible();
|
||||
await expect(canvas.getByText("Feature 3 제목")).toBeVisible();
|
||||
await expect(canvas.getByText("Feature 1")).toBeVisible();
|
||||
await expect(canvas.getByText("Feature 2")).toBeVisible();
|
||||
await expect(canvas.getByText("Feature 3")).toBeVisible();
|
||||
});
|
||||
|
||||
test("CTA 템플릿 버튼을 클릭하면 CTA 텍스트와 버튼이 포함된 섹션이 캔버스에 생성되어야 한다", async ({ page }) => {
|
||||
@@ -600,8 +600,8 @@ test("CTA 템플릿 버튼을 클릭하면 CTA 텍스트와 버튼이 포함된
|
||||
|
||||
await page.getByRole("button", { name: "CTA 템플릿" }).click();
|
||||
|
||||
await expect(canvas.getByText("지금 바로 행동을 유도하는 CTA 텍스트를 입력하세요.")).toBeVisible();
|
||||
const ctaButton = canvas.getByRole("button", { name: "CTA 버튼" });
|
||||
await expect(canvas.getByText("Write a compelling CTA message here.")).toBeVisible();
|
||||
const ctaButton = canvas.getByRole("button", { name: "Call to action" });
|
||||
await expect(ctaButton).toBeVisible();
|
||||
});
|
||||
|
||||
@@ -613,10 +613,14 @@ test("FAQ 템플릿 버튼을 클릭하면 질문/답변 텍스트가 세 쌍
|
||||
await page.getByRole("button", { name: "FAQ 템플릿" }).click();
|
||||
|
||||
// 기본 FAQ 질문/답변 텍스트들이 렌더되어야 한다.
|
||||
await expect(canvas.getByText("서비스 이용료는 얼마인가요?")).toBeVisible();
|
||||
await expect(canvas.getByText("기본 기능은 무료로 제공되며, 프리미엄 기능은 월 구독료가 발생합니다.")).toBeVisible();
|
||||
await expect(canvas.getByText("환불 정책은 어떻게 되나요?")).toBeVisible();
|
||||
await expect(canvas.getByText("팀원 초대 기능이 있나요?")).toBeVisible();
|
||||
await expect(canvas.getByText("How much does the service cost?")).toBeVisible();
|
||||
await expect(
|
||||
canvas.getByText(
|
||||
"The core features are free, and premium features are available with a monthly subscription.",
|
||||
),
|
||||
).toBeVisible();
|
||||
await expect(canvas.getByText("What is your refund policy?")).toBeVisible();
|
||||
await expect(canvas.getByText("Can I invite teammates?")).toBeVisible();
|
||||
});
|
||||
|
||||
test("Pricing 템플릿 버튼을 클릭하면 3개의 요금제 카드가 생성되어야 한다", async ({ page }) => {
|
||||
@@ -627,11 +631,11 @@ test("Pricing 템플릿 버튼을 클릭하면 3개의 요금제 카드가 생
|
||||
await page.getByRole("button", { name: "상품 템플릿" }).click();
|
||||
|
||||
await expect(canvas.getByText("Basic")).toBeVisible();
|
||||
await expect(canvas.getByText("₩9,900/월")).toBeVisible();
|
||||
await expect(canvas.getByText("$9/month")).toBeVisible();
|
||||
await expect(canvas.getByText("Pro")).toBeVisible();
|
||||
await expect(canvas.getByText("₩29,900/월")).toBeVisible();
|
||||
await expect(canvas.getByText("$29/month")).toBeVisible();
|
||||
await expect(canvas.getByText("Enterprise")).toBeVisible();
|
||||
await expect(canvas.getByText("문의")).toBeVisible();
|
||||
await expect(canvas.getByText("Contact us")).toBeVisible();
|
||||
});
|
||||
|
||||
test("Testimonials 템플릿 버튼을 클릭하면 3개의 후기 카드가 생성되어야 한다", async ({ page }) => {
|
||||
@@ -743,8 +747,8 @@ test("헤더의 실행 취소/다시 실행 버튼으로 블록 추가를 Undo/R
|
||||
await page.getByRole("button", { name: "텍스트" }).first().click();
|
||||
await expect(canvas.getByTestId("editor-block")).toHaveCount(1);
|
||||
|
||||
const undoButton = page.getByRole("button", { name: "실행 취소" });
|
||||
const redoButton = page.getByRole("button", { name: "다시 실행" });
|
||||
const undoButton = page.getByRole("button", { name: "Undo" });
|
||||
const redoButton = page.getByRole("button", { name: "Redo" });
|
||||
|
||||
await undoButton.click();
|
||||
await expect(canvas.getByTestId("editor-block")).toHaveCount(0);
|
||||
@@ -909,10 +913,10 @@ test("리스트 아이템을 선택하면 패널에서 아이템 위/아래/들
|
||||
await firstItem.click({ force: true });
|
||||
|
||||
// 리스트 아이템 행에 위치한 조작 버튼들을 사용할 수 있어야 한다.
|
||||
const moveUpButton = firstItem.getByRole("button", { name: "위" });
|
||||
const moveDownButton = firstItem.getByRole("button", { name: "아래" });
|
||||
const indentButton = firstItem.getByRole("button", { name: "들여쓰기" });
|
||||
const outdentButton = firstItem.getByRole("button", { name: "내어쓰기" });
|
||||
const moveUpButton = firstItem.getByRole("button", { name: "Move item up" });
|
||||
const moveDownButton = firstItem.getByRole("button", { name: "Move item down" });
|
||||
const indentButton = firstItem.getByRole("button", { name: "Indent item" });
|
||||
const outdentButton = firstItem.getByRole("button", { name: "Outdent item" });
|
||||
|
||||
await expect(moveUpButton).toBeVisible();
|
||||
await expect(moveDownButton).toBeVisible();
|
||||
|
||||
Reference in New Issue
Block a user