Funções
Função | Descrição |
---|---|
assertFails(pr) (link em inglês) | Declarar a promessa de ser rejeitada com uma "permissão negada" Útil para declarar que uma determinada solicitação será negada pelas regras de segurança. Confira o exemplo abaixo. Essa função reconhece erros de permissão negada dos SDKs do Database, Firestore e Storage para JavaScript. |
assertSucceeds(pr) (em inglês) | Declarar a promessa de ser rejeitada com uma "permissão negada" Esta é uma função autônoma que retorna a promessa transmitida no estado em que se encontra, mas pode ser usada para fins documentais no código de teste para enfatizar que uma determinada solicitação deve ser bem-sucedida (por exemplo, permitida por regras). |
InitializeTestEnvironment(config) | Inicializa um ambiente de teste para testes de unidade de regras. Chame essa função primeiro para configurar o teste.É necessário que os emuladores estejam em execução. Essa função tenta descobrir esses emuladores por meio de variáveis de ambiente ou do hub do emulador do Firebase se hosts e portas não forem especificados. É altamente recomendável especificar regras de segurança para emuladores usados em testes. Veja um exemplo mínimo abaixo. |
withFunctionTriggersDisabled(fn). | Executar uma função de configuração com os gatilhos do Cloud Functions em segundo plano desativados. Ele pode ser usado para importar dados para o emulador do Realtime Database ou Cloud Firestore sem acionar Cloud Functions emulado localmente.Esse método só funciona com a CLI do Firebase versão 8.13.0 ou mais recente. Essa sobrecarga só funciona se a porta host do hub do emulador for especificada pela variável de ambiente FIREBASE_EMULATOR_HUB. |
withFunctionTriggersDisabled(hub, fn) | Executar uma função de configuração com os gatilhos do Cloud Functions em segundo plano desativados. Ele pode ser usado para importar dados para o emulador do Realtime Database ou Cloud Firestore sem acionar Cloud Functions emulado localmente.Esse método só funciona com a CLI do Firebase versão 8.13.0 ou mais recente. O hub do emulador precisa estar em execução, qual host e porta são especificados nessa sobrecarga. |
Interfaces
Interface | Descrição |
---|---|
HostAndPort (link em inglês) | Um objeto que contém o nome do host e o número da porta de um emulador. |
RulesTestContext (link em inglês) | Um contexto de teste que representa um cliente. Pode ser usado para acessar emuladores para teste de unidade de regras. |
RulesTestEnvironment (link em inglês) | 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 (link em inglês) | Configuração do ambiente de teste de unidade, incluindo emuladores. |
Aliases de tipos
Alias de tipo | Descrição |
---|---|
EmulatorConfig (em inglês) | Configuração para um determinado emulador. |
TokenOptions (em inglês) | Mais opções para o token de usuário simulado a ser usado para testes, incluindo declarações personalizadas especificadas pelo desenvolvedor ou substituições opcionais para payloads de tokens do Firebase Auth. |
assertFails()
Declarar a promessa de ser rejeitada com uma "permissão negada" erro.
Útil para declarar que determinada solicitação será negada pelas regras de segurança. Confira o exemplo abaixo. Essa função reconhece erros de permissão negada dos SDKs do Database, Firestore e Storage para JavaScript.
Assinatura:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
PR | Promessa<qualquer> | a promessa a ser declarada |
Retorna:
Promessa<qualquer>
uma promessa que será cumprida se pr for rejeitada com "permission denied". 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'), { ... });
assertSucceeds()
Declare a promessa de sucesso.
Essa é uma função autônoma que retorna a promessa transmitida no estado em que se encontra, mas pode ser usada para fins documentais 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'), { ... });
inicializeTestEnvironment().
Inicializa um ambiente de teste para testes de unidade de regras. Chame essa função primeiro para configurar o teste.
Requer que os emuladores estejam em execução. Essa função tenta descobrir esses emuladores por meio de variáveis de ambiente ou do hub do emulador do Firebase se hosts e portas não forem especificados. É altamente recomendável especificar regras de segurança para emuladores usados em testes. Veja um exemplo mínimo abaixo.
Assinatura:
export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
config | TestEnvironmentConfig (link em inglês) | a configuração dos emuladores. A maioria dos campos é opcional se eles puderem ser descobertos |
Retorna:
Promessa<RulesTestEnvironment>
uma promessa que é resolvida com um ambiente pronto para teste ou rejeitada em caso de 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()
Executar uma função de configuração com os gatilhos do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o emulador do Realtime Database ou Cloud Firestore sem acionar Cloud Functions emulado localmente.
Este método só funciona com a CLI do Firebase versão 8.13.0 ou mais recente. Essa sobrecarga só funciona se o host:porta 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 | () => Resultado | Promessa<TResult> | uma função que pode ser síncrona ou assíncrona (retorna uma promessa) |
Retorna:
Promessa<TResult>
withFunctionTriggersDisabled()
Executar uma função de configuração com os gatilhos do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o emulador do Realtime Database ou Cloud Firestore sem acionar Cloud Functions emulado localmente.
Este método só funciona com a CLI do Firebase versão 8.13.0 ou mais recente. O hub do emulador precisa estar em execução, qual host e porta são especificados nessa 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 |
---|---|---|
hub | { host: string; port: number; } | O host e a porta do Hub do emulador (por exemplo: {host: 'localhost', port: 4400} ) |
fn | () => Resultado | Promessa<TResult> | uma função que pode ser síncrona ou assíncrona (retorna uma promessa) |
Retorna:
Promessa<TResult>
EmulatorConfig
Configuração para um determinado emulador.
Assinatura:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
TokenOptions
Mais opções para o token de usuário simulado a ser usado para testes, incluindo declarações personalizadas especificadas pelo desenvolvedor ou substituições opcionais para payloads de tokens 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;
};