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
@@ -31,7 +31,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const hexInput = screen.getByLabelText("버튼 텍스트 색상 HEX");
const hexInput = screen.getByLabelText("Button text color HEX");
fireEvent.change(hexInput, { target: { value: "#112233" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -51,7 +51,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const hexInput = screen.getByLabelText("버튼 채움 색상 HEX");
const hexInput = screen.getByLabelText("Button fill color HEX");
fireEvent.change(hexInput, { target: { value: "#445566" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -71,7 +71,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const hexInput = screen.getByLabelText("버튼 외곽선 색상 HEX");
const hexInput = screen.getByLabelText("Button border color HEX");
fireEvent.change(hexInput, { target: { value: "#778899" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -80,7 +80,7 @@ describe("ButtonPropertiesPanel", () => {
);
});
it("텍스트 색상 팔레트에서 \"없음\" 을 선택하면 textColorCustom 이 빈 문자열로 업데이트되어야 한다", () => {
it("텍스트 색상 팔레트에서 \"None\" 을 선택하면 textColorCustom 이 빈 문자열로 업데이트되어야 한다", () => {
const updateBlock = vi.fn();
render(
@@ -92,11 +92,11 @@ describe("ButtonPropertiesPanel", () => {
);
// 첫 번째 ColorPickerField(텍스트 색상)의 팔레트 버튼을 연다.
const paletteButtons = screen.getAllByText("색상 팔레트");
const paletteButtons = screen.getAllByText("Color palette");
fireEvent.click(paletteButtons[0].closest("button") as HTMLButtonElement);
// 팔레트에서 "없음" 항목을 버튼 role 기준으로 선택한다.
const noneButtons = screen.getAllByRole("button", { name: "없음" });
// 팔레트에서 "None" 항목을 버튼 role 기준으로 선택한다.
const noneButtons = screen.getAllByRole("button", { name: "None" });
fireEvent.click(noneButtons[0]);
expect(updateBlock).toHaveBeenCalledWith(
@@ -116,7 +116,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const hexInput = screen.getByLabelText("버튼 텍스트 색상 HEX") as HTMLInputElement;
const hexInput = screen.getByLabelText("Button text color HEX") as HTMLInputElement;
expect(hexInput.value).toBe("");
});
@@ -131,7 +131,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const select = screen.getByLabelText("버튼 너비 모드");
const select = screen.getByLabelText("Button width mode");
fireEvent.change(select, { target: { value: "fixed" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -155,7 +155,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const urlInput = screen.getByLabelText("버튼 이미지 URL");
const urlInput = screen.getByLabelText("Button image URL");
fireEvent.change(urlInput, { target: { value: "https://example.com/new.png" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -183,7 +183,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const select = screen.getByLabelText("버튼 이미지 위치");
const select = screen.getByLabelText("Button image placement");
fireEvent.change(select, { target: { value: "right" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -207,7 +207,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const select = screen.getByLabelText("버튼 이미지 소스");
const select = screen.getByLabelText("Button image source");
// 업로드 → URL 로 전환
fireEvent.change(select, { target: { value: "url" } });
@@ -231,7 +231,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const textarea = screen.getByLabelText("버튼 텍스트");
const textarea = screen.getByLabelText("Button text");
fireEvent.change(textarea, { target: { value: "새 버튼" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -251,7 +251,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const textarea = screen.getByLabelText("버튼 텍스트") as HTMLTextAreaElement;
const textarea = screen.getByLabelText("Button text") as HTMLTextAreaElement;
const className = textarea.getAttribute("class") ?? "";
// 라이트 모드: 흰 배경 + 어두운 텍스트
@@ -273,7 +273,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const slider = screen.getByLabelText("가로 패딩 (px) 슬라이더");
const slider = screen.getByLabelText("Horizontal padding (px) 슬라이더");
fireEvent.change(slider, { target: { value: "24" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -293,7 +293,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const slider = screen.getByLabelText("세로 패딩 (px) 슬라이더");
const slider = screen.getByLabelText("Vertical padding (px) 슬라이더");
fireEvent.change(slider, { target: { value: "18" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -313,7 +313,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const input = screen.getByLabelText("버튼 링크");
const input = screen.getByLabelText("Button link");
fireEvent.change(input, { target: { value: "/signup" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -333,7 +333,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const select = screen.getByLabelText("버튼 정렬");
const select = screen.getByLabelText("Button alignment");
fireEvent.change(select, { target: { value: "center" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -353,7 +353,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const select = screen.getByLabelText("버튼 스타일");
const select = screen.getByLabelText("Button style");
fireEvent.change(select, { target: { value: "outline" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -373,7 +373,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const slider = screen.getByLabelText("모서리 둥글기 슬라이더");
const slider = screen.getByLabelText("Border radius 슬라이더");
fireEvent.change(slider, { target: { value: "4" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -393,7 +393,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const slider = screen.getByLabelText("버튼 고정 너비 슬라이더");
const slider = screen.getByLabelText("Button fixed width 슬라이더");
fireEvent.change(slider, { target: { value: "300" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -413,7 +413,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const slider = screen.getByLabelText("버튼 크기 슬라이더");
const slider = screen.getByLabelText("Button font size 슬라이더");
fireEvent.change(slider, { target: { value: "20" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -433,7 +433,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const slider = screen.getByLabelText("줄 간격 슬라이더");
const slider = screen.getByLabelText("Line height 슬라이더");
fireEvent.change(slider, { target: { value: "1.8" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -453,7 +453,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const slider = screen.getByLabelText("글자 간격 슬라이더");
const slider = screen.getByLabelText("Letter spacing 슬라이더");
fireEvent.change(slider, { target: { value: "16" } });
expect(updateBlock).toHaveBeenCalledWith(
@@ -473,7 +473,7 @@ describe("ButtonPropertiesPanel", () => {
/>,
);
const labelTextarea = screen.getByLabelText("버튼 텍스트") as HTMLTextAreaElement;
const labelTextarea = screen.getByLabelText("Button text") as HTMLTextAreaElement;
const labelClass = labelTextarea.getAttribute("class") ?? "";
expect(labelClass).toContain("bg-white");
expect(labelClass).toContain("text-slate-900");
@@ -482,7 +482,7 @@ describe("ButtonPropertiesPanel", () => {
expect(labelClass).toContain("dark:text-slate-100");
expect(labelClass).toContain("dark:border-slate-700");
const imageSourceSelect = screen.getByLabelText("버튼 이미지 소스") as HTMLSelectElement;
const imageSourceSelect = screen.getByLabelText("Button image source") as HTMLSelectElement;
const imageSourceClass = imageSourceSelect.getAttribute("class") ?? "";
expect(imageSourceClass).toContain("bg-white");
expect(imageSourceClass).toContain("text-slate-900");
@@ -491,7 +491,7 @@ describe("ButtonPropertiesPanel", () => {
expect(imageSourceClass).toContain("dark:text-slate-100");
expect(imageSourceClass).toContain("dark:border-slate-700");
const alignSelect = screen.getByLabelText("버튼 정렬") as HTMLSelectElement;
const alignSelect = screen.getByLabelText("Button alignment") as HTMLSelectElement;
const alignClass = alignSelect.getAttribute("class") ?? "";
expect(alignClass).toContain("bg-white");
expect(alignClass).toContain("text-slate-900");