Zum Inhalt springen

Ein Playwright-Test, der sich mit einer neuen Adresse registriert und den Code aus der E-Mail eingibt, mit dem Paket proxymail-qa.

  1. Füge proxymail-qa zum Projekt hinzu und speichere den API-Schlüssel in PROXYMAIL_QA_API_KEY.

    npm install --save-dev proxymail-qa
  2. Erstelle eine Adresse, registriere dich damit und warte dann auf den Code.

    since sorgt dafür, dass das Warten alles ignoriert, was vor dem Absenden des Formulars gesendet wurde, sodass ein neuer Versuch nie einen alten Code erwischt. Gewartet wird bis zu 30 Sekunden; übergib timeout für länger.

    signup.spec.ts
    import { expect, test } from '@playwright/test';
    import { ProxyMailQA } from 'proxymail-qa';
    const qa = new ProxyMailQA(); // reads PROXYMAIL_QA_API_KEY
    test('sign-up sends a working code', async ({ page }) => {
    const { address, password } = await qa.createAddress({ persona: true, password: true });
    const submitted = new Date();
    await page.goto('/signup');
    await page.getByLabel('Email').fill(address);
    await page.getByLabel('Password').fill(password);
    await page.getByRole('button', { name: 'Sign up' }).click();
    const { value } = await qa.waitForCode(address, { since: submitted });
    await page.getByLabel('Code').fill(value);
    await expect(page).toHaveURL(/welcome/);
    await qa.deleteAddress(address);
    });
  3. Für einen Link statt eines Codes wartest du auf den Link und rufst ihn auf.

    const { value: link } = await qa.waitForLink(address, { type: 'verify', since: submitted });
    await page.goto(link);

Kommt nichts an, 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. Das Paket deckt auch Geburtsdaten und Länder bei Personas ab, App-Links, das HTML der E-Mail für Template-Tests und ungewöhnliche Adressen: siehe sein README. Zum Ausführen in CI siehe In CI ausführen.

Lieber reines HTTP? 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