Skip to content

Pashozator/cypress-mailhog

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

cypress-mailhog

A collection of usefull Cypress commands for MailHog πŸ—. This package supports TypeScript out of the box.

Setup

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"}
}

Commands

Mail Collection

mhGetAllMails(limit=50)

Yields an array of all the mails stored in MailHog.

cy
  .mhGetAllMails()
  .should('have.length', 1);

mhGetMailsBySubject( subject, limit=50 )

Yields an array of all mails with given subject.

cy
  .mhGetMailsBySubject('My Subject')
  .should('have.length', 1);

mhGetMailsBySender( from, limit=50)

Yields an array of all mails with given sender.

cy
  .mhGetMailsBySender('sender@example.com')
  .should('have.length', 1);

mhGetMailsByRecipient( recipient, limit=50 )

Yields an array of all mails with given recipient.

cy
  .mhGetMailsByRecipient('recipient@example.com')
  .should('have.length', 1);

mhFirst()

Yields the first mail of the loaded selection.

cy
  .mhGetAllMails()
  .mhFirst();

mhDeleteAll()

Deletes all stored mails from MailHog.

cy.mhDeleteAll();

Handling a Single Mail βœ‰οΈ

mhGetSubject()

Yields the subject of the current mail.

cy
  .mhGetAllMails()
  .mhFirst()
  .mhGetSubject()
  .should('eq', 'My Mails Subject');

mhGetBody()

Yields the body of the current mail.

cy
  .mhGetAllMails()
  .mhFirst()
  .mhGetBody()
  .should('contain', 'Part of the Message Body');

mhGetSender()

Yields the sender of the current mail.

cy
  .mhGetAllMails()
  .mhFirst()
  .mhGetSender()
  .should('eq', 'sender@example.com');

mhGetRecipients()

Yields the recipient of the current mail.

cy
  .mhGetAllMails()
  .mhFirst()
  .mhGetRecipients()
  .should('contain', 'recipient@example.com');

Asserting the Mail Collection πŸ”

mhHasMailWithSubject( subject )

Asserts if there is a mail with given subject.

cy.mhHasMailWithSubject('My Subject');

mhHasMailFrom( from )

Asserts if there is a mail from given sender.

cy.mhHasMailFrom('sender@example.com');

mhHasMailTo( recipient )

Asserts if there is a mail to given recipient (looks for "To", "CC" and "BCC").

cy.mhHasMailTo('recipient@example.com');

Jim Chaos Monkey 🐡

mhGetJimMode()

Returns if Jim is enabled / disabled.

cy
  .mhGetJimMode()
  .should('eq', true);

mhSetJimMode( enabled )

Enables / Disables Jim chaos monkey.

cy
  .mhSetJimMode(true)
  .mhGetJimMode()
  .should('eq', true);

Package Development

Start Local Test Server

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

About

Cypress Commands for MailHog πŸŒ³πŸ—

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 32.4%
  • JavaScript 29.1%
  • HTML 22.8%
  • PHP 15.0%
  • Dockerfile 0.7%