Signature:
export interface RulesTestEnvironment
속성
속성 | 유형 | 설명 |
---|---|---|
에뮬레이터 | { 데이터베이스?: HostAndPort, Firestore?: HostAndPort, 스토리지: HostAndPort, } | 테스트 환경 생성 시 지정되거나 발견된 에뮬레이터 구성의 읽기 전용 사본입니다. |
projectId | 문자열 | 테스트 환경 생성 시 지정되거나 검색된 프로젝트 ID입니다. |
방법
메서드 | 설명 |
---|---|
authenticatedContext(user_id, tokenOptions) | 인증된 Firebase 인증 사용자처럼 작동하는 RulesTestContext 를 만듭니다.반환된 컨텍스트를 통해 생성된 요청에는 모의 Firebase 인증 토큰이 첨부됩니다. |
cleanup()을 호출했습니다. | 테스트 코드의 맨 끝에서 정리 함수를 호출합니다. 테스트 환경에서 생성된 모든 RulesTestContext를 폐기하고 기본 리소스를 삭제하여 정리된 종료를 허용합니다.이 메서드는 어떤 방식으로든 에뮬레이터에서 상태를 변경하지 않습니다. 테스트 간에 데이터를 재설정하려면 clearDatabase() , clearFirestore() , clearStorage() 를 참고하세요. |
clearDatabase() | 실시간 데이터베이스 에뮬레이터 네임스페이스의 모든 데이터를 지웁니다. |
clearFirestore() | Firestore 에뮬레이터의 projectId 에 속한 Firestore의 데이터를 삭제합니다. |
clearStorage() | Storage 에뮬레이터의 모든 버킷에서 Storage 파일과 메타데이터를 지웁니다. |
unauthenticatedContext() | Firebase 인증을 통해 로그인하지 않은 클라이언트처럼 작동하는 RulesTestContext 를 만듭니다.반환된 컨텍스트를 통해 생성된 요청에는 Firebase 인증 토큰이 연결되지 않습니다. |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
테스트 환경 생성 시 지정되거나 발견된 에뮬레이터 구성의 읽기 전용 사본입니다.
Signature:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
테스트 환경 생성 시 지정되거나 검색된 프로젝트 ID입니다.
Signature:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
인증된 Firebase 인증 사용자처럼 동작하는 RulesTestContext
를 만듭니다.
반환된 컨텍스트를 통해 생성된 요청에는 모의 Firebase 인증 토큰이 연결됩니다.
Signature:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
매개변수
매개변수 | 유형 | 설명 |
---|---|---|
user_id | 문자열 | 사용자의 사용자 ID입니다. 토큰의 'user_id' 및 'sub' 값을 지정합니다. |
tokenOptions | TokenOptions | Firebase 인증 토큰 페이로드에 대한 커스텀 클레임 또는 재정의 |
반환:
예
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
테스트 코드의 맨 끝에서 정리 함수를 호출합니다. 테스트 환경에서 생성된 모든 RulesTestContext를 폐기하고 기본 리소스를 삭제하여 깔끔하게 종료합니다.
이 메서드는 어떤 방식으로든 에뮬레이터의 상태를 변경하지 않습니다. 테스트 간에 데이터를 재설정하려면 clearDatabase()
, clearFirestore()
, clearStorage()
를 참조하세요.
Signature:
cleanup(): Promise<void>;
반환:
Promise<void>
RulesTestEnvironment.clearDatabase()
실시간 데이터베이스 에뮬레이터 네임스페이스의 모든 데이터를 지웁니다.
Signature:
clearDatabase(): Promise<void>;
반환:
Promise<void>
RulesTestEnvironment.clearFirestore()
Firestore 에뮬레이터에서 projectId
의 기본 Firestore 데이터베이스에서 데이터를 지웁니다.
Signature:
clearFirestore(): Promise<void>;
반환:
Promise<void>
RulesTestEnvironment.clearStorage()
Storage 에뮬레이터의 활성 버킷에 있는 Storage 파일 및 메타데이터를 지웁니다.
Signature:
clearStorage(): Promise<void>;
반환:
Promise<void>
RulesTestEnvironment.unauthenticatedContext()
Firebase 인증을 통해 로그인하지 않은 클라이언트처럼 작동하는 RulesTestContext
를 만듭니다.
반환된 컨텍스트를 통해 생성된 요청에는 Firebase 인증 토큰이 연결되지 않습니다.
Signature:
unauthenticatedContext(): RulesTestContext;
반환:
예
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
Signature:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
매개변수
매개변수 | 유형 | 설명 |
---|---|---|
콜백 | (컨텍스트: RulesTestContext) => Promise<void> |
반환:
Promise<void>