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.
Failed to load latest commit information.


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.


meteor add xolvio:email-stub


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'emailStub/stub');

// or running with Chimp'emailStub/stub');

Retrieve emails'emailStub/getEmails', function(e, emails) {

// or running with Chimp
let emails ='emailStub/getEmails');

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

   _id: "ACZqWmLejePo9zQQD",
   from: " <>",
   to: ""
   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: " <>",
   to: ""
   subject: "Another email",
   text: "with different content"

In your code, you can then do assertions like:

  emails[0]'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

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

Testing lifecycle

Set up'emailStub/stub');

Reset collection'emailStub/reset');

Restore and remove stub'emailStub/restore');