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 :
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 :
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>