Remove FileSystem notifier completely
parent
4cd78f3f83
commit
f564174998
|
@ -12,7 +12,6 @@ services:
|
||||||
- SLAPD_FORCE_RECONFIGURE=true
|
- SLAPD_FORCE_RECONFIGURE=true
|
||||||
volumes:
|
volumes:
|
||||||
- ./example/ldap/base.ldif:/etc/ldap.dist/prepopulate/base.ldif
|
- ./example/ldap/base.ldif:/etc/ldap.dist/prepopulate/base.ldif
|
||||||
- ./example/ldap/private.ldif:/etc/ldap.dist/prepopulate/private.ldif
|
|
||||||
- ./example/ldap/access.rules:/etc/ldap.dist/prepopulate/access.rules
|
- ./example/ldap/access.rules:/etc/ldap.dist/prepopulate/access.rules
|
||||||
networks:
|
networks:
|
||||||
- example-network
|
- example-network
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
|
|
||||||
import * as BluebirdPromise from "bluebird";
|
|
||||||
import * as util from "util";
|
|
||||||
import * as Fs from "fs";
|
|
||||||
import { INotifier } from "./INotifier";
|
|
||||||
import { Identity } from "../../../types/Identity";
|
|
||||||
|
|
||||||
import { FileSystemNotifierConfiguration } from "../configuration/Configuration";
|
|
||||||
|
|
||||||
export class FileSystemNotifier implements INotifier {
|
|
||||||
private filename: string;
|
|
||||||
|
|
||||||
constructor(options: FileSystemNotifierConfiguration) {
|
|
||||||
this.filename = options.filename;
|
|
||||||
}
|
|
||||||
|
|
||||||
notify(identity: Identity, subject: string, link: string): BluebirdPromise<void> {
|
|
||||||
const content = util.format("Date: %s\nUser: %s\nSubject: %s\nLink: %s", new Date().toString(), identity.userid,
|
|
||||||
subject, link);
|
|
||||||
const writeFilePromised: any = BluebirdPromise.promisify(Fs.writeFile);
|
|
||||||
return writeFilePromised(this.filename, content);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -5,16 +5,12 @@ import { INotifier } from "./INotifier";
|
||||||
|
|
||||||
import { GMailNotifier } from "./GMailNotifier";
|
import { GMailNotifier } from "./GMailNotifier";
|
||||||
import { SmtpNotifier } from "./SmtpNotifier";
|
import { SmtpNotifier } from "./SmtpNotifier";
|
||||||
import { FileSystemNotifier } from "./FileSystemNotifier";
|
|
||||||
|
|
||||||
export class NotifierFactory {
|
export class NotifierFactory {
|
||||||
static build(options: NotifierConfiguration, nodemailer: Nodemailer): INotifier {
|
static build(options: NotifierConfiguration, nodemailer: Nodemailer): INotifier {
|
||||||
if ("gmail" in options) {
|
if ("gmail" in options) {
|
||||||
return new GMailNotifier(options.gmail, nodemailer);
|
return new GMailNotifier(options.gmail, nodemailer);
|
||||||
}
|
}
|
||||||
else if ("filesystem" in options) {
|
|
||||||
return new FileSystemNotifier(options.filesystem);
|
|
||||||
}
|
|
||||||
else if ("smtp" in options) {
|
else if ("smtp" in options) {
|
||||||
return new SmtpNotifier(options.smtp, nodemailer);
|
return new SmtpNotifier(options.smtp, nodemailer);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,10 +13,12 @@ export function NodemailerMock(): NodemailerMock {
|
||||||
|
|
||||||
export interface NodemailerTransporterMock {
|
export interface NodemailerTransporterMock {
|
||||||
sendMail: sinon.SinonStub;
|
sendMail: sinon.SinonStub;
|
||||||
|
verify: sinon.SinonStub;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function NodemailerTransporterMock() {
|
export function NodemailerTransporterMock() {
|
||||||
return {
|
return {
|
||||||
sendMail: sinon.stub()
|
sendMail: sinon.stub(),
|
||||||
|
verify: sinon.stub()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
|
|
||||||
import * as sinon from "sinon";
|
|
||||||
import * as assert from "assert";
|
|
||||||
import { FileSystemNotifier } from "../../../../src/server/lib/notifiers/FileSystemNotifier";
|
|
||||||
import * as tmp from "tmp";
|
|
||||||
import * as fs from "fs";
|
|
||||||
import BluebirdPromise = require("bluebird");
|
|
||||||
|
|
||||||
const NOTIFICATIONS_DIRECTORY = "notifications";
|
|
||||||
|
|
||||||
describe("test FS notifier", function() {
|
|
||||||
let tmpDir: tmp.SynchrounousResult;
|
|
||||||
before(function() {
|
|
||||||
tmpDir = tmp.dirSync({ unsafeCleanup: true });
|
|
||||||
});
|
|
||||||
|
|
||||||
after(function() {
|
|
||||||
tmpDir.removeCallback();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should write the notification in a file", function() {
|
|
||||||
const options = {
|
|
||||||
filename: tmpDir.name + "/" + NOTIFICATIONS_DIRECTORY
|
|
||||||
};
|
|
||||||
|
|
||||||
const sender = new FileSystemNotifier(options);
|
|
||||||
const subject = "subject";
|
|
||||||
|
|
||||||
const identity = {
|
|
||||||
userid: "user",
|
|
||||||
email: "user@example.com"
|
|
||||||
};
|
|
||||||
|
|
||||||
const url = "http://test.com";
|
|
||||||
|
|
||||||
return sender.notify(identity, subject, url)
|
|
||||||
.then(function() {
|
|
||||||
const content = fs.readFileSync(options.filename, "UTF-8");
|
|
||||||
assert(content.length > 0);
|
|
||||||
return BluebirdPromise.resolve();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -5,7 +5,7 @@ import * as assert from "assert";
|
||||||
|
|
||||||
import { NotifierFactory } from "../../../../src/server/lib/notifiers/NotifierFactory";
|
import { NotifierFactory } from "../../../../src/server/lib/notifiers/NotifierFactory";
|
||||||
import { GMailNotifier } from "../../../../src/server/lib/notifiers/GMailNotifier";
|
import { GMailNotifier } from "../../../../src/server/lib/notifiers/GMailNotifier";
|
||||||
import { FileSystemNotifier } from "../../../../src/server/lib/notifiers/FileSystemNotifier";
|
import { SmtpNotifier } from "../../../../src/server/lib/notifiers/SmtpNotifier";
|
||||||
|
|
||||||
import NodemailerMock = require("../mocks/nodemailer");
|
import NodemailerMock = require("../mocks/nodemailer");
|
||||||
|
|
||||||
|
@ -20,17 +20,25 @@ describe("test notifier factory", function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
nodemailerMock = NodemailerMock.NodemailerMock();
|
nodemailerMock = NodemailerMock.NodemailerMock();
|
||||||
nodemailerMock.createTransport.returns(sinon.spy());
|
const transporterMock = NodemailerMock.NodemailerTransporterMock();
|
||||||
|
nodemailerMock.createTransport.returns(transporterMock);
|
||||||
assert(NotifierFactory.build(options, nodemailerMock) instanceof GMailNotifier);
|
assert(NotifierFactory.build(options, nodemailerMock) instanceof GMailNotifier);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should build a FS Notifier", function() {
|
it("should build a SMTP Notifier", function() {
|
||||||
const options = {
|
const options = {
|
||||||
filesystem: {
|
smtp: {
|
||||||
filename: "abc"
|
username: "user",
|
||||||
|
password: "pass",
|
||||||
|
secure: true,
|
||||||
|
host: "localhost",
|
||||||
|
port: 25
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
assert(NotifierFactory.build(options, nodemailerMock) instanceof FileSystemNotifier);
|
nodemailerMock = NodemailerMock.NodemailerMock();
|
||||||
|
const transporterMock = NodemailerMock.NodemailerTransporterMock();
|
||||||
|
nodemailerMock.createTransport.returns(transporterMock);
|
||||||
|
assert(NotifierFactory.build(options, nodemailerMock) instanceof SmtpNotifier);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue