Allows you to inspect sent emails and assert on their content.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
HISTORY.md
LICENCE
README.md
email.js
package.js

README.md

#xolvio:email-stub

Stores emails so that they can be referenced by test suite.

#Get the Book To learn more about testing with Meteor, consider purchasing our book The Meteor Testing Manual.

###Installation

meteor add xolvio:email-stub

###Usage

Run a through your app manually, or using integration / end-to-end tests and emails that are sent from your app will be captured wherever Email.send is used, such as accounts for verifying emails.

Set up

Meteor.call('emailStub/stub');

// or running with Chimp
server.call('emailStub/stub');

Retrieve emails

Meteor.call('emailStub/getEmails', function(e, emails) {
  console.log(emails);
});

// or running with Chimp
let emails = server.call('emailStub/getEmails');

Assuming two emails were sent, the code above would show:

[
 {
   _id: "ACZqWmLejePo9zQQD",
   from: "Xolv.io <no-reply@xolv.io>",
   to: "user@example.com"
   subject: "Please verify your email address",
   text: "Hello Someone,↵↵To verify your account email, simply click the link below.↵↵http://localhost:3000/#/verify-email/m_3n4CbgeESDGaugJ656RoqJRj5PlCjk0Cm43PU3aEN↵↵Thanks.↵"
 },
 {
   _id: "2aY6FkWRcbcr8RxL7",
   from: "Xolv.io <no-reply@xolv.io>",
   to: "user@example.com"
   subject: "Another email",
   text: "with different content"
 }
]

In your code, you can then do assertions like:

  emails[0].subject.should.be('Please verify your email address');

Another use for testing is to extract the verification link like this:

  // grab the verification link
  var verificationLink = emails[0].text.match(/(http|https|www)\S+/)[0];

  // then use something like xolvio:webdriver to visit the URL like a user would
  browser.url(verificationLink)

This package is a debugOnly package and will only be used when developing locally.

Testing lifecycle

Set up

Meteor.call('emailStub/stub');

Reset collection

Meteor.call('emailStub/reset');

Restore and remove stub

Meteor.call('emailStub/restore');