pacote de teste de unidade de regras

Funções

Função Descrição
assertFails(pr) Afirme que a promessa será rejeitada com um erro de "permissão negada". Útil para fazer valer uma determinada solicitação a ser negada pelas regras de segurança. Veja o exemplo abaixo. Esta função reconhece erros de permissão negada de SDKs JS de banco de dados, Firestore e armazenamento.
assertSucesso(pr) Afirme que a promessa será rejeitada com um erro de "permissão negada". Esta é uma função autônoma que retorna a promessa passada como está, mas pode ser usada para fins de documentação no código de teste para enfatizar que uma determinada solicitação deve ser bem-sucedida (por exemplo, permitida por regras).
inicializarTestEnvironment(config) Inicializa um ambiente de teste para testes unitários de regras. Chame esta função primeiro para configuração de teste. Requer emuladores em execução. Esta função tenta descobrir esses emuladores por meio de variáveis ​​de ambiente ou do hub do Firebase Emulator se hosts e portas não forem especificados. É altamente recomendável especificar regras de segurança para emuladores usados ​​em testes. Veja o exemplo mínimo abaixo.
withFunctionTriggersDisabled(fn) Execute uma função de configuração com os acionadores do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o Realtime Database ou o emulador do Cloud Firestore sem acionar Cloud Functions emulados localmente. Este método funciona apenas com Firebase CLI versão 8.13.0 ou superior. Essa sobrecarga funciona somente se o host:port do hub do emulador for especificado pela variável de ambiente FIREBASE_EMULATOR_HUB.
withFunctionTriggersDisabled(hub, fn) Execute uma função de configuração com os acionadores do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o Realtime Database ou o emulador do Cloud Firestore sem acionar Cloud Functions emulados localmente. Este método funciona apenas com Firebase CLI versão 8.13.0 ou superior. O hub do emulador deve estar em execução, cujo host e porta são especificados nesta sobrecarga.

Interfaces

Interface Descrição
HostAndPort Um objeto que contém o nome do host e o número da porta de um emulador.
RegrasTestContext Um contexto de teste que representa um cliente. Pode ser usado para acessar emuladores para testes unitários de regras.
RegrasTesteAmbiente 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.
TestEnvironmentConfig Configuração do ambiente de testes unitários, incluindo emuladores.

Aliases de tipo

Digite Alias Descrição
Configuração do emulador Configuração para um determinado emulador.
Opções de token Mais opções para o token de usuário simulado ser usado para testes, incluindo declarações personalizadas especificadas pelo desenvolvedor ou substituições opcionais para cargas de token do Firebase Auth.

assertFails()

Afirme que a promessa será rejeitada com um erro de "permissão negada".

Útil para fazer valer uma determinada solicitação a ser negada pelas regras de segurança. Veja o exemplo abaixo. Esta função reconhece erros de permissão negada de SDKs JS de banco de dados, Firestore e armazenamento.

Assinatura:

export declare function assertFails(pr: Promise<any>): Promise<any>;

Parâmetros

Parâmetro Tipo Descrição
pr Promessa<qualquer> a promessa a ser afirmada

Retorna:

Promessa<qualquer>

uma promessa que será cumprida se pr for rejeitado com "permissão negada". Se pr for rejeitado com qualquer outro erro ou resolvido, a promessa retornada será rejeitada.

Exemplo

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

assertSucesso()

Afirme a promessa de sucesso.

Esta é uma função autônoma que retorna a promessa passada como está, mas pode ser usada para fins de documentação no código de teste para enfatizar que uma determinada solicitação deve ser bem-sucedida (por exemplo, permitida por regras).

Assinatura:

export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;

Parâmetros

Parâmetro Tipo Descrição
pr Promessa<T>

Retorna:

Promessa<T>

Exemplo

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

inicializarTestEnvironment()

Inicializa um ambiente de teste para testes unitários de regras. Chame esta função primeiro para configuração de teste.

Requer emuladores em execução. Esta função tenta descobrir esses emuladores por meio de variáveis ​​de ambiente ou do hub do Firebase Emulator se hosts e portas não forem especificados. É altamente recomendável especificar regras de segurança para emuladores usados ​​em testes. Veja o exemplo mínimo abaixo.

Assinatura:

export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;

Parâmetros

Parâmetro Tipo Descrição
configuração TestEnvironmentConfig a configuração para emuladores. A maioria dos campos são opcionais se puderem ser descobertos

Retorna:

Promessa< RegrasTestEnvironment >

uma promessa que é resolvida com um ambiente pronto para teste ou rejeitada por erro.

Exemplo

const testEnv = await initializeTestEnvironment({
  firestore: {
    rules: fs.readFileSync("/path/to/firestore.rules", "utf8"), // Load rules from file
    // host and port can be omitted if they can be discovered from the hub.
  },
  // ...
});

withFunctionTriggersDisabled()

Execute uma função de configuração com os acionadores do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o Realtime Database ou o emulador do Cloud Firestore sem acionar Cloud Functions emulados localmente.

Este método funciona apenas com Firebase CLI versão 8.13.0 ou superior. Essa sobrecarga funciona somente se o host:port do hub do emulador for especificado pela variável de ambiente FIREBASE_EMULATOR_HUB.

Assinatura:

export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;

Parâmetros

Parâmetro Tipo Descrição
fn () => TResultado | Promessa<TResult> uma função que pode ser sincronizada ou assíncrona (retorna uma promessa)

Retorna:

Promessa<TResult>

withFunctionTriggersDisabled()

Execute uma função de configuração com os acionadores do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o Realtime Database ou o emulador do Cloud Firestore sem acionar Cloud Functions emulados localmente.

Este método funciona apenas com Firebase CLI versão 8.13.0 ou superior. O hub do emulador deve estar em execução, cujo host e porta são especificados nesta sobrecarga.

Assinatura:

export declare function withFunctionTriggersDisabled<TResult>(hub: {
    host: string;
    port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;

Parâmetros

Parâmetro Tipo Descrição
eixo {host: string; número da porta; } o host e a porta do Emulator Hub (ex: {host: 'localhost', port: 4400} )
fn () => TResultado | Promessa<TResult> uma função que pode ser sincronizada ou assíncrona (retorna uma promessa)

Retorna:

Promessa<TResult>

Configuração do emulador

Configuração para um determinado emulador.

Assinatura:

export declare type EmulatorConfig = {
    rules?: string;
} & (HostAndPort | {});

Opções de token

Mais opções para o token de usuário simulado ser usado para testes, incluindo declarações personalizadas especificadas pelo desenvolvedor ou substituições opcionais para cargas de token do Firebase Auth.

Assinatura:

export declare type TokenOptions = {
    iat?: number;
    exp?: number;
    auth_time?: number;
    provider_id?: 'anonymous';
    email?: string;
    email_verified?: boolean;
    phone_number?: string;
    name?: string;
    picture?: string;
    firebase?: {
        sign_in_provider: FirebaseSignInProvider;
        identities?: {
            [provider in FirebaseSignInProvider]?: string[];
        };
    };
    aud?: string;
    iss?: string;
    [claim: string]: unknown;
    uid?: never;
    sub?: never;
    user_id?: never;
};