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.
- Trois lignes par fichier : l’import, le client, l’appel qui attend le message
- Rien à exporter : des messages de test se régénèrent au prochain passage de la suite
- Les deux outils en parallèle le temps de comparer, sans rien résilier
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.
// 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');// 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.
npm i -D @facteur-eu/sdkL’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.
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
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
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
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
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
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.
Mailosaur
La table de conversion des points d’API, un par un, et lesquels ne sont pas encore ouverts.
Mailtrap
Le passage d’un bac à sable qui intercepte à une inbox qui reçoit pour de vrai.
MailSlurp
Ce que devient une inbox créée puis supprimée à chaque test, et la facturation à l’opération.
Mailisk
Le moins cher du marché en face du nôtre, sur le même volume mensuel.
Mailpit
Quitter une interception locale : ce que vous gagnez, et ce que vous perdez à ne plus tout héberger.
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.
- Le téléchargement du message brut au format .eml n’est pas ouvert.
- L’analyse de délivrabilité (SPF, DKIM, DMARC, score anti-spam) n’est pas ouverte.
- Les aperçus de rendu dans plusieurs clients de messagerie et l’éditeur visuel de modèles n’ont pas d’équivalent, et n’en auront pas : ce n’est pas le même produit.
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.