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:
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:
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>