# Intégrations : Playwright, Cypress et bibliothèques

> Ce que nous publions pour votre framework de test, dans quel ordre, et ce que nous ne publierons pas. Quatre paquets sur npm, et une API HTTP qui n’en demande aucun.
> https://facteur.eu/integrations

## Le canal, c’est votre framework de test

Sur ce marché, on n’intègre pas une API : on installe un paquet dans son framework. Nous en publions quatre, et cette page donne l’adresse de chacun, ce qui reste sous condition, et ce que nous ne publierons pas.

## Une API HTTP, et rien à installer

Les quatre paquets sont optionnels, et c’est le point : l’attente est faite côté serveur et l’extraction à la réception, donc un test appelle la recherche de messages sans rien installer. Voici un parcours de vérification par email complet, en Playwright, sans un seul paquet à nous.

- **La requête part avant le clic** : Elle attend, et répond à l’instant où le message arrive, pas à l’échéance. Lancée après, elle courrait après un message déjà là.
- **Le sous-adressage sépare les tests** : Tout ce qui suit le « + » est à vous. C’est ce qui permet à deux tests de partager une inbox sans se voler leurs messages.
- **On lit status avant tout champ dérivé** : Un message accepté existe avant d’être analysé : pendant quelques millisecondes il n’a ni sujet, ni code, ni liens. C’est ce qui sépare « pas de code dans ce message » de « le code n’est pas encore extrait ».
- **La clé se lit dans l’environnement** : Jamais écrite dans le test, jamais passée en argument. C’est la convention que les greffons reprennent.

## Un greffon avant une bibliothèque, et JavaScript avant tout le reste

L’ordre n’est pas négociable en cours de route, et il n’est pas une préférence de goût : il suit une mesure, refaite avant chaque livraison.

- Livrable
- État
- Ce qui le débloque

#### Une bibliothèque Node minimale

Ouvrir une boîte, attendre un message, le lire avec ce qui en a été extrait, purger. C’est tout, et c’est délibéré : le périmètre resserré du produit vaut aussi pour sa surface publique. Zéro dépendance : une suite de tests ne veut pas d’un arbre de dépendances.

#### Un greffon Playwright

Une adresse dérivée du test lui-même, donc deux tests en parallèle ne lisent jamais le même courrier, et un test rejoué ne relit pas celui de sa première tentative. Les assertions sont rejouées par le moteur de Playwright, l’attente s’arrête dans le budget du test, et le message reçu est attaché au rapport : un échec montre le courrier arrivé, pas seulement une ligne rouge.

#### Un initialiseur npm create

Du dépôt vide au premier test qui passe en une commande.

#### Un greffon Cypress

Une commande enregistrée qui rend une chaîne chaînable, plutôt qu’une fixture. Le travail est commun à 80 % avec le précédent.

#### Une bibliothèque Python

Le seul second écosystème crédible. Nous ne le prenons pas par anticipation : le déclencheur est un chiffre, pas une impression.

#### Les autres écosystèmes

Pas au programme, et nous préférons l’écrire. La demande y est deux à trois ordres de grandeur plus faible que sur npm, et l’acteur de référence, qui en maintient dix, laisse son paquet le plus ancien trois générations majeures derrière sa bibliothèque principale. Neuf bibliothèques sans usage mesuré sont neuf dettes, pas une couverture.

## Le plus grand canal du marché est inoccupé

Relevé sur npm, à la date indiquée, et rejouable par n’importe qui.

- Framework
- Installations mensuelles
- Greffon concurrent
