Interfaccia RulesTestEnvironment

Un oggetto utilizzato per controllare l'ambiente di test delle unità di regole. Può essere utilizzato per creare RulesTestContext per diverse situazioni di autenticazione.

Firma:

export interface RulesTestEnvironment 

Proprietà

Proprietà Tipo Descrizione
emulatori { database?: HostAndPort; Firestore?: HostAndPort; spazio di archiviazione?: HostAndPort; } Una copia di sola lettura della configurazione dell'emulatore specificata o rilevata al momento della creazione dell'ambiente di test.
projectId stringa L'ID progetto specificato o rilevato al momento della creazione dell'ambiente di test.

Metodi

Metodo Descrizione
authenticatedContext(user_id, tokenOptions) Crea un RulesTestContext che si comporta come un utente Firebase Auth autenticato.Alle richieste create tramite il contesto restituito sarà associato un token Firebase Auth fittizio.
cleanup() Alla fine del codice di test, chiama la funzione di pulizia. Elimina tutti i RulesTestContext creati nell'ambiente di test e ripulisci le risorse sottostanti, consentendo un'uscita pulita.Questo metodo non modifica in alcun modo lo stato negli emulatori. Per reimpostare i dati tra un test e l'altro, consulta i criteri clearDatabase(), clearFirestore() e clearStorage().
clearDatabase() Cancella tutti i dati nello spazio dei nomi dell'emulatore di Realtime Database.
clearFirestore() Cancella i dati di Firestore che appartengono a projectId nell'emulatore Firestore.
clearStorage() Cancella i file e i metadati di Storage in tutti i bucket nell'emulatore di Storage.
unauthenticatedContext() Crea un oggetto RulesTestContext che si comporta come un client che NON ha eseguito l'accesso tramite Firebase Auth.Alle richieste create tramite il contesto restituito non saranno collegati i token Firebase Auth.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

Una copia di sola lettura della configurazione dell'emulatore specificata o rilevata al momento della creazione dell'ambiente di test.

Firma:

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

RulesTestEnvironment.projectId

L'ID progetto specificato o rilevato al momento della creazione dell'ambiente di test.

Firma:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Crea un oggetto RulesTestContext che si comporta come un utente Firebase Auth autenticato.

Alle richieste create tramite il contesto restituito sarà allegato un token Firebase Auth fittizio.

Firma:

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

Parametri

Parametro Tipo Descrizione
user_id stringa lo User-ID dell'utente. Specifica il valore di "user_id" e "sub" sul token
tokenOptions TokenOptions attestazioni o override personalizzati per i payload dei token Firebase Auth

Resi:

RulesTestContext

Esempio

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

RulesTestEnvironment.cleanup()

Alla fine del codice di test, chiama la funzione di pulizia. Elimina tutti i RulesTestContext creati nell'ambiente di test e ripulisci le risorse sottostanti, consentendo un'uscita pulita.

Questo metodo non modifica in alcun modo lo stato negli emulatori. Per reimpostare i dati tra un test e l'altro, consulta clearDatabase(), clearFirestore() e clearStorage().

Firma:

cleanup(): Promise<void>;

Resi:

Promise<void>

RulesTestEnvironment.clearDatabase()

Cancella tutti i dati nello spazio dei nomi dell'emulatore di Realtime Database.

Firma:

clearDatabase(): Promise<void>;

Resi:

Promise<void>

RulesTestEnvironment.clearFirestore()

Cancella i dati nel database Firestore predefinito per projectId nell'emulatore Firestore.

Firma:

clearFirestore(): Promise<void>;

Resi:

Promise<void>

RulesTestEnvironment.clearStorage()

Cancella i file e i metadati di Storage nel bucket attivo nell'emulatore di Storage.

Firma:

clearStorage(): Promise<void>;

Resi:

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

Crea un oggetto RulesTestContext che si comporta come un client che NON ha eseguito l'accesso tramite Firebase Auth.

Alle richieste create tramite il contesto restituito non saranno collegati token Firebase Auth.

Firma:

unauthenticatedContext(): RulesTestContext;

Resi:

RulesTestContext

Esempio

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

RulesTestEnvironment.withSecurityRulesDisabled()

Firma:

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

Parametri

Parametro Tipo Descrizione
callback (context: RulesTestContext) => Promessa<void>

Resi:

Promise<void>