Zum Inhalt springen

Ein Cypress-Test, der sich mit einer neuen Adresse registriert und den Bestätigungslink aus der E-Mail öffnet, mit dem Paket proxymail-qa in Cypress-Tasks.

  1. Füge proxymail-qa zum Projekt hinzu.

    npm install --save-dev proxymail-qa
  2. Cypress führt Tasks in Node aus, also registriere sie in der Konfiguration. Der API-Schlüssel kommt aus PROXYMAIL_QA_API_KEY in der Umgebung, in der Cypress läuft.

    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. Registriere dich mit der Adresse und öffne dann den Link aus der E-Mail.

    Das Task-Timeout beträgt 35 Sekunden, weil ein Wartevorgang bis zu 30 dauern kann. Für einen Code statt eines Links fügst du einen Task hinzu, der qa.waitForCode(address, { since }) aufruft, und gibst dessen value ins Formular ein.

    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);
    });
    });

Wenn nichts ankommt, sagt der Fehler, warum, soweit Proxy Mail QA das erkennen kann, zum Beispiel dass der E-Mail-Anbieter deiner App nur an verifizierte Adressen sendet. Zum Ausführen in CI siehe Ausführen in CI. Lieber einfaches HTTP aus der Spec mit cy.request? Jeder Aufruf steht im Leitfaden REST API.

Eine Frage zu dieser Seite?

Frag in jeder Sprache. Die Doku kann dir sofort antworten oder deine Frage an das Team von Proxy Mail QA schicken, das auf Englisch antwortet.

Doku fragen