Adapté aux développeurs, aux équipes QA et aux personnes qui maintiennent un ordonnanceur : utilisez l’horloge de Playwright pour les comportements temporels du navigateur, mais vérifiez séparément l’exécution serveur et la réception du message. Pas adapté si l’objectif est de prouver, par la seule avance de l’horloge d’une page, qu’un courriel a été envoyé ou reçu.

Indépendant ou indépendante : contrôlez les notifications différées et les récapitulatifs de votre propre produit avant sa mise en ligne.
Équipe QA : transformez les conditions de déclenchement, le contenu et la réception en éléments vérifiables.
Responsable de tâches planifiées : distinguez l’heure de la page, l’activité du serveur et l’arrivée dans la boîte de test.

Trois preuves à ne pas confondre

Un test de courriel programmé traverse plusieurs frontières. Le navigateur peut afficher une date, lancer un compte à rebours ou modifier une sélection en fonction de l’heure. Le serveur, lui, doit enregistrer une tâche, l’exécuter selon les règles de l’application, puis transmettre un message. Enfin, une boîte de réception contrôlée permet de vérifier si le message est effectivement consultable. Un succès observé à une frontière ne démontre pas automatiquement le succès des suivantes.

Playwright Clock sert à contrôler les comportements liés au temps dans une page. La documentation officielle de Clock décrit le contrôle de l’horloge du navigateur et des fonctions temporelles qui s’y exécutent. Cette API peut donc être utile pour tester, par exemple, un compte à rebours visible ou une règle de présentation qui dépend de la date. Elle ne fait pas avancer l’horloge du système d’exploitation qui héberge l’application, ne démarre pas un ordonnanceur externe et ne force pas un traitement serveur à s’exécuter.

Il faut aussi séparer l’horloge simulée du délai maximal accordé au test. Playwright documente les délais du test et de ses opérations comme des limites du processus de test. Avancer l’heure de la page ne signifie donc pas que le délai d’exécution global du test progresse de la même façon. Avant de rendre un test plus long ou plus complexe, vérifiez quel délai est réellement dépassé : attente dans la page, réponse d’une requête ou limite du test.

Besoin à vérifier Moyen adapté Preuve obtenue Ce que cela ne prouve pas
Règle temporelle exécutée dans la page Playwright Clock et assertion sur l’interface État de la page après contrôle de l’heure du navigateur Exécution d’une tâche serveur ou arrivée d’un message
Tâche planifiée côté serveur Environnement de test, ordonnanceur contrôlable ou point de déclenchement autorisé Exécution associée à la donnée du scénario Réception par une boîte de test
Contenu produit par l’application Résultat d’envoi, modèle rendu ou message reçu Destinataire et contenu correspondant au cas testé Arrivée générale en production
Réception effective Boîte de réception de test contrôlée Message consultable et rattaché au scénario Délivrabilité pour tous les fournisseurs et domaines

La documentation des tests d’API de Playwright peut aider à appeler une interface prévue pour un environnement de test ou à contrôler une API. Cela ne transforme pas un appel d’API en preuve que l’ordonnanceur de production aurait fonctionné de lui-même. Un déclenchement manuel doit rester explicitement identifié comme tel dans le compte rendu.

À retenir : si le test avance uniquement l’heure dans la page, sa conclusion doit rester limitée aux comportements de cette page. Pour affirmer qu’une tâche serveur a fonctionné, il faut une preuve qui provient de la tâche ou de l’environnement serveur.

Notification différée : suivre la condition jusqu’à l’exécution

Une notification différée dépend d’une règle métier : une réservation doit atteindre un état, une échéance doit être dépassée ou une action doit rester sans réponse. Le test ne doit pas seulement attendre que l’interface affiche une heure nouvelle. Il doit établir que la condition attendue correspond à la tâche qui s’est exécutée.

Commencez par créer une donnée de test dédiée dans un environnement autorisé. Notez un identifiant de scénario non sensible, tel qu’une référence synthétique ou un identifiant généré pour l’exécution. Évitez d’y inscrire une adresse personnelle, un nom réel ou un contenu de production : les journaux, les captures et les messages peuvent être conservés plus longtemps que prévu. Pour les mêmes raisons, les principes de protection de la vie privée doivent être pris en compte dans le choix des données et des boîtes de réception employées.

Ensuite, définissez la condition de déclenchement de manière observable. Par exemple, le cas peut vérifier qu’une notification est due lorsque l’état d’une réservation reste inchangé jusqu’à une échéance définie par les règles du produit. Le test doit préciser la donnée de départ, l’événement qui rend la notification admissible et le résultat attendu. Il ne faut pas déduire le comportement général d’un seul fuseau horaire ou d’une seule configuration locale.

Pour couvrir une fonction exécutée dans le navigateur, Playwright Clock peut fournir une base temporelle contrôlée. Pour confirmer l’exécution serveur, utilisez le mécanisme réellement prévu par votre application : ordonnanceur de test, file de tâches isolée, commande interne autorisée ou exécution naturelle dans un environnement adapté. Il n’existe pas de méthode universelle qui remplace l’inspection de cette architecture. Conservez un lien entre l’entrée de test et l’enregistrement d’exécution, sans exposer d’informations sensibles.

Le contrôle de la sortie doit venir après cette vérification. Selon votre système, l’application peut enregistrer une demande d’envoi avant la transmission, ou recevoir un résultat d’envoi distinct. Une tâche terminée sans erreur peut donc attester qu’une étape a réussi sans prouver que le message est arrivé dans une boîte de réception.

Récapitulatif programmé : vérifier la période et le destinataire

Pour un courriel récapitulatif, l’heure d’envoi n’est qu’une partie du contrat. Il faut aussi établir quelle période de données le message couvre, qui doit le recevoir et quelle représentation des dates le produit promet. Un test qui confirme uniquement que l’écran montre la date attendue ne valide ni les données choisies par le serveur ni le contenu généré dans le courriel.

Commencez par préparer des données de test situées de part et d’autre des limites pertinentes pour le produit : début de période, fin de période ou changement de jour selon le calendrier utilisé. Formulez le résultat attendu à partir de la définition fonctionnelle de votre application. Si le produit distingue un fuseau propre au compte, un fuseau d’équipe ou une heure de référence commune, le test doit expliciter lequel s’applique. Ne généralisez pas le résultat d’une configuration locale à tous les utilisateurs.

La vérification du contenu peut porter sur les éléments réellement contractuels : dates affichées, plage couverte, éléments inclus et destinataire prévu. Il est préférable de contrôler la sémantique du message plutôt que de comparer toute la mise en page au caractère près, à moins que le rendu intégral soit précisément l’objet de la recette. Pour une équipe qui valide aussi l’apparence dans un client de messagerie, cette vérification visuelle constitue une autre étape, distincte de la preuve d’exécution de l’ordonnanceur.

Lorsque l’application dispose d’une route d’aperçu ou d’une interface de test pour calculer le récapitulatif, elle peut fournir une preuve utile sur le contenu produit. L’appel doit être clairement séparé du déclenchement automatique planifié. La documentation de Playwright sur les tests d’API explique comment effectuer des requêtes depuis un test ; elle ne prescrit pas la conception de votre ordonnanceur ni la sémantique de vos périodes.

Un bon compte rendu indique donc la règle testée, la période métier attendue, le destinataire synthétique et la source de la preuve. Si l’heure simulée est celle du navigateur, signalez-le. Si le calcul a été effectué par le serveur, conservez une référence à cette exécution. Si le message est ensuite arrivé dans une boîte contrôlée, consignez ce constat séparément.

Nouvelles tentatives : établir le comportement attendu en cas de répétition

Une tâche peut être relancée après un échec, être déclenchée de nouveau par l’ordonnanceur ou être exécutée une seconde fois à la suite d’une reprise du test. Ces situations ne doivent pas être assimilées sans vérifier les règles de l’application. Certains produits doivent éviter une notification en double ; d’autres peuvent légitimement envoyer un nouveau message après une modification de données. La politique attendue doit être définie avant l’assertion.

Pour chaque exécution, associez un identifiant de scénario non sensible à la donnée, à la tâche et, si possible, au résultat d’envoi. Un tel identifiant aide à rapprocher les journaux et le message observé sans recopier d’adresse personnelle ou de secret dans le nom du test. Vérifiez également que le scénario est isolé : un message ancien ne doit pas pouvoir être pris pour celui de la tentative actuelle.

Les nouvelles tentatives du moteur de test sont un autre mécanisme. Elles peuvent rejouer un test après son échec, mais elles ne garantissent pas que les effets externes de la première exécution ont été annulés. La documentation officielle des nouvelles tentatives Playwright décrit leur fonctionnement côté test. Elle doit être lue en tenant compte des effets de votre application : un test rejoué peut réutiliser un état déjà modifié ou provoquer une nouvelle demande d’envoi.

Prévoyez donc une stratégie de remise à zéro ou des données distinctes par exécution. Si votre produit utilise une clé d’idempotence ou un mécanisme équivalent, vérifiez le comportement prévu avec un cas de répétition contrôlé. Ne supposez pas que l’existence d’une clé garantit une absence de doublons à tous les niveaux : il faut examiner ce que l’application considère comme une opération identique et quelles étapes sont couvertes.

Point de vigilance : une ligne « tâche réussie » établit au mieux le statut enregistré par cette tâche. Elle ne démontre ni que le fournisseur de messagerie a accepté le message, ni qu’un destinataire l’a reçu une seule fois. Chaque affirmation doit être étayée par la couche qui la concerne.

Les assertions doivent viser une propriété utile, pas seulement l’absence d’erreur immédiate. Les recommandations Playwright sur les assertions présentent les attentes réessayées et les conditions d’assertion. Pour un courriel, l’attente doit néanmoins porter sur une preuve adaptée : état métier pour la règle, événement d’exécution pour l’ordonnanceur, résultat d’envoi pour la transmission, puis message consultable pour la réception.

Réception réelle : fermer la chaîne de preuve

Une recette complète distingue trois événements : la tâche s’est déclenchée, l’application a tenté ou confirmé la transmission selon son mécanisme, et un message a été retrouvé dans une boîte de test contrôlée. Ces résultats sont complémentaires. Une réponse positive de l’application ne garantit pas à elle seule que le message soit visible dans la boîte. À l’inverse, trouver un courriel sans pouvoir l’associer à l’exécution courante ne prouve pas que le scénario testé l’a produit.

Pour tester la réception, utilisez une adresse réservée à la validation de votre propre produit ou d’un environnement pour lequel vous avez l’autorisation. Vérifiez que la boîte de réception est consultable par la personne ou le processus qui exécute le test. Recherchez le message en fonction d’un marqueur non sensible, de l’objet ou d’un identifiant de scénario approprié ; contrôlez le destinataire et les éléments de contenu définis par le contrat fonctionnel. N’introduisez pas de secrets réels dans le corps du message uniquement pour faciliter le rapprochement.

Une adresse temporaire peut éviter d’exposer une boîte de travail et réduire le risque que les essais de recette y accumulent des messages indésirables. Elle convient surtout à un essai ponctuel, lorsque le compte n’a pas besoin d’une récupération durable ni d’échanges ultérieurs. Pour les comptes importants, les essais qui nécessitent des réponses, ou les adresses utilisées pendant une longue période, une boîte dédiée ou un alias maîtrisé peut être plus approprié. Le comparatif des solutions de boîte de réception peut aider à choisir selon la durée d’usage et le besoin de suivi.

La disponibilité d’une boîte de test ne permet pas de conclure sur la délivrabilité de production. Un message reçu pendant une recette confirme un résultat dans ces conditions précises : environnement, configuration, adresse et moment du test. Il ne constitue pas une garantie générale pour d’autres destinataires. Le compte rendu doit conserver cette portée limitée, sans transformer un succès ponctuel en promesse universelle.

Parcours de recette en six étapes

Étape 1 — Définir la preuve recherchée. Précisez si le scénario porte sur la règle temporelle de la page, l’exécution de la tâche, le contenu généré ou la réception. Si plusieurs éléments sont exigés, écrivez-les séparément afin que le résultat ne soit pas résumé par un unique « test réussi ».

Étape 2 — Isoler le scénario. Préparez une donnée synthétique dans l’environnement de test autorisé et attribuez-lui un identifiant non sensible. Déterminez comment la remettre à zéro ou comment créer une donnée propre au prochain passage. Écartez les données personnelles et les adresses de collègues.

Étape 3 — Choisir la bonne horloge. Servez-vous de Playwright Clock uniquement pour le comportement temporel exécuté dans la page. Vérifiez dans la documentation de l’API Clock la méthode correspondant à votre cas ; n’en déduisez pas que le serveur ou son ordonnanceur a avancé dans le temps.

Étape 4 — Déclencher ou observer la tâche côté serveur. Utilisez l’ordonnanceur de test ou un point de déclenchement expressément prévu pour l’environnement concerné. Notez si la tâche s’est exécutée naturellement ou si elle a été démarrée par une action de test. Ce détail change la portée de la conclusion.

Étape 5 — Vérifier la règle et le message. Rapprochez la condition métier, l’exécution et le contenu attendu. Pour une notification différée, contrôlez la condition qui la rend due. Pour un récapitulatif, confirmez la période et le destinataire. Pour une nouvelle tentative, appliquez la politique de répétition définie par le produit.

Étape 6 — Consigner la réception. Recherchez le message dans une boîte contrôlée, puis établissez son lien avec le scénario. Notez séparément les preuves de déclenchement, de transmission et de réception. Une absence de message doit ouvrir une enquête sur la couche concernée, plutôt que conduire à modifier immédiatement le test d’horloge du navigateur.

Cette séquence reste utile même si la plateforme de test ou l’architecture de tâches change : elle décrit les preuves à collecter, sans supposer que tous les produits utilisent le même ordonnanceur ou le même fournisseur de messagerie.

Questions fréquentes

Playwright Clock peut-il déclencher une tâche serveur ?

Non. Playwright Clock contrôle le temps observable par le navigateur et les comportements temporels de la page. Il ne fait pas avancer l’horloge du serveur et ne lance pas automatiquement une tâche externe. Pour vérifier un traitement côté serveur, il faut l’observer dans l’environnement de test ou le déclencher par un mécanisme autorisé, en indiquant explicitement lequel a été utilisé.

Comment tester le déclenchement d’un courriel différé ?

Créez un scénario isolé, identifiez la condition métier qui rend la notification due, puis vérifiez la donnée et l’enregistrement de la tâche. Si une règle s’exécute dans la page, une horloge simulée peut aider à la tester. Si l’envoi dépend d’un ordonnanceur serveur, seule une preuve issue de l’exécution serveur confirme ce traitement.

Comment vérifier les doublons après une nouvelle tentative ?

Définissez le résultat attendu en cas de répétition, puis associez chaque tentative à un identifiant de scénario non sensible. Vérifiez la politique d’idempotence de votre application et recherchez un message rattaché au scénario courant. Un statut de réussite dans un journal ne prouve pas, à lui seul, qu’un seul courriel a été envoyé ou reçu.

Comment savoir si le courriel est réellement arrivé ?

Contrôlez sa présence dans une boîte de réception dédiée au test, son destinataire et son lien avec l’exécution courante. Gardez distincts le déclenchement de la tâche, le résultat d’envoi et la réception observable. Un message reçu dans cet environnement valide ce cas de test, mais ne garantit pas la réception dans toutes les conditions de production.

Pour une recette ponctuelle de votre propre produit, HourInbox peut être envisagé comme moyen de protéger l’adresse principale lors du contrôle de réception ; vérifiez sur HourInbox que le mode de collecte proposé convient à votre scénario et à votre besoin de conservation. Gardez une boîte durable pour les comptes dont la récupération, les réponses ou le suivi à long terme sont importants. L’essentiel est de consigner ce qui a réellement été vérifié : l’horloge de la page, l’exécution serveur et le message reçu restent trois preuves distinctes.

Questions fréquentes

L’horloge de Playwright peut-elle lancer une tâche programmée sur le serveur ?
Non. Playwright Clock contrôle des comportements temporels dans la page, par exemple les minuteries exécutées dans le navigateur. Il ne fait pas avancer l’horloge de l’application serveur et ne déclenche pas à lui seul un ordonnanceur externe. Pour vérifier une tâche, il faut observer son exécution dans l’environnement de test ou utiliser un mécanisme de déclenchement prévu par votre produit.
Comment vérifier qu’un courriel retardé part lorsque la condition est remplie ?
Créez un cas de test isolé avec une donnée de réservation identifiable, puis établissez la condition attendue selon les règles de votre application. Vérifiez séparément l’état métier, l’enregistrement d’exécution de la tâche et le résultat d’envoi. Une horloge simulée peut couvrir une règle exécutée dans la page, mais la preuve d’une tâche serveur doit venir de l’exécution réelle ou d’un dispositif de test autorisé.
Comment éviter les courriels en double après une nouvelle tentative ?
Définissez d’abord ce que votre produit doit faire lorsqu’une tâche échoue puis recommence : réutiliser la même opération, ignorer un doublon ou envoyer une nouvelle notification dans un cas précis. Associez les journaux et les messages à un identifiant de scénario non sensible, puis vérifiez le résultat attendu après une nouvelle tentative. Une exécution marquée comme réussie ne prouve pas, à elle seule, l’unicité de l’envoi.
Comment confirmer qu’un courriel est réellement arrivé dans la boîte de test ?
Consignez séparément le déclenchement de la tâche, le résultat transmis par votre mécanisme d’envoi et la présence du message dans une boîte de réception contrôlée. Recherchez un message associé au scénario de test, puis vérifiez son destinataire et son contenu sans inclure de données personnelles réelles. Cette observation confirme une réception dans cet environnement, pas la délivrabilité générale en production.

Réception à court terme, contact durable : à chaque usage son adresse.

Pour une démarche ponctuelle, utilisez une boîte de réception avec compte à rebours. Si vous devez recevoir d’autres messages par la suite, créez un alias de transfert durable.