Interfejs reguł środowiska testowego

Obiekt używany do sterowania środowiskiem testowania jednostek reguł. Można jej używać do tworzenia elementu RulesTestContext na potrzeby różnych sytuacji uwierzytelniania.

Podpis:

export interface RulesTestEnvironment 

Właściwości

Właściwość Typ Opis
emulatory {baza danych?: HostAndPort; Firestore?: HostAndPort; miejsce na dane?: HostAndPort; } Kopia konfiguracji emulatora określona lub wykryta podczas tworzenia środowiska testowego. Kopia konfiguracji emulatora jest dostępna tylko do odczytu.
projectId string, Identyfikator projektu określony lub wykryty podczas tworzenia środowiska testowego.

Metody

Metoda Opis
authenticatedContext(user_id, tokenOptions) Utwórz RulesTestContext, który zachowuje się jak uwierzytelniony użytkownik Uwierzytelniania Firebase.Żądania utworzone za pomocą zwróconego kontekstu będą miały dołączony próbny token uwierzytelniania Firebase.
cleanup() Wywołaj funkcję czyszczenia na samym końcu kodu testowego. Zniszcz wszystkie elementy RulesTestContexts utworzone w środowisku testowym i wyczyść zasoby bazowe, co pozwoli uzyskać czyste wyjście.Ta metoda w żaden sposób nie zmienia stanu w emulatorach. Aby zresetować dane między testami, zobacz clearDatabase(), clearFirestore() i clearStorage().
clearDatabase() Wyczyść wszystkie dane w przestrzeni nazw emulatora bazy danych czasu rzeczywistego.
clearFirestore() Wyczyść w Firestore dane, które należą do obszaru projectId w emulatorze Firestore.
clearStorage() Wyczyść pliki i metadane pamięci masowej we wszystkich zasobnikach w emulatorze pamięci masowej.
unauthenticatedContext() Utwórz RulesTestContext, który zachowuje się jak klient, który NIE jest zalogowany przez Uwierzytelnienie Firebase.Żądania utworzone za pomocą zwróconego kontekstu nie będą miały dołączonych tokenów uwierzytelniania Firebase.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

Kopia konfiguracji emulatora określona lub wykryta podczas tworzenia środowiska testowego. Kopia konfiguracji emulatora jest dostępna tylko do odczytu.

Podpis:

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

RulesTestEnvironment.projectId

Identyfikator projektu określony lub wykryty podczas tworzenia środowiska testowego.

Podpis:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Utwórz RulesTestContext, który zachowuje się jak uwierzytelniony użytkownik uwierzytelniania Firebase.

Żądania utworzone za pomocą zwróconego kontekstu będą miały dołączony próbny token uwierzytelniania Firebase.

Podpis:

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

Parametry

Parametr Typ Opis
user_id string, identyfikator użytkownika. Określa wartość „user_id” i „sub” w tokenie
tokenOptions TokenOptions niestandardowe deklaracje lub zastąpienia ładunków tokena uwierzytelniania Firebase

Zwroty:

RulesTestContext

Przykład

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

RulesTestEnvironment.cleanup()

Wywołaj funkcję czyszczenia na samym końcu kodu testowego. Zniszcz wszystkie elementy RulesTestContexts utworzone w środowisku testowym i wyczyść zasoby bazowe, aby uzyskać czyste wyjście.

Ta metoda w żaden sposób nie zmienia stanu w emulatorach. Aby zresetować dane między testami, zobacz clearDatabase(), clearFirestore() i clearStorage().

Podpis:

cleanup(): Promise<void>;

Zwroty:

Promise<void>

RulesTestEnvironment.clearDatabase()

Wyczyść wszystkie dane w przestrzeni nazw emulatora bazy danych czasu rzeczywistego.

Podpis:

clearDatabase(): Promise<void>;

Zwroty:

Promise<void>

RulesTestEnvironment.clearFirestore()

Wyczyść dane w domyślnej bazie danych Firestore dla projectId w emulatorze Firestore.

Podpis:

clearFirestore(): Promise<void>;

Zwroty:

Promise<void>

RulesTestEnvironment.clearStorage()

Wyczyść pliki i metadane pamięci masowej w aktywnym zasobniku w emulatorze pamięci masowej.

Podpis:

clearStorage(): Promise<void>;

Zwroty:

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

Utwórz RulesTestContext, który zachowuje się jak klient, który NIE jest zalogowany przez Uwierzytelnienie Firebase.

Żądania utworzone za pomocą zwróconego kontekstu nie będą miały dołączonych tokenów uwierzytelniania Firebase.

Podpis:

unauthenticatedContext(): RulesTestContext;

Zwroty:

RulesTestContext

Przykład

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

RulesTestEnvironment.withSecurityRulesDisabled()

Podpis:

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

Parametry

Parametr Typ Opis
wywołanie zwrotne (Kontekst: RulesTestContext) => Obietnica<void>

Zwroty:

Promise<void>