Interfaz de RulesTestEnvironment

Es un objeto que se usa para controlar el entorno de prueba de unidades de reglas. Se puede usar para crear RulesTestContext para diferentes situaciones de autenticación.

Firma:

export interface RulesTestEnvironment 

Propiedades

Propiedad Tipo Descripción
emuladores { base de datos?: HostAndPort Firestore?: HostAndPort almacenamiento?: HostAndPort }. Es una copia de solo lectura de la configuración del emulador que se especificó o se descubrió durante la creación del entorno de pruebas.
projectId string El ID del proyecto especificado o descubierto cuando se creó el entorno de pruebas.

Métodos

Método Descripción
authenticatedContext(user_id, tokenOptions) Crea un RulesTestContext que se comporte como un usuario autenticado de Firebase Auth.Las solicitudes creadas a través del contexto devuelto tendrán un token de Firebase Auth simulado.
cleanup() En la parte final de tu código de prueba, llama a la función de limpieza. Destruye todos los RulesTestContexts creados en el entorno de prueba y limpia los recursos subyacentes, lo que permite una salida limpia.Este método no cambia el estado en los emuladores de ninguna manera. Para restablecer los datos entre pruebas, consulta clearDatabase(), clearFirestore() y clearStorage().
clearDatabase() Borra todos los datos del espacio de nombres del emulador de Realtime Database.
clearFirestore() Borra los datos de Firestore que pertenezcan a projectId en el emulador de Firestore.
clearStorage() Borra los archivos y metadatos de Storage en todos los buckets del emulador de Storage.
unauthenticatedContext() Crea un RulesTestContext que se comporte como un cliente que NO accedió a través de Firebase Auth.Las solicitudes creadas a través del contexto mostrado no tendrán tokens de Firebase Auth adjuntos.
withSecurityRulesDisabled(devolución de llamada)

ReglasTestEnvironment.Emuladores

Es una copia de solo lectura de la configuración del emulador que se especificó o se descubrió durante la creación del entorno de pruebas.

Firma:

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

RulesTestEnvironment.projectId

El ID del proyecto especificado o descubierto cuando se creó el entorno de pruebas.

Firma:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Crea 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 Firebase Auth simulado.

Firma:

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

Parámetros

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

Muestra:

RulesTestContext.

Ejemplo

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

RulesTestEnvironment.cleanup()

En la parte final de tu código de prueba, llama a la función de limpieza. Destruye todos los RulesTestContexts creados en el entorno de pruebas y limpia los recursos subyacentes para permitir una salida limpia.

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

Firma:

cleanup(): Promise<void>;

Muestra:

Promesa<void>

RulesTestEnvironment.clearDatabase()

Borra todos los datos del espacio de nombres del emulador de Realtime Database.

Firma:

clearDatabase(): Promise<void>;

Muestra:

Promesa<void>

RulesTestEnvironment.clearFirestore()

Borra los datos de la base de datos predeterminada de Firestore para projectId en el emulador de Firestore.

Firma:

clearFirestore(): Promise<void>;

Muestra:

Promesa<void>

RulesTestEnvironment.clearStorage()

Borra los archivos y metadatos de Storage en el bucket activo en el emulador de Storage.

Firma:

clearStorage(): Promise<void>;

Muestra:

Promesa<void>

RulesTestEnvironment.unauthenticatedContext()

Crea un RulesTestContext que se comporte como un cliente que NO accedió a través de Firebase Auth.

Las solicitudes creadas a través del contexto mostrado no tendrán tokens de Firebase Auth adjuntos.

Firma:

unauthenticatedContext(): RulesTestContext;

Muestra:

RulesTestContext.

Ejemplo

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

RulesTestEnvironment.withSecurityRulesDisabled()

Firma:

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

Parámetros

Parámetro Tipo Descripción
callback (contexto: RulesTestContext) => Promesa<void>

Muestra:

Promesa<void>