diff --git a/src/components/__tests__/BudgetProgressCard.test.tsx b/src/components/__tests__/BudgetProgressCard.test.tsx index ea8e004..dbe76aa 100644 --- a/src/components/__tests__/BudgetProgressCard.test.tsx +++ b/src/components/__tests__/BudgetProgressCard.test.tsx @@ -13,14 +13,25 @@ vi.mock("@/utils/logger", () => ({ }, })); -// Mock BudgetTabContent component +// Mock BudgetTabContent component interfaces +interface MockBudgetTabContentProps { + data: { + targetAmount: number; + spentAmount: number; + remainingAmount: number; + }; + formatCurrency?: (amount: number) => string; + calculatePercentage?: (spent: number, target: number) => number; + onSaveBudget?: (amount: number, categories: Record) => void; +} + vi.mock("../BudgetTabContent", () => ({ default: ({ data, formatCurrency, calculatePercentage, onSaveBudget, - }: any) => ( + }: MockBudgetTabContentProps) => (
{data.targetAmount}
{data.spentAmount}
@@ -184,7 +195,10 @@ describe("BudgetProgressCard", () => { it("선택된 탭이 null일 때 monthly로 설정한다", () => { render( - + ); expect(mockSetSelectedTab).toHaveBeenCalledWith("monthly"); @@ -394,9 +408,15 @@ describe("BudgetProgressCard", () => { it("undefined 함수들을 처리한다", () => { const propsWithUndefined = { ...defaultProps, - formatCurrency: undefined as any, - calculatePercentage: undefined as any, - onSaveBudget: undefined as any, + formatCurrency: undefined as unknown as + | ((amount: number) => string) + | undefined, + calculatePercentage: undefined as unknown as + | ((spent: number, target: number) => number) + | undefined, + onSaveBudget: undefined as unknown as + | ((amount: number, categories: Record) => void) + | undefined, }; // 컴포넌트가 크래시하지 않아야 함 diff --git a/src/components/__tests__/ExpenseForm.test.tsx b/src/components/__tests__/ExpenseForm.test.tsx index b1febba..e83397a 100644 --- a/src/components/__tests__/ExpenseForm.test.tsx +++ b/src/components/__tests__/ExpenseForm.test.tsx @@ -3,8 +3,13 @@ import { describe, expect, it, vi, beforeEach } from "vitest"; import ExpenseForm from "../expenses/ExpenseForm"; // Mock child components with proper props handling +interface MockExpenseFormFieldsProps { + form: unknown; + isSubmitting: boolean; +} + vi.mock("../expenses/ExpenseFormFields", () => ({ - default: ({ form, isSubmitting }: any) => ( + default: ({ form, isSubmitting }: MockExpenseFormFieldsProps) => (
{isSubmitting.toString()} @@ -16,8 +21,13 @@ vi.mock("../expenses/ExpenseFormFields", () => ({ ), })); +interface MockExpenseSubmitActionsProps { + onCancel: () => void; + isSubmitting: boolean; +} + vi.mock("../expenses/ExpenseSubmitActions", () => ({ - default: ({ onCancel, isSubmitting }: any) => ( + default: ({ onCancel, isSubmitting }: MockExpenseSubmitActionsProps) => (