Benutzeroberfläche von RulesTestEnvironment

Ein Objekt, mit dem die Testumgebung der Regeleinheit gesteuert wird. Kann verwendet werden, um RulesTestContext für verschiedene Authentifizierungssituationen zu erstellen.

Unterschrift:

export interface RulesTestEnvironment 

Attribute

Property Typ Beschreibung
Emulatoren { Datenbank?: HostAndPort; Firestore?: HostAndPort; Speicher?: HostAndPort; } Eine schreibgeschützte Kopie der Emulatorkonfiguration, die beim Erstellen der Testumgebung angegeben oder erkannt wurde.
projectId String Die Projekt-ID, die beim Erstellen der Testumgebung angegeben oder erkannt wurde.

Methoden

Method Beschreibung
authenticatedContext(user_id, tokenOptions) Erstellen Sie ein RulesTestContext, das sich wie ein authentifizierter Firebase Auth-Nutzer verhält.Anfragen, die über den zurückgegebenen Kontext erstellt werden, erhalten ein Pseudo-Firebase Auth-Token.
Cleanup() Rufen Sie ganz am Ende des Testcodes die Bereinigungsfunktion auf. Löschen Sie alle in der Testumgebung erstellten RulesTestContexts und bereinigen Sie die zugrunde liegenden Ressourcen, um ein sauberes Beenden zu ermöglichen.Diese Methode ändert den Status in Emulatoren in keiner Weise. Informationen zum Zurücksetzen von Daten zwischen Tests findest du in clearDatabase(), clearFirestore() und clearStorage().
clearDatabase() Alle Daten im Namespace „Realtime Database Emulator“ löschen.
clearFirestore() Löschen Sie Daten in Firestore, der zum projectId im Firestore-Emulator gehört.
clearStorage() Speicherdateien und Metadaten in allen Buckets im Storage-Emulator löschen.
unauthenticatedContext() Erstellen Sie ein RulesTestContext, das sich wie ein Client verhält, der NICHT über Firebase Auth angemeldet ist.Anfragen, die über den zurückgegebenen Kontext erstellt werden, haben keine Firebase Auth-Tokens.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

Eine schreibgeschützte Kopie der Emulatorkonfiguration, die beim Erstellen der Testumgebung angegeben oder erkannt wurde.

Unterschrift:

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

RulesTestEnvironment.projectId

Die Projekt-ID, die beim Erstellen der Testumgebung angegeben oder erkannt wurde.

Unterschrift:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Erstellen Sie ein RulesTestContext, das sich wie ein authentifizierter Firebase Auth-Nutzer verhält.

An Anfragen, die über den zurückgegebenen Kontext erstellt werden, ist ein Pseudo-Firebase-Auth-Token angehängt.

Unterschrift:

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

Parameter

Parameter Typ Beschreibung
user_id String Die User-ID des Nutzers. Gibt den Wert von „user_id“ und „sub“ im Token an
tokenOptions TokenOptions Benutzerdefinierte Anforderungen oder Überschreibungen für Firebase Auth-Token-Nutzlasten

Gibt zurück:

RulesTestContext

Beispiel

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

RulesTestEnvironment.cleanup()

Rufen Sie ganz am Ende des Testcodes die Bereinigungsfunktion auf. Löschen Sie alle RulesTestContexts, die in der Testumgebung erstellt wurden, und bereinigen Sie die zugrunde liegenden Ressourcen, um einen sauberen Exit zu ermöglichen.

Durch diese Methode wird der Status in Emulatoren in keiner Weise geändert. Informationen zum Zurücksetzen von Daten zwischen Tests findest du unter clearDatabase(), clearFirestore() und clearStorage().

Unterschrift:

cleanup(): Promise<void>;

Gibt zurück:

Promise<void>

RulesTestEnvironment.clearDatabase()

Alle Daten im Namespace „Realtime Database Emulator“ löschen.

Unterschrift:

clearDatabase(): Promise<void>;

Gibt zurück:

Promise<void>

RulesTestEnvironment.clearFirestore()

Löschen Sie im Firestore-Emulator Daten aus der Firestore-Standarddatenbank für projectId.

Unterschrift:

clearFirestore(): Promise<void>;

Gibt zurück:

Promise<void>

RulesTestEnvironment.clearStorage()

Löschen Sie Storage-Dateien und -Metadaten im aktiven Bucket im Storage-Emulator.

Unterschrift:

clearStorage(): Promise<void>;

Gibt zurück:

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

Erstellen Sie ein RulesTestContext, das sich wie ein Client verhält, der NICHT über Firebase Auth angemeldet ist.

An Anfragen, die über den zurückgegebenen Kontext erstellt werden, sind keine Firebase-Auth-Tokens angehängt.

Unterschrift:

unauthenticatedContext(): RulesTestContext;

Gibt zurück:

RulesTestContext

Beispiel

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

RulesTestEnvironment.withSecurityRulesDisabled()

Unterschrift:

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

Parameter

Parameter Typ Beschreibung
callback (Kontext: RulesTestContext) => Promise<void>

Gibt zurück:

Promise<void>