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.
npm install cypress-sendria --save-dev
yarn add cypress-sendria --dev
// cypress/support/index.js
require('cypress-sendria');
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"
}
}
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.
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()
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