RulesTestEnvironment 인터페이스

규칙 단위 테스트 환경을 제어하는 데 사용되는 객체입니다. 다양한 인증 상황에서 RulesTestContext를 생성하는 데 사용할 수 있습니다.

서명:

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에서 데이터를 삭제합니다.
삭제 Storage 에뮬레이터의 모든 버킷에서 Storage 파일과 메타데이터를 지웁니다.
unauthenticatedContext()를 사용합니다. Firebase 인증을 통해 로그인하지 않은 클라이언트처럼 동작하는 RulesTestContext를 만듭니다.반환된 컨텍스트를 통해 생성된 요청에는 Firebase 인증 토큰이 연결되지 않습니다.
withSecurityRulesDisabled(콜백)

RulesTestEnvironment.emulators

테스트 환경 생성 시 지정되거나 발견된 에뮬레이터 구성의 읽기 전용 사본입니다.

서명:

readonly emulators: {
        database?: HostAndPort;
        firestore?: HostAndPort;
        storage?: HostAndPort;
    };

RulesTestEnvironment.projectId

테스트 환경 생성 시 지정되거나 검색된 프로젝트 ID입니다.

서명:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()를 사용합니다.

인증된 Firebase 인증 사용자처럼 동작하는 RulesTestContext를 만듭니다.

반환된 컨텍스트를 통해 생성된 요청에는 모의 Firebase 인증 토큰이 연결됩니다.

서명:

authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;

매개변수

매개변수 유형 설명
user_id 문자열 사용자의 User ID입니다. 'user_id'의 값을 지정합니다. 'sub' 토큰에서
tokenOptions TokenOptions(토큰 옵션) Firebase 인증 토큰 페이로드에 대한 커스텀 클레임 또는 재정의

반환:

RulesTestContext

const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });

RulesTestEnvironment.cleanup()

테스트 코드의 맨 끝에서 정리 함수를 호출합니다. 테스트 환경에서 만든 모든 RulesTestContext를 폐기하고 기본 리소스를 정리하여 클린 종료를 허용합니다.

이 메서드는 어떤 방식으로도 에뮬레이터의 상태를 변경하지 않습니다. 테스트 간에 데이터를 재설정하려면 clearDatabase(), clearFirestore(), clearStorage()를 참고하세요.

서명:

cleanup(): Promise<void>;

반환:

프로미스<void>

RulesTestEnvironment.clearDatabase()

실시간 데이터베이스 에뮬레이터 네임스페이스의 모든 데이터를 지웁니다.

서명:

clearDatabase(): Promise<void>;

반환:

프로미스<void>

RulesTestEnvironment.clearFirestore()

Firestore 에뮬레이터에 있는 projectId의 기본 Firestore 데이터베이스에서 데이터를 삭제합니다.

서명:

clearFirestore(): Promise<void>;

반환:

프로미스<void>

RulesTestEnvironment.clearStorage()

Storage 에뮬레이터의 활성 버킷에서 Storage 파일과 메타데이터를 삭제합니다.

서명:

clearStorage(): Promise<void>;

반환:

프로미스<void>

RulesTestEnvironment.unauthenticatedContext()를 사용합니다.

Firebase 인증을 통해 로그인하지 않은 클라이언트처럼 동작하는 RulesTestContext를 만듭니다.

반환된 컨텍스트를 통해 생성된 요청에는 Firebase 인증 토큰이 연결되지 않습니다.

서명:

unauthenticatedContext(): RulesTestContext;

반환:

RulesTestContext

const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });

RulesTestEnvironment.withSecurityRulesDisabled()

서명:

withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;

매개변수

매개변수 유형 설명
콜백 (컨텍스트: RulesTestContext) => 프로미스<void>

반환:

프로미스<void>