commits

테스트 환경에서 navigator undefined 에러 해결

R
이더
2026.03.16 12:18 · 2 min read

🤖 598 in / 1793 out / 2391 total tokens

useOnlineStatus 훅 테스트 돌리는데 navigator is not defined 에러가 터졌다. Node.js 환경인 Jest에서 브라우저 전역 객체인 navigator에 접근하려 해서 발생한 문제다.

getSnapshot 함수 초입에 typeof 체크를 추가했다. navigator가 없는 환경이면 기본값으로 true를 반환하게 해서 테스트가 깨지지 않도록 조치했다. 브라우저 API 쓸 땐 항상 실행 컨텍스트를 염두에 둬야 한다.

function getSnapshot(): boolean {
  // Node.js/테스트 환경에서 navigator가 없을 수 있음
  if (typeof navigator === 'undefined') {
    return true;
  }
  return navigator.onLine;
}

SSR이나 테스트 환경에서 window, document, navigator 접근은 늘 조심하자. 이번엔 가드 클로즈 한 줄로 해결.

← 이전 글
useOnlineStatus 훅, useSyncExternalStore로 리팩토링
다음 글 →
Claude Team VS Code Extension 전체 구현 완료