Interface RulesTestEnvironment

Um objeto usado para controlar o ambiente de teste de unidade de regras. Pode ser usado para criar RulesTestContext para diferentes situações de autenticação.

Assinatura:

export interface RulesTestEnvironment 

Propriedades

Propriedade Tipo Descrição
emuladores {banco de dados?: HostAndPort ; firestore?: HostAndPort ; armazenamento?: HostAndPort ; } Uma cópia somente leitura da configuração do emulador especificada ou descoberta na criação do ambiente de teste.
ID do projeto corda O ID do projeto especificado ou descoberto na criação do ambiente de teste.

Métodos

Método Descrição
authenticatedContext(user_id, tokenOptions) Crie um RulesTestContext que se comporte como um usuário autenticado do Firebase Auth. As solicitações criadas por meio do contexto retornado terão um token simulado do Firebase Auth anexado.
limpar() No final do seu código de teste, chame a função de limpeza. Destrua todos os RulesTestContexts criados no ambiente de teste e limpe os recursos subjacentes, permitindo uma saída limpa. Este método não altera o estado dos emuladores de forma alguma. Para redefinir dados entre testes, consulte clearDatabase() , clearFirestore() e clearStorage() .
limparBancoDeDados() Limpe todos os dados no namespace do emulador do Realtime Database.
limparFirestore() Limpe os dados no Firestore que pertencem ao projectId no emulador do Firestore.
armazenagem limpa() Limpe os arquivos e metadados do Storage em todos os buckets do emulador do Storage.
não autenticadoContext() Crie um RulesTestContext que se comporte como um cliente que NÃO está conectado via Firebase Auth. As solicitações criadas por meio do contexto retornado não terão tokens do Firebase Auth anexados.
withSecurityRulesDisabled(retorno de chamada)

RulesTestEnvironment.emuladores

Uma cópia somente leitura da configuração do emulador especificada ou descoberta na criação do ambiente de teste.

Assinatura:

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

RegrasTestEnvironment.projectId

O ID do projeto especificado ou descoberto na criação do ambiente de teste.

Assinatura:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Crie um RulesTestContext que se comporte como um usuário autenticado do Firebase Auth.

As solicitações criadas por meio do contexto retornado terão um token simulado do Firebase Auth anexado.

Assinatura:

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

Parâmetros

Parâmetro Tipo Descrição
ID do usuário corda o ID do usuário do usuário. Especifica o valor de "user_id" e "sub" no token
opções de token Opções de token declarações ou substituições personalizadas para cargas úteis de token do Firebase Auth

Retorna:

RegrasTestContext

Exemplo

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

RegrasTestEnvironment.cleanup()

No final do seu código de teste, chame a função de limpeza. Destrua todos os RulesTestContexts criados no ambiente de teste e limpe os recursos subjacentes, permitindo uma saída limpa.

Este método não altera o estado dos emuladores de forma alguma. Para redefinir dados entre testes, consulte clearDatabase() , clearFirestore() e clearStorage() .

Assinatura:

cleanup(): Promise<void>;

Retorna:

Promessa<void>

RegrasTestEnvironment.clearDatabase()

Limpe todos os dados no namespace do emulador do Realtime Database.

Assinatura:

clearDatabase(): Promise<void>;

Retorna:

Promessa<void>

RegrasTestEnvironment.clearFirestore()

Limpe os dados no Firestore que pertencem ao projectId no emulador do Firestore.

Assinatura:

clearFirestore(): Promise<void>;

Retorna:

Promessa<void>

RegrasTestEnvironment.clearStorage()

Limpe os arquivos e metadados do Storage em todos os buckets do emulador do Storage.

Assinatura:

clearStorage(): Promise<void>;

Retorna:

Promessa<void>

RulesTestEnvironment.unauthenticatedContext()

Crie um RulesTestContext que se comporte como um cliente que NÃO está conectado via Firebase Auth.

As solicitações criadas por meio do contexto retornado não terão tokens do Firebase Auth anexados.

Assinatura:

unauthenticatedContext(): RulesTestContext;

Retorna:

RegrasTestContext

Exemplo

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

RulesTestEnvironment.withSecurityRulesDisabled()

Assinatura:

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

Parâmetros

Parâmetro Tipo Descrição
ligar de volta (contexto: RulesTestContext ) => Promessa<void>

Retorna:

Promessa<void>