authelia/server/test/notifiers/EMailNotifier.test.ts

55 lines
1.8 KiB
TypeScript

import * as sinon from "sinon";
import * as Assert from "assert";
import BluebirdPromise = require("bluebird");
import { MailSenderStub } from "../mocks/notifiers/MailSenderStub";
import EMailNotifier = require("../../src/lib/notifiers/EMailNotifier");
describe("test email notifier", function () {
it("should send an email to given user", function () {
const mailSender = new MailSenderStub();
const options = {
username: "user_gmail",
password: "pass_gmail",
sender: "admin@example.com",
service: "gmail"
};
mailSender.sendStub.returns(BluebirdPromise.resolve());
const sender = new EMailNotifier.EMailNotifier(options, mailSender);
const subject = "subject";
const url = "http://test.com";
return sender.notify("user@example.com", subject, url)
.then(function () {
Assert.equal(mailSender.sendStub.getCall(0).args[0].to, "user@example.com");
Assert.equal(mailSender.sendStub.getCall(0).args[0].subject, "subject");
return BluebirdPromise.resolve();
});
});
it("should fail while sending an email", function () {
const mailSender = new MailSenderStub();
const options = {
username: "user_gmail",
password: "pass_gmail",
sender: "admin@example.com",
service: "gmail"
};
mailSender.sendStub.returns(BluebirdPromise.reject(new Error("Failed to send mail")));
const sender = new EMailNotifier.EMailNotifier(options, mailSender);
const subject = "subject";
const url = "http://test.com";
return sender.notify("user@example.com", subject, url)
.then(function () {
return BluebirdPromise.reject(new Error());
}, function() {
Assert.equal(mailSender.sendStub.getCall(0).args[0].from, "admin@example.com");
return BluebirdPromise.resolve();
});
});
});