Skip to content

upgundecha/cypress-sendria

Repository files navigation

Cypress Sendria

Cypress Plugin for Sendria Fake SMTP Server. Use this plugin for tests like Account confirmation & verification emails, one time passwords (OTPs) in email or general email testing.

This plugin uses Sendria API to retrive the messages.

Installation

npm install cypress-sendria --save-dev
yarn add cypress-sendria --dev

Usage

1. Register the plugin :

// cypress/support/index.js

require('cypress-sendria');

2. Specify your Sendria host address

By default, Sendria API is started at the http://localhost:1080. If you are using default Sendria instace, you have nothing to configure.

You can also use env vars in your cypress.json as below :

// cypress/cypress.json

{
  "env": {
    "SENDRIA_PROTOCOL": "http",
    "SENDRIA_HOST": "localhost",
    "SENDRIA_SMTP_PORT": "1025",
    "SENDRIA_API_PORT": "1080"
  }
}

Commands

Cypress-Sendria commands use cy.request() which return a Cypress promise. Check Cypress documentation for requests

You can use the commands as shown below example:

  cy.sendriaGetAllMessages().then((messages) => {
    expect(messages.length).to.equal(3);
  });

For more examples refer the spec file.

Commands

Get all messages received in the Sendria server.

cy.sendriaGetAllMessages()

Get all messages and find one by containing a specific receipent email address and subject.

cy.sendriaGetMessageByEmailAddressAndSubject(address: string, subject: string)

Delete all message in order to clear the Sendria mailbox

cy.sendriaDeleteAllMessages()

Access the message html using Id

cy.sendriaGetMessageHtmlById()

Delete a message using Id

cy.sendriaDeleteMessageById()

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

  • Clone the repo

  • Install dependencies: npm install

  • Run local Sendria instance. Find more here for installation options

  • Sendria API is documented here

Please make sure to update tests as appropriate and run npm test command


Inspired by the cypress-maildev plugin


License

Apache- 2.0