コンテンツにスキップ

新しいアドレスでサインアップし、メールの確認リンクを開く Cypress テストです。Cypress タスクで proxymail-qa パッケージを使います。

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

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

    プロジェクトに proxymail-qa を追加します。

    npm install --save-dev proxymail-qa
  2. Cypress はタスクを Node で実行するため、設定ファイルで登録します。API キー は、Cypress が動く環境の PROXYMAIL_QA_API_KEY から取得します。

    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. サインアップしてリンクを開く

    Section titled “サインアップしてリンクを開く”

    アドレスでサインアップし、メールのリンクを開きます。

    待機は最大 30 秒続くことがあるため、タスクのタイムアウトは 35 秒にしています。リンクではなくコードの場合は、qa.waitForCode(address, { since }) を呼び出すタスクを追加し、その value をフォームに入力します。

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

何も届かない場合、エラーには Proxy Mail QA でわかる範囲の理由が示されます。たとえば、アプリのメールプロバイダーが確認済みのアドレスにしか送信しない、などです。CI での実行については CI での実行 を参照してください。spec から cy.request で直接 HTTP を使いたい場合は、すべての呼び出しが REST API ガイドにあります。

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

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