Ir al contenido

Una prueba de Cypress que se registra con una dirección nueva y abre el enlace de verificación del correo, usando el paquete proxymail-qa en tareas de Cypress.

  1. Añade proxymail-qa al proyecto.

    npm install --save-dev proxymail-qa
  2. Cypress ejecuta las tareas en Node, así que regístralas en la configuración. La clave de API se toma de PROXYMAIL_QA_API_KEY en el entorno donde se ejecuta 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. Regístrate con la dirección y luego abre el enlace del correo.

    El tiempo de espera de la tarea es de 35 segundos porque una espera puede durar hasta 30. Para un código en lugar de un enlace, añade una tarea que llame a qa.waitForCode(address, { since }) y escribe su value en el formulario.

    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 no llega nada, el error indica el motivo hasta donde Proxy Mail QA puede saberlo, por ejemplo, que el proveedor de correo de tu app solo envía a direcciones verificadas. Para ejecutar en CI, consulta Ejecutar en CI. ¿Prefieres HTTP simple desde el spec con cy.request? Todas las llamadas están en la guía de REST API.

¿Tienes una pregunta sobre esta página?

Pregunta en cualquier idioma. La documentación puede responderte de inmediato, o puedes enviar tu pregunta al equipo de Proxy Mail QA, que responde en inglés.