Gathering detailed insights and metrics for @eclass/nodemailer-mock
Gathering detailed insights and metrics for @eclass/nodemailer-mock
Gathering detailed insights and metrics for @eclass/nodemailer-mock
Gathering detailed insights and metrics for @eclass/nodemailer-mock
npm install @eclass/nodemailer-mock
Typescript
Module System
Node Version
NPM Version
JavaScript (97.19%)
Shell (2.54%)
HTML (0.27%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
60 Commits
3 Watchers
1 Branches
3 Contributors
Updated on Sep 05, 2018
Latest Version
1.0.0
Package Id
@eclass/nodemailer-mock@1.0.0
Unpacked Size
223.92 kB
Size
60.69 kB
File Count
19
NPM Version
6.1.0
Node Version
10.6.0
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
Mocked nodemailer module for unit testing.
npm install @eclass/nodemailer-mock --save-dev
yarn add -D @eclass/nodemailer-mock
There are some special methods available on the mocked module to help with testing.
nodemailerMock.mock.reset()
nodemailerMock.mock.sentMail()
nodemailerMock.mock.shouldFailOnce()
transport.sendMail()
nodemailerMock.mock.shouldFail(true|false)
transport.sendMail()
true
, return errorfalse
, return successnodemailerMock.mock.mockedVerify(true|false)
transport.verify()
should be mocked or passed through to nodemailer
true
, use a mocked callbackfalse
, pass through to a real nodemailer
transportnodemailerMock.mock.successResponse(success)
transport.sendMail()
nodemailerMock.mock.failResponse(err)
transport.sendMail()
The mocked module behaves in a similar fashion to other transports provided by nodemailer
.
const nodemailerMock = require('@eclass/nodemailer-mock');
const transport = nodemailerMock.createTransport();
// the email you want to send
const email = ... // <-- your email here
// send an email with nodestyle callback
transport.sendMail(email, function(err, info) {
if (err) {
console.log('Error!', err, info);
} else {
console.log('Success!', info);
}
}
// send an email with promises
transport.sendMail(email)
.then(function(info) {
console.log('Success!', info);
})
.catch(function(err) {
console.log('Error!', err);
});
// verify a transport
transport.verify(function(err, success) {
if (err) {
console.log('Error!', err);
} else {
console.log('Success!', success);
}
})
Here is an example of using a mocked nodemailer
class in a mocha
test using mockery
. Make sure that
any modules that require()
's a mocked module must be called AFTER the module is mocked or node will use
the unmocked version from the module cache.
const should = require('should');
const mockery = require('mockery');
const nodemailerMock = require('@eclass/nodemailer-mock');
describe('Tests that send email', function() {
/* This could be an app, Express, etc. It should be
instantiated *after* nodemailer is mocked. */
let app = null;
before(function() {
// Enable mockery to mock objects
mockery.enable({
warnOnUnregistered: false,
});
/* Once mocked, any code that calls require('nodemailer')
will get our nodemailerMock */
mockery.registerMock('nodemailer', nodemailerMock)
/*
##################
### IMPORTANT! ###
##################
*/
/* Make sure anything that uses nodemailer is loaded here,
after it is mocked just above... */
});
afterEach(function() {
// Reset the mock back to the defaults after each test
nodemailerMock.mock.reset();
});
after(function() {
// Remove our mocked nodemailer and disable mockery
mockery.deregisterAll();
mockery.disable();
});
it('should send an email using nodemailer-mock', function(done) {
// call a service that uses nodemailer
var response = ... // <-- your email code here
// a fake test for something on our response
response.value.should.be.exactly('value');
// get the array of emails we sent
const sentMail = nodemailerMock.mock.sentMail();
// we should have sent one email
sentMail.length.should.be.exactly(1);
// check the email for something
sentMail[0].property.should.be.exactly('foobar');
done();
});
it('should fail to send an email using nodemailer-mock', function(done) {
// tell the mock class to return an error
const err = 'My custom error';
nodemailerMock.mock.shouldFailOnce();
nodemailerMock.mock.failResponse(err);
// call a service that uses nodemailer
var response = ... // <-- your code here
// a fake test for something on our response
response.error.should.be.exactly(err);
done();
});
it('should verify using the real nodemailer transport', function(done) {
// tell the mock class to pass verify requests to nodemailer
nodemailerMock.mock.mockedVerify(false);
// call a service that uses nodemailer
var response = ... // <-- your code here
/* calls to transport.verify() will be passed through,
transport.sendMail() is still mocked */
done();
});
});
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
Found 0/30 approved changesets -- score normalized to 0
Reason
no SAST tool detected
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
96 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-07-14
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More