authelia/server/test/connectors/mongo/MongoConnector.test.ts

48 lines
1.6 KiB
TypeScript
Raw Normal View History

import Assert = require("assert");
import Sinon = require("sinon");
import MongoDB = require("mongodb");
import BluebirdPromise = require("bluebird");
import { IMongoClient } from "../../../src/lib/connectors/mongo/IMongoClient";
import { MongoConnector } from "../../../src/lib/connectors/mongo/MongoConnector";
describe("MongoConnector", function () {
let mongoClientConnectStub: Sinon.SinonStub;
2018-03-28 22:04:59 +00:00
describe("create", function () {
before(function () {
mongoClientConnectStub = Sinon.stub(MongoDB.MongoClient, "connect");
});
after(function() {
mongoClientConnectStub.restore();
});
it("should create a connector", function () {
2018-03-28 22:04:59 +00:00
const client = { db: Sinon.mock() };
mongoClientConnectStub.yields(undefined, client);
const url = "mongodb://test.url";
const connector = new MongoConnector(url);
2018-03-28 22:04:59 +00:00
return connector.connect("database")
.then(function (client: IMongoClient) {
Assert(client);
Assert(mongoClientConnectStub.calledWith(url));
});
});
it("should fail creating a connector", function () {
mongoClientConnectStub.yields(new Error("Error while creating mongo client"));
const url = "mongodb://test.url";
const connector = new MongoConnector(url);
2018-03-28 22:04:59 +00:00
return connector.connect("database")
.then(function () { return BluebirdPromise.reject(new Error("It should not be here")); })
.error(function (client: IMongoClient) {
Assert(client);
Assert(mongoClientConnectStub.calledWith(url));
return BluebirdPromise.resolve();
});
});
});
});