Files
fanuzu/app/firebase/test/README.md
T

1.4 KiB

Firestore 보안 규칙 회귀 테스트

Firebase 실제 프로젝트 없이 로컬 Firestore 에뮬레이터에서 ../firestore.rules의 allow/deny 동작을 검증합니다.

실행

cd app/firebase/test
npm ci
npm run test:emulator

test:emulator는 다음 순서로 실행됩니다.

  1. Firebase CLI가 demo-fancake 프로젝트 ID로 Firestore 에뮬레이터를 기동합니다.
  2. initializeTestEnvironment()가 ../firestore.rules 원문을 에뮬레이터 규칙 REST API로 적재합니다.
  3. 음성 대조군이 로그인 사용자의 지갑 쓰기가 permission-denied인지 먼저 확인합니다.
  4. 소유자 지갑 읽기 양성 대조군을 확인한 뒤 Vitest 회귀 테스트 전체를 실행합니다.

Firebase CLI의 emulators:exec 기동 성공만으로 규칙 적재·컴파일 성공을 판단하지 않습니다. 규칙 적재 실패 시 2단계에서 실행이 중단되고, 음성 대조군이 허용되면 3단계에서 실행이 중단됩니다.

복합 인덱스 검증 한계 실측

npm run probe:indexes:emulator

이 프로브는 ../firestore.indexes.json에 없는 4필드 posts 복합 인덱스를 먼저 확인한 뒤, 그 인덱스가 필요한 유효 쿼리를 에뮬레이터에 보냅니다. 쿼리가 허용되면 에뮬레이터가 복합 인덱스를 강제하지 않는다는 뜻이므로, 인덱스 배포 유효성 검증에는 사용할 수 없습니다.