Aller au contenu
Facteur
ENCommencer

Migration

Vos tests gardent leur forme

Le coût d’un changement d’outil de test email, ce n’est pas l’abonnement : c’est la journée passée à réécrire des assertions qui marchaient. Ici, ce sont les trois lignes qui parlent au fournisseur qui changent. Votre test attend toujours un message, et affirme toujours quelque chose sur son contenu.

Avant, après

Le même test, chez l’un puis chez l’autre

L’exemple part de Mailosaur, l’outil d’où viennent le plus de migrations. Depuis Mailtrap, MailSlurp, Mailisk ou Mailpit, la forme est la même : la page de chaque outil donne la correspondance champ par champ.

Avant, avec MailosaurTypeScript
// Le client de l'outil actuel, et l'assertion qui
// va chercher le code dans le corps du message.
const mailosaur = new MailosaurClient(
  process.env.MAILOSAUR_API_KEY,
);

const message = await mailosaur.messages.get(
  serverId,
  { sentTo: address },
);

expect(message.html.codes[0].value).toBe('265279');
Après, avec FacteurTypeScript
// Trois lignes changent. La forme du test, non.
import { Facteur } from '@facteur-eu/sdk';

const facteur = new Facteur(); // lit FACTEUR_API_KEY

const message = await facteur.messages.waitFor({
  sentTo: address,
});

expect(message.otp).toBe('265279');

L’assertion raccourcit au lieu de s’allonger : le code à usage unique arrive déjà extrait du message, dans un champ, là où il fallait le chercher dans le corps avec une expression régulière.

Deux façons

Avec notre bibliothèque, ou en appelant l’API

La bibliothèque fait gagner du confort, pas des capacités : tout ce qu’elle fait, un appel HTTP le fait aussi.

La bibliothèque, si vous acceptez une dépendance

Une commande, aucune dépendance de son côté. Le client lit la clé dans FACTEUR_API_KEY, et son appel waitFor tient la connexion ouverte jusqu’à ce qu’un message corresponde : pas de boucle d’attente à écrire, pas de sleep à calibrer.

La voie courte : notre bibliothèqueShell
npm i -D @facteur-eu/sdk

L’appel direct, si vous n’en voulez pas

Une requête POST sur /v1/messages/search avec un champ wait en millisecondes, et la réponse arrive quand le message arrive. C’est exactement ce que fait la bibliothèque, sans rien installer.

Sans dépendance : l’API en directTypeScript
const res = await fetch(
  'https://api.facteur.eu/v1/messages/search',
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.FACTEUR_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ sentTo: address, wait: 30000 }),
  },
);

const { messages } = await res.json();

Marche à suivre

Cinq étapes, aucune irréversible

Le premier test bascule en dix minutes, et il vous dit si toute la suite basculera.

  1. 1

    Créez un compte et une inbox

    Une inbox est une boîte qui reçoit, que vos tests interrogent par son identifiant. Le plan gratuit suffit pour valider la migration, et ne demande pas de carte bancaire.

  2. 2

    Posez la clé d’API dans votre environnement

    Sous le nom FACTEUR_API_KEY, à côté de celle de votre outil actuel. Les deux cohabitent : rien ne vous demande de retirer l’ancienne avant d’être convaincu.

  3. 3

    Basculez un seul test

    Celui qui vous coûte le plus quand il est instable. Trois lignes à changer, puis vous le lancez : s’il passe, votre suite passera. C’est le moment de vérité et il ne dure pas la journée.

  4. 4

    Faites tourner les deux suites en parallèle

    Une semaine, le temps de comparer les taux de réussite sur vos propres tests plutôt que sur une page de vente. C’est aussi ce qui rend le retour en arrière gratuit.

  5. 5

    Posez vos plafonds et vos alertes

    Un plafond de messages par inbox, et un seuil qui avertit avant de l’atteindre : un test parti en boucle s’arrête sur sa propre limite au lieu de consommer la capacité de toute l’équipe.

Par outil

Ce qui est propre à l’outil que vous quittez

Chaque page reprend la correspondance des champs, ce qui n’a pas d’équivalent chez nous, et les tarifs relevés à une date écrite en clair.

Limites connues

Ce que votre outil actuel fait et que nous ne faisons pas encore. Écrit ici plutôt que découvert au milieu d’une migration.

Si votre suite dépend de l’un de ces points, écrivez-nous à hello@facteur.eu : nous vous dirons si la migration a du sens aujourd’hui, ou pas.

Questions fréquentes

Combien de lignes changent, vraiment ?
Trois par fichier de test : l’import de la bibliothèque, la construction du client, et l’appel qui attend le message. L’assertion, elle, raccourcit souvent, parce que le code à usage unique arrive déjà extrait dans un champ du message. Ce qui ne change pas, c’est la structure du test.
Faut-il tout basculer d’un coup ?
Non, et c’est le seul conseil de cette page. Basculez un test, gardez les deux outils une semaine, comparez sur vos propres suites. Rien dans la migration n’est irréversible avant que vous ne résiliiez l’autre abonnement, et cette décision reste la vôtre.
Que deviennent les messages déjà reçus chez l’autre fournisseur ?
Ils restent chez eux, et c’est ce qui rend la migration légère : ce sont des messages de test, ils se régénèrent au prochain passage de votre suite. Il n’y a rien à exporter et aucune bascule DNS à planifier.
Et si mon outil n’est pas dans la liste des cinq ?
La marche à suivre de cette page ne dépend pas de l’outil que vous quittez : un client, un appel qui attend, une assertion. Écrivez-nous le nom de l’outil et nous vous dirons ce qui se transpose, avant que vous n’ouvriez un compte.

Basculez un test, pas une suite

Le plan gratuit ne demande pas de carte bancaire. Un fichier, trois lignes, et vous saurez.