Passer au contenu principal

Tests unitaires d’Auth0 Actions

Le package Actions NPM (@auth0/actions) permet d’utiliser TypeScript dans des projets externes, afin que les développeurs puissent suivre les pratiques exemplaires et améliorer leurs tests unitaires grâce aux définitions TypeScript.

Fonctionnement

Suivez les consignes d’installation et d’importation décrites ici : Fonctionnement d’Actions NPM. Pour effectuer un test unitaire d’une Action, vous devez simuler les objets event et api que reçoit votre fonction Action. Vous pouvez créer ces simulations à l’aide des définitions TypeScript incluses dans auth0/actions, ce qui garantit que vos tests reflètent fidèlement l’environnement de production. Les frameworks de test comme Jest sont idéaux pour gérer les objets simulés et valider le comportement. Les tests unitaires peuvent être exécutés dans un environnement local, dans le cadre du contrôle de version ou d’un processus CI/CD, ce qui améliore l’assurance qualité globale et les validations avant que des modifications n’aient une incidence sur les locataires Auth0.

Exemples

Les exemples suivants montrent comment valider une série de scénarios en simulant les objets nécessaires.
Les exemples utilisent Jest (https://www.npmjs.com/package/jest), mais n’importe quelle bibliothèque de test peut être utilisée.

Configuration

Dans votre package.json, définissez les dépendances de développement nécessaires pour profiter de l’aide IntelliSense lorsque vous écrivez votre Action.

Contrôle d’accès avant l’inscription et configuration des métadonnées de l’utilisateur

L’exemple d’Action suivant vérifie si le courriel de l’utilisateur appartient à un domaine de courriel interdit et appelle api.access.deny() en cas de correspondance. Sinon, il vérifie si le nom complet a été fourni au moyen des champs supplémentaires de Custom Prompts, puis l’enregistre dans le user_metadata du profil de l’utilisateur; à défaut, il envoie une erreur de validation à Universal Login.
Le test unitaire effectue certaines validations afin de maximiser la couverture du code, en simulant les objets event et api.

Fournisseur de courriel personnalisé et requête HTTP

L’exemple d’Action suivant tente d’envoyer un message au moyen d’une requête HTTP vers un service externe et, si la requête échoue, abandonne la notification. Il utilise des secrets pour l’URL du service externe et la clé API d’autorisation.
Le test unitaire effectue certaines validations pour maximiser la couverture du code en simulant les objets event et api, ainsi que la fonction fetch.
Pour en savoir plus sur @auth0/actions, consultez : https://www.npmjs.com/package/@auth0/actions. Pour en savoir plus sur la création d’Actions, consultez Write Your First Action.