Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Cypress Email Tests Need a Freshness Gate

Description and use

Cypress email tests often pick stale messages from a shared inbox, causing incorrect failures. The article introduces a freshness gate: record the trigger time, poll the inbox for messages newer than that time, and validate recipient, subject, and optional test marker before proceeding.

Problem

Email tests can select an old message from a shared inbox, leading to wrong test failures.

Outcome

Adding a freshness gate reduces false failures caused by stale emails and provides clear evidence for debugging.

Workflow

  • Record trigger time before sending email request.
  • Send email trigger request (e.g., password reset).
  • Poll inbox using a helper that filters messages by receivedAt > trigger time, to=recipient, and subject match.
  • If a fresh, owned message is found, accept it and continue; otherwise retry until timeout.
  • Fail with detailed evidence if no fresh message is found.

Evidence

An email test can find a message and still be wrong. This happens when a shared inbox contains an older verification email, the test selects the newest result without checking its age, and the browser follows a link that belongs to another run.

Source

Capture the time immediately before the action that should cause delivery. Then make freshness one of the acceptance rules, along with recipient, subject, and a unique test marker when the application supports one.

Source

Keep polling, filtering, and diagnostics in a custom command or helper. The spec should say what the user is doing, while the helper explains why a candidate was accepted or rejected.

Source

  • Record date: 2026-11-02T09:59:12.105Z