Funciones
Función | Descripción |
---|---|
afirmarFalla(pr) | Afirme la promesa de ser rechazada con un error de "permiso denegado". Útil para hacer valer una determinada solicitud que las Reglas de seguridad denegarán. Vea el ejemplo a continuación. Esta función reconoce errores de permiso denegado de los SDK de Database, Firestore y Storage JS. |
afirmarSucceeds(pr) | Afirme la promesa de ser rechazada con un error de "permiso denegado". Esta es una función no operativa que devuelve la promesa aprobada tal como está, pero se puede utilizar con fines documentales en el código de prueba para enfatizar que una determinada solicitud debe tener éxito (por ejemplo, permitida por las reglas). |
inicializarEntornodeprueba(config) | Inicializa un entorno de prueba para pruebas unitarias de reglas. Llame a esta función primero para la configuración de la prueba. Requiere que se estén ejecutando emuladores. Esta función intenta descubrir esos emuladores a través de variables de entorno o mediante el centro de Firebase Emulator si los hosts y los puertos no están especificados. Se recomienda encarecidamente especificar reglas de seguridad para los emuladores utilizados para las pruebas. Vea el ejemplo mínimo a continuación. |
conFunctionTriggersDisabled(fn) | Ejecute una función de configuración con los activadores de Cloud Functions en segundo plano deshabilitados. Esto se puede utilizar para importar datos a Realtime Database o al emulador de Cloud Firestore sin activar Cloud Functions emuladas localmente. Este método solo funciona con Firebase CLI versión 8.13.0 o superior. Esta sobrecarga solo funciona si el host del concentrador del emulador: puerto está especificado por la variable de entorno FIREBASE_EMULATOR_HUB. |
conFunctionTriggersDisabled(hub, fn) | Ejecute una función de configuración con los activadores de Cloud Functions en segundo plano deshabilitados. Esto se puede utilizar para importar datos a Realtime Database o al emulador de Cloud Firestore sin activar Cloud Functions emuladas localmente. Este método solo funciona con Firebase CLI versión 8.13.0 o superior. El concentrador del emulador debe estar ejecutándose, cuyo host y puerto se especifican en esta sobrecarga. |
Interfaces
Interfaz | Descripción |
---|---|
HostYPuerto | Un objeto que contiene el nombre de host y el número de puerto de un emulador. |
ReglasContexto de prueba | Un contexto de prueba que representa a un cliente. Se puede utilizar para acceder a emuladores para pruebas unitarias de reglas. |
ReglasEntorno de prueba | Un objeto utilizado para controlar el entorno de prueba unitaria de reglas. Se puede utilizar para crear RulesTestContext para diferentes situaciones de autenticación. |
Configuración del entorno de prueba | Configuración del entorno de pruebas unitarias, incluidos emuladores. |
Tipo de alias
Tipo Alias | Descripción |
---|---|
Configuración del emulador | Configuración para un emulador determinado. |
Opciones de token | Más opciones para usar el token de usuario simulado en pruebas, incluidas reclamaciones personalizadas especificadas por el desarrollador o anulaciones opcionales para las cargas útiles del token de Firebase Auth. |
afirmarFalla()
Afirme la promesa de ser rechazada con un error de "permiso denegado".
Útil para hacer valer una determinada solicitud que las Reglas de seguridad denegarán. Vea el ejemplo a continuación. Esta función reconoce errores de permiso denegado de los SDK de Database, Firestore y Storage JS.
Firma:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
pr | Promesa <cualquiera> | la promesa a ser afirmada |
Devoluciones:
Promesa <cualquiera>
una Promesa que se cumple si pr se rechaza con "permiso denegado". Si pr se rechaza con cualquier otro error o se resuelve, la promesa devuelta se rechaza.
Ejemplo
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
afirmar éxitos()
Haga valer la promesa de tener éxito.
Esta es una función no operativa que devuelve la promesa aprobada tal como está, pero se puede utilizar con fines documentales en el código de prueba para enfatizar que una determinada solicitud debe tener éxito (por ejemplo, permitida por las reglas).
Firma:
export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
pr | Promesa<T> |
Devoluciones:
Promesa<T>
Ejemplo
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
inicializarEntornodePrueba()
Inicializa un entorno de prueba para pruebas unitarias de reglas. Llame a esta función primero para la configuración de la prueba.
Requiere que se estén ejecutando emuladores. Esta función intenta descubrir esos emuladores a través de variables de entorno o mediante el centro de Firebase Emulator si los hosts y los puertos no están especificados. Se recomienda encarecidamente especificar reglas de seguridad para los emuladores utilizados para las pruebas. Vea el ejemplo mínimo a continuación.
Firma:
export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
configuración | Configuración del entorno de prueba | la configuración para emuladores. La mayoría de los campos son opcionales si se pueden descubrir. |
Devoluciones:
Promesa < ReglasEntorno de prueba >
una promesa que se resuelve con un entorno listo para realizar pruebas o se rechaza en caso de error.
Ejemplo
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.
},
// ...
});
conFunctionTriggersDisabled()
Ejecute una función de configuración con los activadores de Cloud Functions en segundo plano deshabilitados. Esto se puede utilizar para importar datos a Realtime Database o al emulador de Cloud Firestore sin activar Cloud Functions emuladas localmente.
Este método solo funciona con Firebase CLI versión 8.13.0 o superior. Esta sobrecarga solo funciona si el host del concentrador del emulador: puerto está especificado por la variable de entorno FIREBASE_EMULATOR_HUB.
Firma:
export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
fn | () => TResultado | Promesa<TResultado> | una función que puede ser sincronizada o asíncrona (devuelve una promesa) |
Devoluciones:
Promesa<TResultado>
conFunctionTriggersDisabled()
Ejecute una función de configuración con los activadores de Cloud Functions en segundo plano deshabilitados. Esto se puede utilizar para importar datos a Realtime Database o al emulador de Cloud Firestore sin activar Cloud Functions emuladas localmente.
Este método solo funciona con Firebase CLI versión 8.13.0 o superior. El concentrador del emulador debe estar ejecutándose, cuyo host y puerto se especifican en esta sobrecarga.
Firma:
export declare function withFunctionTriggersDisabled<TResult>(hub: {
host: string;
port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
centro | { anfitrión: cadena; número de puerto; } | el host y el puerto de Emulator Hub (por ejemplo: {host: 'localhost', port: 4400} ) |
fn | () => TResultado | Promesa<TResultado> | una función que puede ser sincronizada o asíncrona (devuelve una promesa) |
Devoluciones:
Promesa<TResultado>
Configuración del emulador
Configuración para un emulador determinado.
Firma:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
Opciones de token
Más opciones para usar el token de usuario simulado en pruebas, incluidas reclamaciones personalizadas especificadas por el desarrollador o anulaciones opcionales para las cargas útiles del token de Firebase Auth.
Firma:
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;
};