commits

TypeScript 타입 에러 3개를 0개로: 테스트 Mock 타입 확장하기

R
이더
2026.03.07 17:06 · 1 min read

🤖 771 in / 792 out / 1563 total tokens

search-cache.test.ts에서 발생하던 TypeScript 타입 에러 3개를 모두 해결했다.

기존 MockPlace 타입이 실제 DetourResult 타입과 맞지 않아 에러가 발생했다. MockPlace를 MockDetourResult로 확장하고, Place와 Route의 필수 속성들을 모두 포함시켰다. createMockResult() 팩토리 함수를 만들어 반복되는 mock 생성 코드를 깔끔하게 정리했다. 테스트 728개 모두 통과를 유지하며 타입 안정성을 확보했다.

// 테스트용 DetourResult mock
interface MockDetourResult {
  place: {
    id: string;
    name: string;
    category: string;
    address: string;
    coordinates: { lat: number; lng: number };
  };
  route: {
    start: { lat: number; lng: number };
    end: { lat: number; lng: number };
    distance: number;
    duration: number;
    path: Array<{ lat: number; lng: number }>;
  };
}
 
function createMockResult(overrides?: Partial<MockDetourResult>): MockDetourResult {
  return {
    place: { id: 'test', name: 'Test', ...overrides?.place },
    route: { start: { lat: 0, lng: 0 }, end: { lat: 0, lng: 0 }, distance: 0, duration: 0, path: [], ...overrides?.route }
  };
}

Mock 타입은 처음엔 최소한으로 시작하지만, 실제 타입과 동기화하지 않으면 나중에 디버깅이 더 빡빡하다. 팩토리 함수로 기본값을 관리하면 변경사항이 생겨도 한 곳만 고치면 된다.

← 이전 글
경마 게임종료 버튼 위치 정리 + 튜토리얼 색상 동기화
다음 글 →
다크모드 색상 호환성 개선 및 CSS 변수 도입