Guest User

Untitled

a guest
Oct 17th, 2017
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. // EmailSender.js
  2. const models = require('../models');
  3. const User = models.user;
  4. const emailLogger = require('./emailLogger');
  5.  
  6. class EmailSender {
  7. constructor(subject, emailData) {
  8. this.subject = subject;
  9. this.emailData = emailData;
  10. }
  11.  
  12. sendToUser() {
  13. let email = this.emailData.email;
  14.  
  15. User.findOne({ where: { $or: [
  16. { email: email },
  17. { workEmail: email },
  18. ] } })
  19. .then(function (userData) {
  20. if (userData) {
  21. emailLogger.log('Send to anon - sending to user ' + userData.id);
  22. });
  23. } else {
  24. emailLogger.log('Send to anon - no user found');
  25. }
  26. }
  27. }
  28.  
  29. const EmailSender = require('../../../helpers/emailSender');
  30. const models = require('../../../models');
  31. const User = models.user;
  32. const emailLogger = require('../../../helpers/emailLogger');
  33. const chai = require("chai");
  34. const sinon = require('sinon');
  35. const sinonChai = require("sinon-chai");
  36.  
  37. const expect = chai.expect;
  38. chai.use(sinonChai);
  39.  
  40. describe('The emailSender', () => {
  41. let emailData;
  42.  
  43. beforeEach(() => {
  44. emailData = {
  45. email: 'testemail@eml.co'
  46. };
  47. sinon.stub(User, 'findOne').returns(Promise.resolve());
  48. sinon.stub(emailLogger, 'log');
  49. })
  50.  
  51. afterEach(() => {
  52. User.findOne.restore();
  53. emailLogger.log.restore();
  54. })
  55.  
  56. describe('sendToUser method', () => {
  57. it('logs an email if a user is found', () => {
  58. let emailSender = new EmailSender('Email subject', emailData);
  59. emailSender.sendToUser();
  60.  
  61. expect(User.findOne).to.have.been.calledOnce; // works
  62. expect(emailLogger.log).to.have.been.calledOnce; // doesn't
  63. })
  64. })
  65. });
Add Comment
Please, Sign In to add comment