Aller au contenu

Un test Cypress qui s’inscrit avec une nouvelle adresse et ouvre le lien de vérification de l’e-mail, à l’aide du package proxymail-qa dans des tâches Cypress.

  1. Ajoutez proxymail-qa au projet.

    npm install --save-dev proxymail-qa
  2. Cypress exécute les tâches dans Node, donc enregistrez-les dans la configuration. La clé d’API provient de PROXYMAIL_QA_API_KEY dans l’environnement où tourne Cypress.

    cypress.config.ts
    import { defineConfig } from 'cypress';
    import { ProxyMailQA } from 'proxymail-qa';
    export default defineConfig({
    e2e: {
    setupNodeEvents(on) {
    const qa = new ProxyMailQA(); // reads PROXYMAIL_QA_API_KEY
    on('task', {
    createAddress: () => qa.createAddress({ persona: true }),
    waitForLink: ({ address, since }: { address: string; since: string }) => qa.waitForLink(address, { type: 'verify', since }),
    deleteAddress: (address: string) => qa.deleteAddress(address).then(() => null),
    });
    },
    },
    });
  3. Inscrivez-vous avec l’adresse, puis ouvrez le lien de l’e-mail.

    Le délai de la tâche est de 35 secondes, car une attente peut durer jusqu’à 30. Pour un code plutôt qu’un lien, ajoutez une tâche qui appelle qa.waitForCode(address, { since }) et saisissez son value dans le formulaire.

    cypress/e2e/signup.cy.js
    it('verifies the email', () => {
    cy.task('createAddress').then(({ address }) => {
    const since = new Date().toISOString();
    cy.visit('/signup');
    cy.get('[name=email]').type(address);
    cy.contains('Sign up').click();
    cy.task('waitForLink', { address, since }, { timeout: 35000 }).then(({ value }) => cy.visit(value));
    cy.task('deleteAddress', address);
    });
    });

Si rien n’arrive, l’erreur indique pourquoi, dans la mesure où Proxy Mail QA peut le savoir, par exemple que le fournisseur d’e-mail de votre app n’envoie qu’aux adresses vérifiées. Pour l’exécution dans CI, voir Exécuter dans CI. Vous préférez du HTTP simple depuis la spec avec cy.request ? Chaque appel figure dans le guide REST API.

Une question sur cette page ?

Posez votre question dans la langue de votre choix. La documentation peut y répondre tout de suite, ou vous pouvez l'envoyer à l'équipe Proxy Mail QA, qui répond en anglais.

Interroger la documentation