node-query/test/base_test.js

54 lines
1.4 KiB
JavaScript
Raw Normal View History

/* eslint-env node, mocha */
'use strict';
const expect = require('chai').expect;
const reload = require('require-reload')(require);
const glob = require('glob');
const nodeQuery = reload('../lib/NodeQuery')();
const Adapter = reload('../lib/Adapter');
suite('Base tests -', () => {
2015-12-07 12:03:42 -05:00
suite('Sanity check', () => {
let files = glob.sync(`${__dirname}/../lib/**/*.js`);
files.forEach(mod => {
let obj = require(mod);
2015-12-07 17:03:36 -05:00
let shortName = mod.replace(/^\/(.*?)\/lib\/(.*?)\.js$/g, '$2');
2015-12-07 12:03:42 -05:00
test(`${shortName} module is sane`, () => {
expect(obj).to.be.ok;
});
});
});
test('NodeQuery.getQuery with no instance', () => {
2015-12-07 12:03:42 -05:00
// Hack for testing to work around node
// module caching
let nodeQueryCopy = Object.create(nodeQuery);
nodeQueryCopy.instance = null;
expect(() => {
nodeQueryCopy.getQuery();
2015-12-07 17:03:36 -05:00
}).to.throw(Error, 'No Query Builder instance to return');
});
test('Invalid driver type', () => {
2015-12-07 12:03:42 -05:00
expect(() => {
2016-03-11 16:32:38 -05:00
reload('../lib/NodeQuery')({
driver: 'Foo'
2016-03-11 16:32:38 -05:00
});
2015-12-07 17:03:36 -05:00
}).to.throw(Error, 'Selected driver (Foo) does not exist!');
});
2015-12-08 10:06:29 -05:00
test('Invalid adapter', () => {
expect(() => {
let a = new Adapter();
a.execute();
}).to.throw(Error, 'Correct adapter not defined for query execution');
});
test('Invalid adapter - missing transformResult', () => {
expect(() => {
let a = new Adapter();
a.transformResult([]);
}).to.throw(Error, 'Result transformer method not defined for current adapter');
});
});