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 de armazenamento? HostAndPort } Uma cópia somente leitura da configuração do emulador especificada ou descoberta na criação do ambiente de teste.
projectId string 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 pelo contexto retornado terão um token simulado do Firebase Auth anexado.
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.Esse método não muda o estado nos emuladores. Para redefinir dados entre testes, consulte clearDatabase(), clearFirestore() e clearStorage().
clearDatabase() (em inglês). Limpe todos os dados no namespace do emulador do Realtime Database.
clearFirestore() (em inglês) Limpe os dados no Firestore que pertencem a projectId no emulador do Firestore.
clearStorage() (link em inglês). Limpe arquivos e metadados do Storage em todos os buckets no emulador do Storage.
unauthenticatedContext(). Crie um RulesTestContext que se comporte como um cliente que NÃO está conectado pelo Firebase Auth.As solicitações criadas com o contexto retornado não terão tokens do Firebase Auth anexados.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.Emulators

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;
    };

RulesTestEnvironment.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 pelo 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
user_id string o User-ID do usuário. Especifica o valor de "user_id" e "sub" no token
tokenOptions TokenOptions (em inglês) declarações ou substituições personalizadas para payloads de token do Firebase Auth

Retorna:

RulesTestContext (link em inglês)

Exemplo

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

RulesTestEnvironment.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.

Esse método não altera o estado nos emuladores. Para redefinir dados entre testes, consulte clearDatabase(), clearFirestore() e clearStorage().

Assinatura:

cleanup(): Promise<void>;

Retorna:

Promessa<void>

RulesTestEnvironment.clearDatabase()

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

Assinatura:

clearDatabase(): Promise<void>;

Retorna:

Promessa<void>

RulesTestEnvironment.clearFirestore()

Limpar dados no banco de dados padrão do Firestore para projectId no emulador do Firestore.

Assinatura:

clearFirestore(): Promise<void>;

Retorna:

Promessa<void>

RulesTestEnvironment.clearStorage()

Limpe arquivos e metadados do Storage no bucket ativo 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 pelo Firebase Auth.

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

Assinatura:

unauthenticatedContext(): RulesTestContext;

Retorna:

RulesTestContext (link em inglês)

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
callback (contexto: RulesTestContext) => Promessa<void>

Retorna:

Promessa<void>