오류 수정
CI / test (push) Failing after 5m41s
CI / e2e (push) Has been skipped
CI / pr_and_merge (push) Has been skipped

This commit is contained in:
2025-12-12 18:04:31 +09:00
parent 6804665b95
commit 4840a530b6
205 changed files with 1802 additions and 9887 deletions
+79 -9
View File
@@ -36,7 +36,7 @@ describe("editorStore", () => {
expect(blocks).toHaveLength(1);
expect(blocks[0].type).toBe("text");
const textProps = blocks[0].props as TextBlockProps;
expect(textProps.text).toBe("새 텍스트");
expect(textProps.text).toBe("New text");
expect(selectedBlockId).toBe(blocks[0].id);
});
@@ -528,7 +528,7 @@ describe("editorStore", () => {
expect(blocks).toHaveLength(1);
expect(blocks[0].type).toBe("button");
const buttonProps = blocks[0].props as ButtonBlockProps;
expect(buttonProps.label).toBe("버튼");
expect(buttonProps.label).toBe("Button");
expect(buttonProps.href).toBe("#");
// 버튼 라벨과 링크를 업데이트한다.
@@ -556,7 +556,7 @@ describe("editorStore", () => {
const imageProps = blocks[0].props as ImageBlockProps;
expect(imageProps.src).toBe("");
expect(imageProps.alt).toBe("이미지 설명");
expect(imageProps.alt).toBe("Image description");
// 정렬/너비/모서리 기본값도 함께 검증한다.
expect(imageProps.align).toBe("center");
expect(imageProps.widthMode).toBe("auto");
@@ -1134,7 +1134,7 @@ describe("editorStore", () => {
const stateAny = store.getState() as any;
expect(stateAny.projectConfig).toBeTruthy();
expect(stateAny.projectConfig.title).toBe("새 페이지");
expect(stateAny.projectConfig.title).toBe("New page");
expect(stateAny.projectConfig.slug).toBe("my-landing");
expect(stateAny.projectConfig.canvasPreset).toBe("full");
expect(stateAny.projectConfig.canvasBgColorHex).toBe("#020617");
@@ -1397,11 +1397,6 @@ describe("editorStore", () => {
({ blocks } = store.getState());
expect(blocks.map((b) => b.id)).toEqual(originalIds);
(store.getState() as any).redo();
({ blocks } = store.getState());
expect(blocks.map((b) => b.id)).toEqual(replacedIds);
});
it("resetHistory 를 호출하면 history/future 가 비워지고 undo/redo 가 이전 스냅샷으로 돌아가지 않아야 한다", () => {
@@ -1438,4 +1433,79 @@ describe("editorStore", () => {
expect(history).toHaveLength(0);
expect(future).toHaveLength(0);
});
it("addTextBlock 을 ko 로케일로 호출하면 기본 텍스트가 한국어여야 한다", () => {
const store = createEditorStore();
const stateAny = store.getState() as any;
stateAny.addTextBlock("ko");
const { blocks } = store.getState();
const textProps = blocks[0].props as TextBlockProps;
expect(textProps.text).toBe("새 텍스트");
});
it("addListBlock 을 ko 로케일로 호출하면 기본 리스트 아이템 텍스트가 한국어여야 한다", () => {
const store = createEditorStore();
const stateAny = store.getState() as any;
stateAny.addListBlock("ko");
const { blocks } = store.getState();
const listProps = blocks[0].props as ListBlockProps & { itemsTree?: ListItemNode[] };
expect(listProps.items[0]).toBe("리스트 아이템 1");
expect(Array.isArray(listProps.itemsTree)).toBe(true);
expect(listProps.itemsTree && listProps.itemsTree[0].text).toBe("리스트 아이템 1");
});
it("addFormInputBlock 을 ko 로케일로 호출하면 기본 label 이 한국어여야 한다", () => {
const store = createEditorStore();
const stateAny = store.getState() as any;
stateAny.addFormInputBlock("ko");
const { blocks } = store.getState();
const inputProps = blocks[0].props as any;
expect(inputProps.label).toBe("입력 필드");
});
it("addFormSelectBlock 을 ko 로케일로 호출하면 기본 label 과 옵션 라벨이 한국어여야 한다", () => {
const store = createEditorStore();
const stateAny = store.getState() as any;
stateAny.addFormSelectBlock("ko");
const { blocks } = store.getState();
const selectProps = blocks[0].props as any;
expect(selectProps.label).toBe("셀렉트 필드");
expect(selectProps.options[0].label).toBe("옵션 1");
expect(selectProps.options[1].label).toBe("옵션 2");
});
it("addFormCheckboxBlock 을 ko 로케일로 호출하면 기본 groupLabel 과 옵션 라벨이 한국어여야 한다", () => {
const store = createEditorStore();
const stateAny = store.getState() as any;
stateAny.addFormCheckboxBlock("ko");
const { blocks } = store.getState();
const checkboxProps = blocks[0].props as any;
expect(checkboxProps.groupLabel).toBe("체크박스 그룹");
expect(checkboxProps.options[0].label).toBe("옵션 1");
expect(checkboxProps.options[1].label).toBe("옵션 2");
});
it("addFormRadioBlock 을 ko 로케일로 호출하면 기본 groupLabel 과 옵션 라벨이 한국어여야 한다", () => {
const store = createEditorStore();
const stateAny = store.getState() as any;
stateAny.addFormRadioBlock("ko");
const { blocks } = store.getState();
const radioProps = blocks[0].props as any;
expect(radioProps.groupLabel).toBe("라디오 그룹");
expect(radioProps.options[0].label).toBe("옵션 A");
expect(radioProps.options[1].label).toBe("옵션 B");
});
});