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