Interfejs reguł środowiska testowego

Obiekt używany do sterowania środowiskiem testowym reguł. Można jej używać do tworzenia zasady 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; pamięci masowej?: HostAndPort; Kopia konfiguracji emulatora tylko do odczytu określonej lub wykrytej podczas tworzenia środowiska testowego.
identyfikator projektu ciąg znaków Identyfikator projektu określony lub wykryty podczas tworzenia środowiska testowego.

Metody

Metoda Opis
authenticatedContext(user_id, tokenOptions) Utwórz RulesTestContext, który działa jak uwierzytelniony użytkownik Uwierzytelniania Firebase.Do żądań utworzonych na podstawie zwróconego kontekstu będzie dołączony próbny token uwierzytelniania Firebase.
cleanup(), Na samym końcu kodu testowego wywołaj funkcję czyszczenia. Zniszcz wszystkie obiekty RulesTestContexts utworzone w środowisku testowym i wyczyść bazowe zasoby, pozostawiając czyste wyjście.Ta metoda w żaden sposób nie zmienia stanu emulatorów. Informacje o resetowaniu danych między testami znajdziesz tutaj: clearDatabase(), clearFirestore() i clearStorage().
clearDatabase() Wyczyść wszystkie dane w przestrzeni nazw emulatora Bazy danych czasu rzeczywistego.
clearFirestore() Wyczyść dane w Firestore, które należą do elementu projectId, w emulatorze Firestore.
clearStorage() Wyczyść pliki i metadane Storage ze wszystkich zasobników w emulatorze pamięci masowej.
unauthenticatedContext(). Utwórz RulesTestContext, który działa jak klient, który NIE jest zalogowany przez Uwierzytelnianie Firebase.Do żądań utworzonych przy użyciu zwróconego kontekstu nie będą dołączone tokeny uwierzytelniania Firebase.
withSecurityRulesDisabled(wywołanie zwrotne)

ŚrodowiskoTestu reguł.emulators

Kopia konfiguracji emulatora tylko do odczytu określonej lub wykrytej podczas tworzenia środowiska testowego.

Podpis:

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

ŚrodowiskoTestu reguł.Identyfikator projektu

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

Podpis:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Utwórz RulesTestContext, który działa jak uwierzytelniony użytkownik Uwierzytelniania Firebase.

Do żądań utworzonych przy użyciu zwróconego kontekstu zostanie dołączony przykładowy token uwierzytelniania Firebase.

Podpis:

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

Parametry

Parametr Typ Opis
user_id ciąg znaków identyfikator użytkownika. Określa wartość parametru „user_id” i „subskr” w tokenie
Opcje tokenów TokenOptions deklaracje niestandardowe lub zastąpienia dla ładunków tokenów uwierzytelniania Firebase

Zwroty:

RulesTestContext

Przykład

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

RulesTestEnvironment.cleanup()

Na samym końcu kodu testowego wywołaj funkcję czyszczenia. Zniszcz wszystkie obiekty RulesTestContexts utworzone w środowisku testowym i wyczyść zasoby bazowe, umożliwiając czyste wyjście.

Ta metoda w żaden sposób nie zmienia stanu w emulatorach. Informacje o resetowaniu danych między testami znajdziesz tutaj: clearDatabase(), clearFirestore() i clearStorage().

Podpis:

cleanup(): Promise<void>;

Zwroty:

Obietnica<void>

RulesTestEnvironment.clearDatabase()

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

Podpis:

clearDatabase(): Promise<void>;

Zwroty:

Obietnica<void>

RulesTestEnvironment.clearFirestore()

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

Podpis:

clearFirestore(): Promise<void>;

Zwroty:

Obietnica<void>

RulesTestEnvironment.clearStorage()

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

Podpis:

clearStorage(): Promise<void>;

Zwroty:

Obietnica<void>

RulesTestEnvironment.unauthenticatedContext()

Utwórz RulesTestContext, który działa jak klient, który NIE jest zalogowany za pomocą Uwierzytelniania Firebase.

Do żądań utworzonych przy użyciu zwróconego kontekstu nie będą dołączone tokeny 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:

Obietnica<void>