import { MailSenderBuilder } from "../../src/lib/notifiers/MailSenderBuilder"; import Nodemailer = require("nodemailer"); import Sinon = require("sinon"); import Assert = require("assert"); describe("test MailSenderBuilder", function() { let createTransportStub: Sinon.SinonStub; beforeEach(function() { createTransportStub = Sinon.stub(Nodemailer, "createTransport"); }); afterEach(function() { createTransportStub.restore(); }); it("should create a gmail mail sender", function() { const mailSenderBuilder = new MailSenderBuilder(Nodemailer); mailSenderBuilder.buildGmail({ username: "user_gmail", password: "pass_gmail" }); Assert.equal(createTransportStub.getCall(0).args[0].auth.user, "user_gmail"); Assert.equal(createTransportStub.getCall(0).args[0].auth.pass, "pass_gmail"); }); it("should create a smtp mail sender", function() { const mailSenderBuilder = new MailSenderBuilder(Nodemailer); mailSenderBuilder.buildSmtp({ host: "mail.example.com", password: "password", port: 25, secure: true, username: "user" }); Assert.deepStrictEqual(createTransportStub.getCall(0).args[0], { host: "mail.example.com", auth: { pass: "password", user: "user" }, port: 25, secure: true, }); }); });