65 lines
2.0 KiB
TypeScript
65 lines
2.0 KiB
TypeScript
|
|
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",
|
|
sender: "admin@example.com"
|
|
});
|
|
Assert.equal(createTransportStub.getCall(0).args[0].auth.user, "user_gmail");
|
|
Assert.equal(createTransportStub.getCall(0).args[0].auth.pass, "pass_gmail");
|
|
});
|
|
|
|
describe("build smtp mail sender", function() {
|
|
it("should create a smtp mail sender with authenticated user", function() {
|
|
const mailSenderBuilder = new MailSenderBuilder(Nodemailer);
|
|
mailSenderBuilder.buildSmtp({
|
|
host: "mail.example.com",
|
|
password: "password",
|
|
port: 25,
|
|
secure: true,
|
|
username: "user",
|
|
sender: "admin@example.com"
|
|
});
|
|
Assert.deepStrictEqual(createTransportStub.getCall(0).args[0], {
|
|
host: "mail.example.com",
|
|
auth: {
|
|
pass: "password",
|
|
user: "user"
|
|
},
|
|
port: 25,
|
|
secure: true,
|
|
});
|
|
});
|
|
|
|
it("should create a smtp mail sender with anonymous user", function() {
|
|
const mailSenderBuilder = new MailSenderBuilder(Nodemailer);
|
|
mailSenderBuilder.buildSmtp({
|
|
host: "mail.example.com",
|
|
port: 25,
|
|
secure: true,
|
|
sender: "admin@example.com"
|
|
});
|
|
Assert.deepStrictEqual(createTransportStub.getCall(0).args[0], {
|
|
host: "mail.example.com",
|
|
port: 25,
|
|
secure: true,
|
|
});
|
|
});
|
|
});
|
|
}); |