A collection of usefull Cypress commands for MailHog π. This package supports TypeScript out of the box.
Install this package via NPM:
npm install --dev cypress-mailhog
Include this package into your Cypress command file:
// cypress/support/commands.js
import 'cypress-mailhog';
Add the base url of your MailHog installation to your cypress.json
:
{
...
"mailHogUrl": "http://localhost:8090"
}
If your Mailhog instance uses authentication, add mailHogAuth
to your cypress env
config:
{
...
"mailHogAuth": {"user": "mailhog username", "pass": "mailhog password"}
}
Yields an array of all the mails stored in MailHog.
cy
.mhGetAllMails()
.should('have.length', 1);
Yields an array of all mails with given subject.
cy
.mhGetMailsBySubject('My Subject')
.should('have.length', 1);
Yields an array of all mails with given sender.
cy
.mhGetMailsBySender('sender@example.com')
.should('have.length', 1);
Yields an array of all mails with given recipient.
cy
.mhGetMailsByRecipient('recipient@example.com')
.should('have.length', 1);
Yields the first mail of the loaded selection.
cy
.mhGetAllMails()
.mhFirst();
Deletes all stored mails from MailHog.
cy.mhDeleteAll();
Yields the subject of the current mail.
cy
.mhGetAllMails()
.mhFirst()
.mhGetSubject()
.should('eq', 'My Mails Subject');
Yields the body of the current mail.
cy
.mhGetAllMails()
.mhFirst()
.mhGetBody()
.should('contain', 'Part of the Message Body');
Yields the sender of the current mail.
cy
.mhGetAllMails()
.mhFirst()
.mhGetSender()
.should('eq', 'sender@example.com');
Yields the recipient of the current mail.
cy
.mhGetAllMails()
.mhFirst()
.mhGetRecipients()
.should('contain', 'recipient@example.com');
Asserts if there is a mail with given subject.
cy.mhHasMailWithSubject('My Subject');
Asserts if there is a mail from given sender.
cy.mhHasMailFrom('sender@example.com');
Asserts if there is a mail to given recipient (looks for "To", "CC" and "BCC").
cy.mhHasMailTo('recipient@example.com');
Returns if Jim is enabled / disabled.
cy
.mhGetJimMode()
.should('eq', true);
Enables / Disables Jim chaos monkey.
cy
.mhSetJimMode(true)
.mhGetJimMode()
.should('eq', true);
Navigate into the test-server
directory.
cd ./test-server/
Install dependencies.
composer install
yarn # or npm install
Start docker server.
docker-compose up
Open the Testpage in your browser: http://localhost:8080/cypress-mh-tests/ Open MailHog in your browser: http://localhost:8090/
Open the Cypress testclient.
yarn cypress:open