コンテンツにスキップ

新しいアドレスでサインアップし、メールに届いたコードを入力する Playwright テストです。proxymail-qa パッケージを使います。

  1. パッケージをインストールする

    Section titled “パッケージをインストールする”

    プロジェクトに proxymail-qa を追加し、API キー を PROXYMAIL_QA_API_KEY に保存します。

    npm install --save-dev proxymail-qa
  2. サインアップしてコードを入力する

    Section titled “サインアップしてコードを入力する”

    アドレスを作り、それでサインアップしてから、コードを待ちます。

    since を使うと、フォーム送信前に送られたメールは待機の対象外になるため、再試行で古いコードを拾うことはありません。待機は最大 30 秒です。もっと長くするには timeout を渡します。

    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. コードではなくリンクの場合は、リンクを待ってそこに移動します。

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

何も届かない場合、エラーは Proxy Mail QA がわかる範囲で理由を示します。たとえば、アプリのメールプロバイダーが確認済みアドレスにしか送信しない、などです。このパッケージは、ペルソナの生年月日と国、アプリリンク、テンプレートテスト用のメールの HTML、特殊なアドレスにも対応しています。README を参照してください。CI での実行については、CI での実行を参照してください。

通常の HTTP を使いたい場合は、すべての呼び出しが REST API ガイドにあります。

このページについて質問がありますか?

質問はどの言語でもかまいません。ドキュメントからすぐに回答を得ることも、Proxy Mail QA チームに質問を送ることもできます。チームからの返信は英語です。