i18n 적용
CI / test (push) Failing after 11m12s
CI / e2e (push) Has been cancelled
CI / pr_and_merge (push) Has been cancelled

This commit is contained in:
2025-12-10 15:56:51 +09:00
parent 73e9bc6a1c
commit f71207aeb5
127 changed files with 7346 additions and 2079 deletions
+27 -27
View File
@@ -126,17 +126,17 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
const { rerender } = render(<EditorPage />);
const menuButton = screen.getByText("메뉴");
const menuButton = screen.getByText("Menu");
fireEvent.click(menuButton);
const projectMenuItem = screen.getByText("프로젝트 저장/불러오기");
const projectMenuItem = screen.getByText("Save / load project");
fireEvent.click(projectMenuItem);
const modalTitle = screen.getByText("프로젝트 저장 / 불러오기");
const modalTitle = screen.getByText("Save / load project");
const projectModal = (modalTitle.parentElement?.parentElement ?? document.body) as HTMLElement;
const titleInput = within(projectModal).getByLabelText("프로젝트 제목") as HTMLInputElement;
const slugInput = within(projectModal).getByLabelText("프로젝트 주소 (예: my-landing)") as HTMLInputElement;
const titleInput = within(projectModal).getByLabelText("Project title") as HTMLInputElement;
const slugInput = within(projectModal).getByLabelText("Project address (e.g. my-landing)") as HTMLInputElement;
expect(titleInput.value).toBe("프로젝트 저장/불러오기 테스트");
expect(slugInput.value).toBe("editor-project-test");
@@ -149,7 +149,7 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
rerender(<EditorPage />);
const saveButton = screen.getByText("저장 (로컬 + 서버)");
const saveButton = screen.getByText("Save (local + server)");
fireEvent.click(saveButton);
await waitFor(() => {
@@ -184,7 +184,7 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
expect(Array.isArray(body.contentJson)).toBe(true);
expect(body.contentJson[0].id).toBe("blk_1");
const message = await screen.findByText("프로젝트가 저장되었습니다: save-test-slug");
const message = await screen.findByText("Project saved: save-test-slug");
expect(message).toBeTruthy();
});
@@ -213,24 +213,24 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
const { rerender } = render(<EditorPage />);
const menuButton = screen.getByText("메뉴");
const menuButton = screen.getByText("Menu");
fireEvent.click(menuButton);
const projectMenuItem = screen.getByText("프로젝트 저장/불러오기");
const projectMenuItem = screen.getByText("Save / load project");
fireEvent.click(projectMenuItem);
const modalTitle = screen.getByText("프로젝트 저장 / 불러오기");
const modalTitle = screen.getByText("Save / load project");
const projectModal = (modalTitle.parentElement?.parentElement ?? document.body) as HTMLElement;
const titleInput = within(projectModal).getByLabelText("프로젝트 제목") as HTMLInputElement;
const slugInput = within(projectModal).getByLabelText("프로젝트 주소 (예: my-landing)") as HTMLInputElement;
const titleInput = within(projectModal).getByLabelText("Project title") as HTMLInputElement;
const slugInput = within(projectModal).getByLabelText("Project address (e.g. my-landing)") as HTMLInputElement;
fireEvent.change(titleInput, { target: { value: "충돌 테스트 프로젝트" } });
fireEvent.change(slugInput, { target: { value: "conflict-slug" } });
rerender(<EditorPage />);
const saveButton = screen.getByText("저장 (로컬 + 서버)");
const saveButton = screen.getByText("Save (local + server)");
fireEvent.click(saveButton);
const message = await screen.findByText("이미 다른 사용자가 사용 중인 프로젝트 주소입니다.");
@@ -268,16 +268,16 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
render(<EditorPage />);
const menuButton = screen.getByText("메뉴");
const menuButton = screen.getByText("Menu");
fireEvent.click(menuButton);
const projectMenuItem = screen.getByText("프로젝트 저장/불러오기");
const projectMenuItem = screen.getByText("Save / load project");
fireEvent.click(projectMenuItem);
const modalTitle = screen.getByText("프로젝트 저장 / 불러오기");
const modalTitle = screen.getByText("Save / load project");
const projectModal = (modalTitle.parentElement?.parentElement ?? document.body) as HTMLElement;
const loadButton = screen.getByText("불러오기");
const loadButton = screen.getByText("Load");
fireEvent.click(loadButton);
await waitFor(() => {
@@ -297,7 +297,7 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
);
expect(serverCalls.length).toBe(0);
const message = await screen.findByText(`로컬에서 프로젝트를 불러왔습니다: ${slug}`);
const message = await screen.findByText(`Loaded project from local: ${slug}`);
expect(message).toBeTruthy();
});
@@ -328,13 +328,13 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
render(<EditorPage />);
const menuButton = screen.getByText("메뉴");
const menuButton = screen.getByText("Menu");
fireEvent.click(menuButton);
const projectMenuItem = screen.getByText("프로젝트 저장/불러오기");
const projectMenuItem = screen.getByText("Save / load project");
fireEvent.click(projectMenuItem);
const loadButton = screen.getByText("불러오기");
const loadButton = screen.getByText("Load");
fireEvent.click(loadButton);
await waitFor(() => {
@@ -362,7 +362,7 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
),
).toBe(true);
const message = await screen.findByText(`프로젝트를 불러왔습니다: ${slug}`);
const message = await screen.findByText(`Loaded project from server: ${slug}`);
expect(message).toBeTruthy();
});
@@ -472,13 +472,13 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
render(<EditorPage />);
const menuButton = screen.getByText("메뉴");
const menuButton = screen.getByText("Menu");
fireEvent.click(menuButton);
const projectMenuItem = screen.getByText("프로젝트 저장/불러오기");
const projectMenuItem = screen.getByText("Save / load project");
fireEvent.click(projectMenuItem);
const loadButton = screen.getByText("불러오기");
const loadButton = screen.getByText("Load");
fireEvent.click(loadButton);
await waitFor(() => {
@@ -514,10 +514,10 @@ describe("EditorPage - 프로젝트 저장/불러오기", () => {
render(<EditorPage />);
const menuButton = screen.getByText("메뉴");
const menuButton = screen.getByText("Menu");
fireEvent.click(menuButton);
const deleteMenuItem = screen.getByText("프로젝트 삭제");
const deleteMenuItem = screen.getByText("Delete project");
fireEvent.click(deleteMenuItem);
await waitFor(() => {