MailCare module for Codeception
composer require "mailcare/codeception-module-mailcare"
Module for testing receiving emails using MailCare.
- url optional - API url of your mailcare server (default: https://mailix.xyz/api)
- login optional - login of your mailcare server
- password optional - password of your mailcare server
- timeoutInSeconds optional - Waits up to n seconds for an email to be received (default: 30 seconds)
modules:
    enabled
        - MailCare:
            url: 'https://mailix.xyz/api'
            login: 'https://mailix.xyz/api'
            password: 'https://mailix.xyz/api'
- inboxFilter by inbox (test@example.com).
- senderFilter by sender (test@example.com).
- subjectFilter by subject (Welcome).
- sinceFilter by createdAt (2018-01-19T12:23:27+00:00 or ISO 8601 durations).
- searchSearch by inbox or sender or subject (matching).
- unreadFilter only by unread (true).
- favoriteFilter only by favorite (true).
All criterias can be found in the API Documentation of MailCare except for page and limit.
Examples of since with ISO 8601 durations:
- P1D: one-day duration
- PT1M: one-minute duration (note the time designator, T, that precedes the time value)
Checks that the email count equals expected value. Waits up to $timeout seconds for the given email to be received.
$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 (optional)
Checks that the given email exists. Waits up to $timeout seconds for the given email to be received.
$I->seeEmail([
    'inbox' => 'john@example.org',
    'sender' => 'no-reply@company.com',
    'subject' => 'Welcome John!',
    'since' => 'PT2M',
], 30);- param array$criterias
- param int$timeoutInSeconds (optional)
Opposite to seeEmail.
$I->dontSeeEmail([
    'inbox' => 'john@example.org',
    'since' => 'PT2M',
], 30);- param array$criterias
- param int$timeoutInSeconds (optional)
In the last email, grabs all the links Waits up to $timeout seconds for the given email to be received.
$I->grabLinksInLastEmail([
    'inbox' => 'john@example.org',
    'since' => 'PT2M',
], 30);- param array$criterias
- param int$timeoutInSeconds (optional)
- return array['https://google.fr', 'https://mailcare.io']
In the last email, grabs all the text corresponding to a regex. Waits up to $timeout seconds for the given email to be received.
$I->grabTextInLastEmail('#Password: (?<password>\S+)#', [
    'inbox' => 'john@example.org',
    'subject' => 'Your credentials',
    'since' => 'PT2M',
], 30);- param string$regex
- param array$criterias
- param int$timeoutInSeconds (optional)
- return arraymatches from preg_match_all