Funkcje
Funkcja | Opis |
---|---|
assertFails(pr) | Składanie oświadczeń o odrzuceniu wniosku o odrzucenie prośby o zgodę na wykorzystanie danych Błąd.Przydatne do potwierdzenia, że konkretne żądanie ma zostać odrzucone przez reguły zabezpieczeń. Zobacz przykład poniżej. Ta funkcja rozpoznaje błędy odmowy uprawnień z pakietów SDK bazy danych, Firestore i Storage JS. |
assertSucceeds(pr) | Składanie oświadczeń o odrzuceniu wniosku o odrzucenie prośby o zgodę na wykorzystanie danych Błąd.Jest to funkcja bezobsługowa zwracająca przekazaną obietnicę w stanie, w jakim jest, ale może być używana do celów dokumentacyjnych kodu testowego, aby podkreślić, że określone żądanie powinno odnieść sukces (np. dozwolone przez reguły). |
initializeTestEnvironment(config) | Inicjuje środowisko testowe do testowania jednostkowego reguł. Wywołaj tę funkcję najpierw w celu konfiguracji testu.Wymaga uruchomienia emulatorów. Ta funkcja próbuje wykryć te emulatory za pomocą zmiennych środowiskowych lub centrum emulatorów Firebase, jeśli hosty i porty nie są określone. Zdecydowanie zalecamy określenie reguł zabezpieczeń dla emulatorów używanych do testowania. Zobacz minimalny przykład poniżej. |
withFunctionTriggersDisabled(fn) | Uruchamianie funkcji konfiguracji z wyłączonymi aktywatorami funkcji w tle. Za jej pomocą możesz importować dane do Bazy danych czasu rzeczywistego lub emulatora Cloud Firestore bez aktywowania lokalnie emulowanych funkcji w Cloud Functions.Ta metoda działa tylko z interfejsem wiersza poleceń Firebase w wersji 8.13.0 lub nowszej. To przeciążenie działa tylko wtedy, gdy wartość host:port w centrum emulatora jest określona przez zmienną środowiskową FIREBASE_EMULATOR_HUB. |
withFunctionTriggersDisabled(hub, fn) | Uruchamianie funkcji konfiguracji z wyłączonymi aktywatorami funkcji w tle. Za jej pomocą możesz importować dane do Bazy danych czasu rzeczywistego lub emulatora Cloud Firestore bez aktywowania lokalnie emulowanych funkcji w Cloud Functions.Ta metoda działa tylko z interfejsem wiersza poleceń Firebase w wersji 8.13.0 lub nowszej. Centrum emulatorów musi być uruchomione, a host i port są określone w tym przeciążeniu. |
Interfejsy
Interfejs | Opis |
---|---|
HostAndPort | Obiekt zawierający nazwę hosta i numer portu emulatora. |
RulesTestContext | Kontekst testowy, który reprezentuje klienta. Pozwala uzyskać dostęp do emulatorów testowania jednostkowego reguł. |
RulesTestEnvironment | Obiekt używany do sterowania środowiskiem testowym reguł. Można jej używać do tworzenia zasady RulesTestContext na potrzeby różnych sytuacji uwierzytelniania. |
Konfiguracja środowiska testowego | Konfiguracja środowiska testowania jednostkowego, w tym emulatorów. |
Aliasy typu
Wpisz alias | Opis |
---|---|
EmulatorConfig | Konfiguracja danego emulatora. |
TokenOptions | Więcej opcji dla przykładowego tokena użytkownika do użycia do testowania, w tym określone przez dewelopera deklaracje niestandardowe lub opcjonalne zastąpienia ładunków tokenów uwierzytelniania Firebase. |
assertFails()
Składanie oświadczeń o odrzuceniu wniosku o odrzucenie prośby o zgodę na wykorzystanie danych .
Przydatne do potwierdzenia żądania, które ma zostać odrzucone przez reguły zabezpieczeń. Zobacz przykład poniżej. Ta funkcja rozpoznaje błędy odmowy uprawnień z pakietów SDK bazy danych, Firestore i Storage JS.
Podpis:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Parametry
Parametr | Typ | Opis |
---|---|---|
pr | Obietnica<any> | obietnica, |
Zwroty:
Obietnica<any>
obietnicę spełnioną w przypadku odrzucenia prowadzonego z żądaniem „permission odrzucona”. Jeśli pr został odrzucony z powodu innego błędu lub rozwiązany problem, zwrócona obietnica odrzuca.
Przykład
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
assertSucceeds()
Składaj obietnice sukcesu.
Jest to funkcja bezobsługowa, która zwraca przekazaną obietnicę w stanie, w jakim jest, ale może być używana do celów dokumentacji w kodzie testowym, aby podkreślić, że określone żądanie powinno zostać zrealizowane (np. dozwolone przez reguły).
Podpis:
export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;
Parametry
Parametr | Typ | Opis |
---|---|---|
pr | Obietnica<T> |
Zwroty:
Obietnica<T>
Przykład
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
inicjujTestEnvironment()
Inicjuje środowisko testowe do testowania jednostkowego reguł. Wywołaj tę funkcję najpierw w celu konfiguracji testu.
Wymaga uruchomienia emulatorów. Ta funkcja próbuje wykryć te emulatory za pomocą zmiennych środowiskowych lub centrum emulatorów Firebase, jeśli hosty i porty nie są określone. Zdecydowanie zalecamy określenie reguł zabezpieczeń 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 | dla emulatorów. Większość pól jest opcjonalna, jeśli można je znaleźć |
Zwroty:
Obietnica<RulesTestEnvironment>
obietnicę rozwiązaną w środowisku gotowym do testowania lub odrzucanie 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()
Uruchamianie funkcji konfiguracji z wyłączonymi aktywatorami funkcji w tle. Za pomocą tej funkcji możesz importować dane do bazy danych czasu rzeczywistego lub emulatora Cloud Firestore bez uruchamiania emulowanych lokalnie funkcji w Cloud Functions.
Ta metoda działa tylko z interfejsem wiersza poleceń Firebase w wersji 8.13.0 lub nowszej. To przeciążenie działa tylko wtedy, gdy wartość host:port w centrum emulatora jest określona przez zmienną środowiskową FIREBASE_EMULATOR_HUB.
Podpis:
export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parametry
Parametr | Typ | Opis |
---|---|---|
fn | () => TResult | Obietnica<TResult> | funkcję, która może być synchroniczna lub asynchroniczna (zwraca obietnicę). |
Zwroty:
Obietnica<TResult>
withFunctionTriggersDisabled()
Uruchamianie funkcji konfiguracji z wyłączonymi aktywatorami funkcji w tle. Za pomocą tej funkcji możesz importować dane do bazy danych czasu rzeczywistego lub emulatora Cloud Firestore bez uruchamiania emulowanych lokalnie funkcji w Cloud Functions.
Ta metoda działa tylko z interfejsem wiersza poleceń Firebase w wersji 8.13.0 lub nowszej. Centrum emulatorów musi być uruchomione, 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: string; port: number; | host i port centrum emulatorów (np. {host: 'localhost', port: 4400} ) |
fn | () => TResult | Obietnica<TResult> | funkcję, która może być synchroniczna lub asynchroniczna (zwraca obietnicę). |
Zwroty:
Obietnica<TResult>
Konfiguracja emulatora
Konfiguracja danego emulatora.
Podpis:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
TokenOptions
Więcej opcji dla pozorowanego tokena użytkownika do użycia do testowania, w tym określone przez dewelopera deklaracje niestandardowe lub opcjonalne zastąpienia ładunków tokenów 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;
};