import * as sinon from "sinon"; import * as BluebirdPromise from "bluebird"; import * as assert from "assert"; import { NotifierFactory } from "../../src/lib/notifiers/NotifierFactory"; import { GMailNotifier } from "../../src/lib/notifiers/GMailNotifier"; import { SmtpNotifier } from "../../src/lib/notifiers/SmtpNotifier"; import { MailSenderBuilderStub } from "../mocks/notifiers/MailSenderBuilderStub"; describe("test notifier factory", function () { let mailSenderBuilderStub: MailSenderBuilderStub; it("should build a Gmail Notifier", function () { const options = { gmail: { username: "abc", password: "password", sender: "admin@example.com" } }; mailSenderBuilderStub = new MailSenderBuilderStub(); assert(NotifierFactory.build(options, mailSenderBuilderStub) instanceof GMailNotifier); }); it("should build a SMTP Notifier", function () { const options = { smtp: { username: "user", password: "pass", secure: true, host: "localhost", port: 25, sender: "admin@example.com" } }; mailSenderBuilderStub = new MailSenderBuilderStub(); assert(NotifierFactory.build(options, mailSenderBuilderStub) instanceof SmtpNotifier); }); });