Interfaz de RulesTestEnvironment

Un objeto que se usa para controlar el entorno de pruebas de unidades de reglas. Se puede usar con el objetivo de crear RulesTestContext para diferentes situaciones de autenticación.

Signature:

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 especifica o se detecta durante la creación del entorno de pruebas.
projectId cadena El ID del proyecto especificado o detectado durante la creación del entorno de prueba.

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 que se muestra tendrán un token de Firebase Auth de prueba adjunto.
limpieza() Al 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, lo que permite una salida limpia.Este método no cambia el estado en los emuladores de ninguna manera. Para restablecer 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 de todos los buckets del emulador de Storage.
unauthenticatedContext() Crea un RulesTestContext que se comporte como un cliente que NO haya accedido a través de Firebase Auth.Las solicitudes creadas a través del contexto que se muestra no tendrán tokens de Firebase Auth adjuntos.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

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

Signature:

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

RulesTestEnvironment.projectId

El ID del proyecto especificado o detectado durante la creación del entorno de prueba.

Signature:

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 un token de Firebase Auth de prueba adjunto.

Signature:

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

Parámetros

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

Devuelve:

RulesTestContext

Ejemplo

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

RulesTestEnvironment.cleanup()

Al 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, lo que permite una salida limpia.

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

Signature:

cleanup(): Promise<void>;

Devuelve:

Promise<void>

RulesTestEnvironment.clearDatabase()

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

Signature:

clearDatabase(): Promise<void>;

Devuelve:

Promise<void>

RulesTestEnvironment.clearFirestore()

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

Signature:

clearFirestore(): Promise<void>;

Devuelve:

Promise<void>

RulesTestEnvironment.clearStorage()

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

Signature:

clearStorage(): Promise<void>;

Devuelve:

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

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

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

Signature:

unauthenticatedContext(): RulesTestContext;

Devuelve:

RulesTestContext

Ejemplo

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

RulesTestEnvironment.withSecurityRulesDisabled()

Signature:

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

Parámetros

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

Devuelve:

Promise<void>