mailcare/codeception-module-mailcare

Codeception 的 MailCare 模块

1.0 2019-12-31 10:31 UTC

This package is auto-updated.

Last update: 2024-08-29 05:24:02 UTC


README

Codeception 的 MailCare 模块

安装

composer require "mailcare/codeception-module-mailcare"

文档

模块,用于测试通过 MailCare 接收的电子邮件。

配置

  • url 可选 - 您 MailCare 服务器的 API URL (默认: https://mailix.xyz/api)
  • login 可选 - 您 MailCare 服务器的登录名
  • password 可选 - 您 MailCare 服务器的密码
  • timeoutInSeconds 可选 - 等待最多 n 秒直到收到电子邮件 (默认: 30 秒)

示例

modules:
    enabled
        - MailCare:
            url: 'https://mailix.xyz/api'
            login: 'https://mailix.xyz/api'
            password: 'https://mailix.xyz/api'

标准

  • inbox 通过收件箱过滤 (test@example.com).
  • sender 通过发件人过滤 (test@example.com).
  • subject 通过主题过滤 (Welcome).
  • since 通过 createdAt 过滤 (2018-01-19T12:23:27+00:00 或 ISO 8601 时长).
  • search 通过收件箱、发件人或主题搜索 (匹配).
  • unread 仅通过未读过滤 (true).
  • favorite 仅通过收藏过滤 (true).

所有标准都可以在 MailCare 的 API 文档 中找到,除了 page 和 limit。

使用 ISO 8601 时长的 since 示例

  • P1D: 一天的时长
  • PT1M: 一分钟的时长 (注意时间设计符 T,它位于时间值之前)

操作

seeEmailCount

检查电子邮件数量是否等于预期值。最多等待 $timeout 秒直到收到指定的电子邮件。

$I->seeEmailCount(2, [
    'inbox' => 'john@example.org',
    'sender' => 'no-reply@company.com',
    'subject' => 'Welcome John!',
    'since' => 'PT2M',
], 30);
  • param int $expectedCount
  • param array $criterias
  • param int $timeoutInSeconds (可选)

seeEmail

检查指定的电子邮件是否存在。最多等待 $timeout 秒直到收到指定的电子邮件。

$I->seeEmail([
    'inbox' => 'john@example.org',
    'sender' => 'no-reply@company.com',
    'subject' => 'Welcome John!',
    'since' => 'PT2M',
], 30);
  • param array $criterias
  • param int $timeoutInSeconds (可选)

dontSeeEmail

与 seeEmail 相反。

$I->dontSeeEmail([
    'inbox' => 'john@example.org',
    'since' => 'PT2M',
], 30);
  • param array $criterias
  • param int $timeoutInSeconds (可选)

grabLinksInLastEmail

在最后收到的电子邮件中,获取所有链接。最多等待 $timeout 秒直到收到指定的电子邮件。

$I->grabLinksInLastEmail([
    'inbox' => 'john@example.org',
    'since' => 'PT2M',
], 30);

grabTextInLastEmail

在最后收到的电子邮件中,获取所有与正则表达式对应的文本。最多等待 $timeout 秒直到收到指定的电子邮件。

$I->grabTextInLastEmail('#Password: (?<password>\S+)#', [
    'inbox' => 'john@example.org',
    'subject' => 'Your credentials',
    'since' => 'PT2M',
], 30);
  • param string $regex
  • param array $criterias
  • param int $timeoutInSeconds (可选)
  • return array 从 preg_match_all 获取的匹配项