Funções
Função | Descrição |
---|---|
assertFails(pr) | Afirme a promessa de ser rejeitada com um erro de "permissão negada". Útil para afirmar que um determinado pedido deve ser negado pelas Regras de Segurança. Veja exemplo abaixo. Esta função reconhece erros de permissão negada dos SDKs Database, Firestore e Storage JS. |
assertSucceeds(pr) | Afirme a promessa de ser rejeitada com um erro de "permissão negada". Esta é uma função no-op que retorna a promessa passada como está, 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 pelas regras). |
initializeTestEnvironment(config) | Inicializa um ambiente de teste para teste de unidade de regras. Chame esta função primeiro para configuração de teste. Requer emuladores em execução. Essa função tenta descobrir esses emuladores por meio de variáveis de ambiente ou pelo hub do Firebase Emulator se hosts e portas não forem especificados. É altamente recomendável especificar regras de segurança para emuladores usados para teste. Veja o exemplo mínimo abaixo. |
withFunctionTriggersDisabled(fn) | Execute uma função de configuração com acionadores do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o emulador do Realtime Database ou do Cloud Firestore sem acionar o Cloud Functions emulado localmente. Este método funciona apenas com o Firebase CLI versão 8.13.0 ou superior. Essa sobrecarga funciona apenas se o host do hub do emulador:porta for especificado pela variável de ambiente FIREBASE_EMULATOR_HUB. |
withFunctionTriggersDisabled(hub, fn) | Execute uma função de configuração com acionadores do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o emulador do Realtime Database ou do Cloud Firestore sem acionar o Cloud Functions emulado localmente. Este método funciona apenas com o 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 nessa sobrecarga. |
Interfaces
Interface | Descrição |
---|---|
HostAndPort | Um objeto que contém o nome do host e o número da porta de um emulador. |
RulesTestContext | Um contexto de teste que representa um cliente. Pode ser usado para acessar emuladores para teste de unidade 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 teste unitário, incluindo emuladores. |
Alias de tipo
Tipo de alias | Descrição |
---|---|
EmulatorConfig | Configuração para um determinado emulador. |
TokenOptions | Mais opções para o token de usuário simulado a ser usado para teste, incluindo declarações personalizadas especificadas pelo desenvolvedor ou substituições opcionais para cargas de token de autenticação do Firebase. |
assertFails()
Afirme a promessa de ser rejeitada com um erro de "permissão negada".
Útil para afirmar que um determinado pedido deve ser negado pelas Regras de Segurança. Veja exemplo abaixo. Esta função reconhece erros de permissão negada dos SDKs Database, Firestore e Storage JS.
Assinatura:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Parâmetros
Parâmetro | Modelo | Descrição |
---|---|---|
pr | Promessa <qualquer> | a promessa a ser afirmada |
Devoluções:
Promessa <qualquer>
uma Promessa que é cumprida se pr for rejeitada com "permissão negada". Se pr for rejeitado com qualquer outro erro ou resolvido, a promessa devolvida será rejeitada.
Exemplo
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
assertSucceeds()
Afirme a promessa de ser bem sucedido.
Esta é uma função no-op que retorna a promessa passada como está, 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 pelas regras).
Assinatura:
export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;
Parâmetros
Parâmetro | Modelo | Descrição |
---|---|---|
pr | Promessa<T> |
Devoluções:
Promessa<T>
Exemplo
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
inicializeTestEnvironment()
Inicializa um ambiente de teste para teste de unidade de regras. Chame esta função primeiro para configuração de teste.
Requer emuladores em execução. Essa função tenta descobrir esses emuladores por meio de variáveis de ambiente ou pelo hub do Firebase Emulator se hosts e portas não forem especificados. É altamente recomendável especificar regras de segurança para emuladores usados para teste. Veja o exemplo mínimo abaixo.
Assinatura:
export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;
Parâmetros
Parâmetro | Modelo | Descrição |
---|---|---|
configuração | TestEnvironmentConfig | a configuração para emuladores. A maioria dos campos são opcionais se puderem ser descobertos |
Devoluções:
Promessa< RegrasTesteAmbiente >
uma promessa que resolve com um ambiente pronto para teste ou rejeita 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()
Execute uma função de configuração com acionadores do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o emulador do Realtime Database ou do Cloud Firestore sem acionar o Cloud Functions emulado localmente.
Este método funciona apenas com o Firebase CLI versão 8.13.0 ou superior. Essa sobrecarga funciona apenas se o host do hub do emulador:porta 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 | Modelo | Descrição |
---|---|---|
fn | () => TResult | Promessa<TResult> | uma função que pode ser sincronizada ou assíncrona (retorna uma promessa) |
Devoluções:
Promessa<TResult>
withFunctionTriggersDisabled()
Execute uma função de configuração com acionadores do Cloud Functions em segundo plano desativados. Isso pode ser usado para importar dados para o emulador do Realtime Database ou do Cloud Firestore sem acionar o Cloud Functions emulado localmente.
Este método funciona apenas com o 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 nessa sobrecarga.
Assinatura:
export declare function withFunctionTriggersDisabled<TResult>(hub: {
host: string;
port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parâmetros
Parâmetro | Modelo | Descrição |
---|---|---|
eixo | { host: string; número da porta; } | o host e a porta do hub do emulador (ex: {host: 'localhost', port: 4400} ) |
fn | () => TResult | Promessa<TResult> | uma função que pode ser sincronizada ou assíncrona (retorna uma promessa) |
Devoluções:
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 teste, incluindo declarações personalizadas especificadas pelo desenvolvedor ou substituições opcionais para cargas de token de autenticação do Firebase.
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;
};