Funkcje
Funkcjonować | Opis |
---|---|
asertFails(pr) | Potwierdź, że obietnica zostanie odrzucona z powodu błędu „odmowa pozwolenia”. Przydatne do zapewnienia, że określone żądanie zostanie odrzucone przez Reguły Bezpieczeństwa. Zobacz przykład poniżej. Ta funkcja rozpoznaje błędy odmowy uprawnień z zestawów SDK Database, Firestore i Storage JS. |
AssertSucceeds(pr) | Potwierdź, że obietnica zostanie odrzucona z powodu błędu „odmowa pozwolenia”. Jest to funkcja no-op, która zwraca przekazaną obietnicę w niezmienionej postaci, ale można jej użyć do celów dokumentacyjnych w kodzie testowym, aby podkreślić, że określone żądanie powinno zakończyć się sukcesem (np. dozwolone przez reguły). |
zainicjujTestŚrodowisko(config) | Inicjuje środowisko testowe na potrzeby testowania jednostkowego reguł. Najpierw wywołaj tę funkcję, aby skonfigurować test. Wymaga działania emulatorów. Ta funkcja próbuje wykryć te emulatory za pomocą zmiennych środowiskowych lub za pośrednictwem koncentratora emulatora Firebase, jeśli hosty i porty nie są określone. Zdecydowanie zaleca się określenie reguł bezpieczeństwa dla emulatorów używanych do testowania. Zobacz minimalny przykład poniżej. |
z wyzwalaczami funkcji wyłączonymi (fn) | Uruchom funkcję konfiguracji z wyłączonymi wyzwalaczami Cloud Functions w tle. Można tego użyć do importowania danych do bazy danych Realtime lub emulatora Cloud Firestore bez uruchamiania lokalnie emulowanych funkcji Cloud Functions. Ta metoda działa tylko z Firebase CLI w wersji 8.13.0 lub nowszej. To przeciążenie działa tylko wtedy, gdy host:port centrum emulatora jest określony przez zmienną środowiskową FIREBASE_EMULATOR_HUB. |
withFunctionTriggersDisabled(hub, fn) | Uruchom funkcję konfiguracji z wyłączonymi wyzwalaczami Cloud Functions w tle. Można tego użyć do importowania danych do bazy danych Realtime lub emulatora Cloud Firestore bez uruchamiania lokalnie emulowanych funkcji Cloud Functions. Ta metoda działa tylko z Firebase CLI w wersji 8.13.0 lub nowszej. Koncentrator emulatora musi być uruchomiony, a host i port są określone w tym przeciążeniu. |
Interfejsy
Interfejs | Opis |
---|---|
HostAndPort | Obiekt zawierający nazwę hosta i numer portu emulatora. |
RegułyTestKontekst | Kontekst testowy reprezentujący klienta. Może służyć do uzyskiwania dostępu do emulatorów w celu testowania jednostek reguł. |
ZasadyŚrodowisko testowe | Obiekt używany do kontrolowania środowiska testów jednostkowych reguł. Można go używać do tworzenia RulesTestContext dla różnych sytuacji uwierzytelniania. |
Konfiguracja środowiska testowego | Konfiguracja środowiska testów jednostkowych, w tym emulatorów. |
Wpisz aliasy
Wpisz Alias | Opis |
---|---|
Konfiguracja emulatora | Konfiguracja dla danego emulatora. |
Opcje tokena | Więcej opcji fałszywego tokena użytkownika do użycia podczas testowania, w tym niestandardowe oświadczenia określone przez programistę lub opcjonalne zastąpienia ładunków tokenu uwierzytelniania Firebase. |
asertFails()
Potwierdź, że obietnica zostanie odrzucona z powodu błędu „odmowa pozwolenia”.
Przydatne do zapewnienia, że określone żądanie zostanie odrzucone przez Reguły Bezpieczeństwa. Zobacz przykład poniżej. Ta funkcja rozpoznaje błędy odmowy uprawnień z zestawów SDK Database, Firestore i Storage JS.
Podpis:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Parametry
Parametr | Typ | Opis |
---|---|---|
pr | Obiecaj<jakiekolwiek> | obietnica, której należy dotrzymać |
Zwroty:
Obiecaj<jakiekolwiek>
Obietnica, która zostaje spełniona, jeśli pr zostanie odrzucony z komunikatem „odmowa pozwolenia”. Jeśli pr zostanie odrzucony z powodu innego błędu lub rozwiązany, zwrócona obietnica zostanie odrzucona.
Przykład
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
twierdzenieSucceeds()
Zapewnij, że odniesiesz sukces.
Jest to funkcja no-op, która zwraca przekazaną obietnicę w niezmienionej postaci, ale można jej użyć do celów dokumentacyjnych w kodzie testowym, aby podkreślić, że określone żądanie powinno zakończyć się sukcesem (np. dozwolone przez reguły).
Podpis:
export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;
Parametry
Parametr | Typ | Opis |
---|---|---|
pr | Obiecaj<T> |
Zwroty:
Obiecaj<T>
Przykład
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
zainicjujTestŚrodowisko()
Inicjuje środowisko testowe na potrzeby testowania jednostkowego reguł. Najpierw wywołaj tę funkcję, aby skonfigurować test.
Wymaga działania emulatorów. Ta funkcja próbuje wykryć te emulatory za pomocą zmiennych środowiskowych lub za pośrednictwem koncentratora emulatora Firebase, jeśli hosty i porty nie są określone. Zdecydowanie zaleca się określenie reguł bezpieczeństwa dla emulatorów używanych do testowania. Zobacz minimalny przykład poniżej.
Podpis:
export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;
Parametry
Parametr | Typ | Opis |
---|---|---|
konfiguracja | Konfiguracja środowiska testowego | konfiguracja dla emulatorów. Większość pól jest opcjonalna, jeśli można je odkryć |
Zwroty:
Obietnica< RegułyTestŚrodowisko >
obietnica, która rozwiązuje się w środowisku gotowym do testowania lub odrzuca w przypadku błędu.
Przykład
const testEnv = await initializeTestEnvironment({
firestore: {
rules: fs.readFileSync("/path/to/firestore.rules", "utf8"), // Load rules from file
// host and port can be omitted if they can be discovered from the hub.
},
// ...
});
withFunctionTriggersDisabled()
Uruchom funkcję konfiguracji z wyłączonymi wyzwalaczami Cloud Functions w tle. Można tego użyć do importowania danych do bazy danych Realtime lub emulatora Cloud Firestore bez uruchamiania lokalnie emulowanych funkcji Cloud Functions.
Ta metoda działa tylko z Firebase CLI w wersji 8.13.0 lub nowszej. To przeciążenie działa tylko wtedy, gdy host:port centrum emulatora jest określony przez zmienną środowiskową FIREBASE_EMULATOR_HUB.
Podpis:
export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parametry
Parametr | Typ | Opis |
---|---|---|
przyn | () => TRWynik | Obietnica<TRWynik> | funkcja, która może być synchronizowana lub asynchroniczna (zwraca obietnicę) |
Zwroty:
Obietnica<TRWynik>
withFunctionTriggersDisabled()
Uruchom funkcję konfiguracji z wyłączonymi wyzwalaczami Cloud Functions w tle. Można tego użyć do importowania danych do bazy danych Realtime lub emulatora Cloud Firestore bez uruchamiania lokalnie emulowanych funkcji Cloud Functions.
Ta metoda działa tylko z Firebase CLI w wersji 8.13.0 lub nowszej. Koncentrator emulatora musi być uruchomiony, a host i port są określone w tym przeciążeniu.
Podpis:
export declare function withFunctionTriggersDisabled<TResult>(hub: {
host: string;
port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parametry
Parametr | Typ | Opis |
---|---|---|
centrum | {host: ciąg; numer portu; } | host i port centrum emulatora (np.: {host: 'localhost', port: 4400} ) |
przyn | () => TRWynik | Obietnica<TRWynik> | funkcja, która może być synchronizowana lub asynchroniczna (zwraca obietnicę) |
Zwroty:
Obietnica<TRWynik>
Konfiguracja emulatora
Konfiguracja dla danego emulatora.
Podpis:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
Opcje tokena
Więcej opcji fałszywego tokena użytkownika do użycia podczas testowania, w tym niestandardowe oświadczenia określone przez programistę lub opcjonalne zastąpienia ładunków tokenu uwierzytelniania Firebase.
Podpis:
export declare type TokenOptions = {
iat?: number;
exp?: number;
auth_time?: number;
provider_id?: 'anonymous';
email?: string;
email_verified?: boolean;
phone_number?: string;
name?: string;
picture?: string;
firebase?: {
sign_in_provider: FirebaseSignInProvider;
identities?: {
[provider in FirebaseSignInProvider]?: string[];
};
};
aud?: string;
iss?: string;
[claim: string]: unknown;
uid?: never;
sub?: never;
user_id?: never;
};