Interface RulesTestEnvironment

Objet utilisé pour contrôler l'environnement de test unitaire des règles. Permet de créer RulesTestContext pour différentes situations d'authentification.

Signature :

export interface RulesTestEnvironment 

Propriétés

Propriété Type Description
émulateurs { database?: HostAndPort ; Firestore ? HostAndPort ; stockage : HostAndPort; } Copie en lecture seule de la configuration de l'émulateur spécifiée ou découverte lors de la création de l'environnement de test.
projectId chaîne ID du projet spécifié ou découvert lors de la création de l'environnement de test.

Méthodes

Method Description
authenticatedContext(user_id, tokenOptions) Créez un RulesTestContext qui se comporte comme un utilisateur Firebase Auth authentifié.Les requêtes créées via le contexte renvoyé seront associées à un jeton d'authentification Firebase fictif.
Nettoyage() À la fin de votre code de test, appelez la fonction de nettoyage. Détruisez tous les RulesTestContexts créés dans l'environnement de test et nettoyez les ressources sous-jacentes pour permettre une sortie propre.Cette méthode ne modifie en aucune façon l'état dans les émulateurs. Pour réinitialiser les données entre les tests, consultez clearDatabase(), clearFirestore() et clearStorage().
clearDatabase() Effacez toutes les données de l'espace de noms de l'émulateur Realtime Database.
clearFirestore() Effacez les données Firestore appartenant à projectId dans l'émulateur Firestore.
clearStorage() Effacez les fichiers et les métadonnées Storage dans tous les buckets de l'émulateur Storage.
unauthenticatedContext() Crée un RulesTestContext qui se comporte comme un client qui n'est PAS connecté via l'authentification Firebase.Les requêtes créées via le contexte renvoyé ne seront pas associées à des jetons d'authentification Firebase.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

Copie en lecture seule de la configuration de l'émulateur spécifiée ou découverte lors de la création de l'environnement de test.

Signature :

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

RulesTestEnvironment.projectId

ID du projet spécifié ou découvert lors de la création de l'environnement de test.

Signature :

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Créez un RulesTestContext qui se comporte comme un utilisateur Firebase Auth authentifié.

Les requêtes créées via le contexte renvoyé seront associées à un jeton d'authentification Firebase fictif.

Signature :

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

Paramètres

Paramètres Type Description
user_id chaîne l'ID utilisateur de l'utilisateur. Spécifie la valeur de "user_id" et "sub" sur le jeton.
tokenOptions TokenOptions Revendications ou remplacements personnalisés pour les charges utiles de jeton d'authentification Firebase

Renvoie :

RulesTestContext

Exemple

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

RulesTestEnvironment.cleanup()

À la fin de votre code de test, appelez la fonction de nettoyage. Détruisez tous les RulesTestContexts créés dans l'environnement de test et nettoyez les ressources sous-jacentes pour permettre une sortie propre.

Cette méthode ne modifie en aucune façon l'état dans les émulateurs. Pour réinitialiser les données entre les tests, consultez clearDatabase(), clearFirestore() et clearStorage().

Signature :

cleanup(): Promise<void>;

Renvoie :

Promise<void>

RulesTestEnvironment.clearDatabase()

Effacez toutes les données de l'espace de noms de l'émulateur Realtime Database.

Signature :

clearDatabase(): Promise<void>;

Renvoie :

Promise<void>

RulesTestEnvironment.clearFirestore()

Effacez les données de la base de données Firestore par défaut pour projectId dans l'émulateur Firestore.

Signature :

clearFirestore(): Promise<void>;

Renvoie :

Promise<void>

RulesTestEnvironment.clearStorage()

Effacez les fichiers et les métadonnées Storage dans le bucket actif dans l'émulateur Storage.

Signature :

clearStorage(): Promise<void>;

Renvoie :

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

Crée un RulesTestContext qui se comporte comme un client qui n'est PAS connecté via l'authentification Firebase.

Les requêtes créées via le contexte renvoyé ne seront pas associées à des jetons d'authentification Firebase.

Signature :

unauthenticatedContext(): RulesTestContext;

Renvoie :

RulesTestContext

Exemple

const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });

RulesTestEnvironment.withSecurityRulesDisabled()

Signature :

withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;

Paramètres

Paramètres Type Description
rappel (context: RulesTestContext) => Promesse<void>

Renvoie :

Promise<void>