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.

Signature:

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.
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 fictício do Firebase Auth anexado.
cleanup() (em inglês) 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() Limpa todos os dados no namespace do emulador do Realtime Database.
clearFirestore() Limpe os dados no Firestore que pertencem ao projectId no emulador do Firestore.
clearStorage() 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 com o Firebase Auth.As solicitações criadas pelo 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.

Signature:

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

RulesTestEnvironment.projectId

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

Signature:

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.

Signature:

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

Parâmetros

Parâmetro Tipo Descrição
user_id string o User-ID. Especifica o valor de "user_id" e "sub" no token
tokenOptions TokenOptions declarações ou substituições personalizadas para payloads do token do Firebase Auth

Retorna:

RulesTestContext

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 muda o estado nos emuladores. Para redefinir dados entre testes, consulte clearDatabase(), clearFirestore() e clearStorage().

Signature:

cleanup(): Promise<void>;

Retorna:

Promise<void>

RulesTestEnvironment.clearDatabase()

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

Signature:

clearDatabase(): Promise<void>;

Retorna:

Promise<void>

RulesTestEnvironment.clearFirestore()

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

Signature:

clearFirestore(): Promise<void>;

Retorna:

Promise<void>

RulesTestEnvironment.clearStorage()

Limpe arquivos e metadados do Storage no bucket ativo do emulador do Storage.

Signature:

clearStorage(): Promise<void>;

Retorna:

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

Signature:

unauthenticatedContext(): RulesTestContext;

Retorna:

RulesTestContext

Exemplo

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

RulesTestEnvironment.withSecurityRulesDisabled()

Signature:

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

Parâmetros

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

Retorna:

Promise<void>