Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // EmailSender.js
- const models = require('../models');
- const User = models.user;
- const emailLogger = require('./emailLogger');
- class EmailSender {
- constructor(subject, emailData) {
- this.subject = subject;
- this.emailData = emailData;
- }
- sendToUser() {
- let email = this.emailData.email;
- User.findOne({ where: { $or: [
- { email: email },
- { workEmail: email },
- ] } })
- .then(function (userData) {
- if (userData) {
- emailLogger.log('Send to anon - sending to user ' + userData.id);
- });
- } else {
- emailLogger.log('Send to anon - no user found');
- }
- }
- }
- const EmailSender = require('../../../helpers/emailSender');
- const models = require('../../../models');
- const User = models.user;
- const emailLogger = require('../../../helpers/emailLogger');
- const chai = require("chai");
- const sinon = require('sinon');
- const sinonChai = require("sinon-chai");
- const expect = chai.expect;
- chai.use(sinonChai);
- describe('The emailSender', () => {
- let emailData;
- beforeEach(() => {
- emailData = {
- email: 'testemail@eml.co'
- };
- sinon.stub(User, 'findOne').returns(Promise.resolve());
- sinon.stub(emailLogger, 'log');
- })
- afterEach(() => {
- User.findOne.restore();
- emailLogger.log.restore();
- })
- describe('sendToUser method', () => {
- it('logs an email if a user is found', () => {
- let emailSender = new EmailSender('Email subject', emailData);
- emailSender.sendToUser();
- expect(User.findOne).to.have.been.calledOnce; // works
- expect(emailLogger.log).to.have.been.calledOnce; // doesn't
- })
- })
- });
Add Comment
Please, Sign In to add comment