i18n 적용
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user