pakiet do testowania jednostkowych reguł

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;
};