Funciones
Función | Descripción |
---|---|
afirmar falla (pr) | Afirme que la promesa será rechazada con un error de "permiso denegado". Útil para afirmar que una determinada solicitud sea denegada por las reglas de seguridad. Vea el ejemplo a continuación. Esta función reconoce los errores de permiso denegado de los SDK de Database, Firestore y Storage JS. |
afirmar tiene éxito (pr) | Afirme que la promesa 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 usar con fines de documentación en el código de prueba para enfatizar que una determinada solicitud debe tener éxito (por ejemplo, permitida por las reglas). |
initializeTestEnvironment(config) | Inicializa un entorno de prueba para las pruebas unitarias de reglas. Primero llame a esta función para la configuración de prueba. Requiere emuladores para funcionar. Esta función intenta descubrir esos emuladores a través de variables de entorno o a través del concentrador Firebase Emulator si no se especifican hosts ni puertos. Se recomienda encarecidamente especificar reglas de seguridad para los emuladores utilizados para las pruebas. Vea el ejemplo mínimo a continuación. |
withFunctionTriggersDisabled(fn) | Ejecute una función de configuración con los activadores de Cloud Functions en segundo plano deshabilitados. Esto se puede usar 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 la variable de entorno FIREBASE_EMULATOR_HUB especifica el puerto: host del concentrador del emulador. |
withFunctionTriggersDisabled(hub, fn) | Ejecute una función de configuración con los activadores de Cloud Functions en segundo plano deshabilitados. Esto se puede usar 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 |
---|---|
host y puerto | Un objeto que contiene el nombre de host y el número de puerto de un emulador. |
ReglasTestContext | Un contexto de prueba que representa a un cliente. Se puede usar para acceder a emuladores para pruebas unitarias de reglas. |
ReglasPruebaEntorno | Un objeto utilizado para controlar el entorno de prueba de la unidad de reglas. Se puede usar para crear RulesTestContext para diferentes situaciones de autenticación. |
TestEnvironmentConfig | Configuración del entorno de pruebas unitarias, incluidos los emuladores. |
Tipo de alias
Alias de tipo | Descripción |
---|---|
EmulatorConfig | Configuración para un emulador dado. |
TokenOptions | Más opciones para que el token de usuario simulado se use para las pruebas, incluidos los reclamos personalizados especificados por el desarrollador o anulaciones opcionales para las cargas útiles del token de Firebase Auth. |
afirmar falla ()
Afirme que la promesa será rechazada con un error de "permiso denegado".
Útil para afirmar que una determinada solicitud sea denegada por las reglas de seguridad. Vea el ejemplo a continuación. Esta función reconoce los 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 | Escribe | Descripción |
---|---|---|
relaciones públicas | Promesa <cualquiera> | la promesa de ser afirmada |
Devoluciones:
Promesa <cualquiera>
una Promesa que se cumple si se rechaza pr 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 tiene éxito ()
Afirmar la promesa de tener éxito.
Esta es una función no operativa que devuelve la promesa aprobada tal como está, pero se puede usar con fines de documentación 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 | Escribe | Descripción |
---|---|---|
relaciones públicas | Promesa<T> |
Devoluciones:
Promesa<T>
Ejemplo
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
initializeTestEnvironment()
Inicializa un entorno de prueba para las pruebas unitarias de reglas. Primero llame a esta función para la configuración de prueba.
Requiere emuladores para funcionar. Esta función intenta descubrir esos emuladores a través de variables de entorno o a través del concentrador Firebase Emulator si no se especifican hosts ni puertos. 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 | Escribe | Descripción |
---|---|---|
configuración | TestEnvironmentConfig | la configuración para emuladores. La mayoría de los campos son opcionales si se pueden descubrir |
Devoluciones:
Promise< ReglasEntorno de prueba >
una promesa que se resuelve con un entorno listo para la prueba, o se rechaza por 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.
},
// ...
});
withFunctionTriggersDisabled()
Ejecute una función de configuración con los activadores de Cloud Functions en segundo plano deshabilitados. Esto se puede usar 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 la variable de entorno FIREBASE_EMULATOR_HUB especifica el puerto: host del concentrador del emulador.
Firma:
export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parámetros
Parámetro | Escribe | Descripción |
---|---|---|
fn | () => TResultado | Promesa<TResultado> | una función que puede ser sincronizada o asíncrona (devuelve una promesa) |
Devoluciones:
Promesa<TResultado>
withFunctionTriggersDisabled()
Ejecute una función de configuración con los activadores de Cloud Functions en segundo plano deshabilitados. Esto se puede usar 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 | Escribe | 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>
EmulatorConfig
Configuración para un emulador dado.
Firma:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
TokenOptions
Más opciones para que el token de usuario simulado se use para las pruebas, incluidos los reclamos personalizados especificados 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;
};