Funktionen
Funktion | Beschreibung |
---|---|
behauptenFails(pr) | Behaupten Sie, dass das Versprechen mit dem Fehler „Berechtigung verweigert“ abgelehnt wird. Nützlich, um eine bestimmte Anforderung durch Sicherheitsregeln abzulehnen. Siehe Beispiel unten. Diese Funktion erkennt Berechtigungsverweigerungsfehler von Datenbank-, Firestore- und Storage-JS-SDKs. |
behauptenSucceeds(pr) | Behaupten Sie, dass das Versprechen mit dem Fehler „Berechtigung verweigert“ abgelehnt wird. Dies ist eine No-Op-Funktion, die das übergebene Versprechen unverändert zurückgibt, aber zu Dokumentationszwecken im Testcode verwendet werden kann, um hervorzuheben, dass eine bestimmte Anforderung erfolgreich sein sollte (z. B. durch Regeln zulässig). |
initializeTestEnvironment(config) | Initialisiert eine Testumgebung für Regeleinheitentests. Rufen Sie diese Funktion zuerst für den Testaufbau auf. Erfordert die Ausführung von Emulatoren. Diese Funktion versucht, diese Emulatoren über Umgebungsvariablen oder über den Firebase-Emulator-Hub zu erkennen, wenn Hosts und Ports nicht angegeben sind. Es wird dringend empfohlen, Sicherheitsregeln für Emulatoren festzulegen, die zum Testen verwendet werden. Siehe Minimalbeispiel unten. |
withFunctionTriggersDisabled(fn) | Führen Sie eine Setup-Funktion mit deaktivierten Cloud Functions-Auslösern im Hintergrund aus. Dies kann verwendet werden, um Daten in die Echtzeitdatenbank oder den Cloud Firestore-Emulator zu importieren, ohne lokal emulierte Cloud-Funktionen auszulösen. Diese Methode funktioniert nur mit Firebase CLI Version 8.13.0 oder höher. Diese Überladung funktioniert nur, wenn der Host:Port des Emulator-Hubs durch die Umgebungsvariable FIREBASE_EMULATOR_HUB angegeben wird. |
withFunctionTriggersDisabled(hub, fn) | Führen Sie eine Setup-Funktion mit deaktivierten Cloud Functions-Auslösern im Hintergrund aus. Dies kann verwendet werden, um Daten in die Echtzeitdatenbank oder den Cloud Firestore-Emulator zu importieren, ohne lokal emulierte Cloud-Funktionen auszulösen. Diese Methode funktioniert nur mit Firebase CLI Version 8.13.0 oder höher. Der Emulator-Hub muss ausgeführt werden, dessen Host und Port in dieser Überladung angegeben sind. |
Schnittstellen
Schnittstelle | Beschreibung |
---|---|
HostAndPort | Ein Objekt, das den Hostnamen und die Portnummer eines Emulators enthält. |
RulesTestContext | Ein Testkontext, der einen Client darstellt. Kann verwendet werden, um auf Emulatoren für Regeleinheitentests zuzugreifen. |
RulesTestEnvironment | Ein Objekt, das zur Steuerung der Testumgebung der Regeleinheit verwendet wird. Kann zum Erstellen von RulesTestContext für verschiedene Authentifizierungssituationen verwendet werden. |
TestEnvironmentConfig | Konfiguration der Unit-Testumgebung, einschließlich Emulatoren. |
Geben Sie Aliase ein
Geben Sie Alias ein | Beschreibung |
---|---|
EmulatorConfig | Konfiguration für einen bestimmten Emulator. |
TokenOptionen | Weitere Optionen für das Scheinbenutzer-Token, das zum Testen verwendet werden soll, einschließlich vom Entwickler angegebener benutzerdefinierter Ansprüche oder optionaler Überschreibungen für Firebase-Auth-Token-Nutzlasten. |
behauptenFails()
Behaupten Sie, dass das Versprechen mit dem Fehler „Berechtigung verweigert“ abgelehnt wird.
Nützlich, um eine bestimmte Anforderung durch Sicherheitsregeln abzulehnen. Siehe Beispiel unten. Diese Funktion erkennt Berechtigungsverweigerungsfehler von Datenbank-, Firestore- und Storage-JS-SDKs.
Unterschrift:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Parameter
Parameter | Typ | Beschreibung |
---|---|---|
pr | Versprochen<any> | das einzulösende Versprechen |
Kehrt zurück:
Versprochen<any>
ein Versprechen, das erfüllt wird, wenn pr mit „permission denied“ abgelehnt wird. Wenn pr mit einem anderen Fehler abgelehnt oder gelöst wird, wird das zurückgegebene Versprechen abgelehnt.
Beispiel
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
behauptenSucceeds()
Machen Sie das Erfolgsversprechen geltend.
Dies ist eine No-Op-Funktion, die das übergebene Versprechen unverändert zurückgibt, aber zu Dokumentationszwecken im Testcode verwendet werden kann, um hervorzuheben, dass eine bestimmte Anforderung erfolgreich sein sollte (z. B. durch Regeln zulässig).
Unterschrift:
export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;
Parameter
Parameter | Typ | Beschreibung |
---|---|---|
pr | Versprechen<T> |
Kehrt zurück:
Versprechen<T>
Beispiel
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
initializeTestEnvironment()
Initialisiert eine Testumgebung für Regeleinheitentests. Rufen Sie diese Funktion zuerst für den Testaufbau auf.
Erfordert die Ausführung von Emulatoren. Diese Funktion versucht, diese Emulatoren über Umgebungsvariablen oder über den Firebase-Emulator-Hub zu erkennen, wenn Hosts und Ports nicht angegeben sind. Es wird dringend empfohlen, Sicherheitsregeln für Emulatoren festzulegen, die zum Testen verwendet werden. Siehe Minimalbeispiel unten.
Unterschrift:
export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;
Parameter
Parameter | Typ | Beschreibung |
---|---|---|
config | TestEnvironmentConfig | die Konfiguration für Emulatoren. Die meisten Felder sind optional, wenn sie entdeckt werden können |
Kehrt zurück:
Versprechen< RulesTestEnvironment >
ein Versprechen, das mit einer zum Testen bereiten Umgebung aufgelöst oder bei Fehler abgelehnt wird.
Beispiel
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()
Führen Sie eine Setup-Funktion mit deaktivierten Cloud Functions-Auslösern im Hintergrund aus. Dies kann verwendet werden, um Daten in die Echtzeitdatenbank oder den Cloud Firestore-Emulator zu importieren, ohne lokal emulierte Cloud-Funktionen auszulösen.
Diese Methode funktioniert nur mit Firebase CLI Version 8.13.0 oder höher. Diese Überladung funktioniert nur, wenn der Host:Port des Emulator-Hubs durch die Umgebungsvariable FIREBASE_EMULATOR_HUB angegeben wird.
Unterschrift:
export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parameter
Parameter | Typ | Beschreibung |
---|---|---|
fn | () => TResult | Versprechen<TResult> | eine Funktion, die synchron oder asynchron sein kann (gibt ein Versprechen zurück) |
Kehrt zurück:
Versprechen<TResult>
withFunctionTriggersDisabled()
Führen Sie eine Setup-Funktion mit deaktivierten Cloud Functions-Auslösern im Hintergrund aus. Dies kann verwendet werden, um Daten in die Echtzeitdatenbank oder den Cloud Firestore-Emulator zu importieren, ohne lokal emulierte Cloud-Funktionen auszulösen.
Diese Methode funktioniert nur mit Firebase CLI Version 8.13.0 oder höher. Der Emulator-Hub muss ausgeführt werden, dessen Host und Port in dieser Überladung angegeben sind.
Unterschrift:
export declare function withFunctionTriggersDisabled<TResult>(hub: {
host: string;
port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parameter
Parameter | Typ | Beschreibung |
---|---|---|
Nabe | { host: string; Port-Nummer; } | der Host und Port des Emulator Hub (z. B. {host: 'localhost', port: 4400} ) |
fn | () => TResult | Versprechen<TResult> | eine Funktion, die synchron oder asynchron sein kann (gibt ein Versprechen zurück) |
Kehrt zurück:
Versprechen<TResult>
EmulatorConfig
Konfiguration für einen bestimmten Emulator.
Unterschrift:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
TokenOptionen
Weitere Optionen für das Scheinbenutzer-Token, das zum Testen verwendet werden soll, einschließlich vom Entwickler angegebener benutzerdefinierter Ansprüche oder optionaler Überschreibungen für Firebase-Auth-Token-Nutzlasten.
Unterschrift:
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;
};