4 const assert
= require('assert');
5 const sinon
= require('sinon'); // eslint-disable-line node/no-unpublished-require
6 const common
= require('../../../src/common');
7 const DB
= require('../../../src/db');
8 const DBErrors
= require('../../../src/db/errors');
9 const DatabasePostgres
= require('../../../src/db/postgres');
10 const DatabaseSQLite
= require('../../../src/db/sqlite');
12 describe('DatabaseFactory', function () {
14 beforeEach(function () {
15 logger
= common
.nullLogger
;
22 afterEach(function () {
25 it('gets engines', function () {
26 const result
= DB
.Engines
;
27 assert(result
instanceof Object
);
28 assert(Object
.keys(result
).length
);
30 it('creates postgres db', function () {
31 options
.db
.connectionString
= 'postgresql://blah';
32 const db
= new DB(logger
, options
);
33 assert(db
instanceof DatabasePostgres
);
35 it('creates sqlite db', function () {
36 options
.db
.connectionString
= 'sqlite://:memory:';
37 const db
= new DB(logger
, options
);
38 assert(db
instanceof DatabaseSQLite
);
40 it('handles missing db', function () {
41 delete options
.db
.connectionString
;
43 new DB(logger
, options
);
44 assert
.fail('did not get expected exception');
46 assert(e
instanceof DBErrors
.UnsupportedEngine
);
49 }); // DatabaseFactory