Interfaz RulesTestEnvironment

Un objeto utilizado para controlar el entorno de prueba unitaria de reglas. Se puede utilizar para crear RulesTestContext para diferentes situaciones de autenticación.

Firma:

export interface RulesTestEnvironment 

Propiedades

Propiedad Tipo Descripción
emuladores {base de datos?: HostAndPort ; ¿Tienda de fuego?: HostAndPort ; almacenamiento?: HostAndPort ; } Una copia de solo lectura de la configuración del emulador especificada o descubierta durante la creación del entorno de prueba.
Projecto ID cadena El ID del proyecto especificado o descubierto en la creación del entorno de prueba.

Métodos

Método Descripción
contextoautenticado(user_id, tokenOptions) Cree un RulesTestContext que se comporte como un usuario autenticado de Firebase Auth. Las solicitudes creadas a través del contexto devuelto tendrán adjunto un token de autenticación de Firebase simulado.
limpiar() Al final de su código de prueba, llame a la función de limpieza. Destruya todos los RulesTestContexts creados en el entorno de prueba y limpie los recursos subyacentes, permitiendo una salida limpia. Este método no cambia el estado en los emuladores de ninguna manera. Para restablecer datos entre pruebas, consulte clearDatabase() , clearFirestore() y clearStorage() .
borrar base de datos() Borre todos los datos en el espacio de nombres del emulador de Realtime Database.
borrarFirestore() Borre los datos en Firestore que pertenecen al projectId en el emulador de Firestore.
almacenaje vacío() Borre los archivos y metadatos de almacenamiento en todos los depósitos del emulador de almacenamiento.
Contexto no autenticado() Cree un RulesTestContext que se comporte como un cliente que NO ha iniciado sesión a través de Firebase Auth. Las solicitudes creadas a través del contexto devuelto no tendrán tokens de autenticación de Firebase adjuntos.
conSecurityRulesDisabled(devolución de llamada)

RulesTestEnvironment.emuladores

Una copia de solo lectura de la configuración del emulador especificada o descubierta durante la creación del entorno de prueba.

Firma:

readonly emulators: {
        database?: HostAndPort;
        firestore?: HostAndPort;
        storage?: HostAndPort;
    };

ReglasTestEnvironment.projectId

El ID del proyecto especificado o descubierto en la creación del entorno de prueba.

Firma:

readonly projectId: string;

ReglasTestEnvironment.authenticatedContext()

Cree un RulesTestContext que se comporte como un usuario autenticado de Firebase Auth.

Las solicitudes creadas a través del contexto devuelto tendrán adjunto un token de autenticación de Firebase simulado.

Firma:

authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;

Parámetros

Parámetro Tipo Descripción
ID_usuario cadena el ID de usuario del usuario. Especifica el valor de "user_id" y "sub" en el token
opciones de token Opciones de token reclamaciones personalizadas o anulaciones para cargas útiles de tokens de autenticación de Firebase

Devoluciones:

ReglasContexto de prueba

Ejemplo

const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });

ReglasTestEnvironment.cleanup()

Al final de su código de prueba, llame a la función de limpieza. Destruya todos los RulesTestContexts creados en el entorno de prueba y limpie los recursos subyacentes, permitiendo una salida limpia.

Este método no cambia el estado en los emuladores de ninguna manera. Para restablecer datos entre pruebas, consulte clearDatabase() , clearFirestore() y clearStorage() .

Firma:

cleanup(): Promise<void>;

Devoluciones:

Promesa<nulo>

ReglasTestEnvironment.clearDatabase()

Borre todos los datos en el espacio de nombres del emulador de Realtime Database.

Firma:

clearDatabase(): Promise<void>;

Devoluciones:

Promesa<nulo>

ReglasTestEnvironment.clearFirestore()

Borre los datos en Firestore que pertenecen al projectId en el emulador de Firestore.

Firma:

clearFirestore(): Promise<void>;

Devoluciones:

Promesa<nulo>

ReglasTestEnvironment.clearStorage()

Borre los archivos y metadatos de almacenamiento en todos los depósitos del emulador de almacenamiento.

Firma:

clearStorage(): Promise<void>;

Devoluciones:

Promesa<nulo>

RulesTestEnvironment.unauthenticatedContext()

Cree un RulesTestContext que se comporte como un cliente que NO ha iniciado sesión a través de Firebase Auth.

Las solicitudes creadas a través del contexto devuelto no tendrán tokens de autenticación de Firebase adjuntos.

Firma:

unauthenticatedContext(): RulesTestContext;

Devoluciones:

ReglasContexto de prueba

Ejemplo

const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });

ReglasTestEnvironment.withSecurityRulesDisabled()

Firma:

withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;

Parámetros

Parámetro Tipo Descripción
llamar de vuelta (contexto: ReglasTestContext ) => Promesa<nulo>

Devoluciones:

Promesa<nulo>