Even more code coverage
This commit is contained in:
parent
577700ed10
commit
dd4d7e2db0
@ -29,6 +29,6 @@ module.exports = class Adapter {
|
||||
* @return {void}
|
||||
*/
|
||||
close() {
|
||||
this.instance.close();
|
||||
this.instance.end();
|
||||
}
|
||||
};
|
@ -52,8 +52,9 @@ module.exports = class QueryParser {
|
||||
let output = [];
|
||||
|
||||
// Return non-array matches
|
||||
if (helpers.isNull(array)) return null;
|
||||
if (helpers.isScalar(array) || helpers.isUndefined(array)) return output;
|
||||
if (helpers.isNull(array)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
array.forEach(item => {
|
||||
output.push(item);
|
||||
@ -157,9 +158,9 @@ module.exports = class QueryParser {
|
||||
// Filter explicit literals from lists of matches
|
||||
if (whereValues.indexOf(whereMap[key]) !== -1) {
|
||||
let value = whereMap[key];
|
||||
let identIndex = (helpers.isArray(parts.identifiers)) ? parts.identifiers.indexOf(value) : -1;
|
||||
let identIndex = parts.identifiers.indexOf(value);
|
||||
let litIndex = (helpers.isArray(parts.literals)) ? parts.literals.indexOf(value) : -1;
|
||||
let combIndex = (helpers.isArray(parts.combined)) ? parts.combined.indexOf(value) : -1;
|
||||
let combIndex = parts.combined.indexOf(value);
|
||||
let funcIndex = (helpers.isArray(parts.functions)) ? parts.functions.indexOf(value) : -1;
|
||||
let inOutputArray = outputValues.indexOf(value) !== -1;
|
||||
|
||||
@ -190,16 +191,10 @@ module.exports = class QueryParser {
|
||||
if (combIndex !== -1 && funcIndex === -1) {
|
||||
// Make sure to skip functions when replacing values
|
||||
parts.combined[combIndex] = '?';
|
||||
|
||||
if (! inOutputArray) {
|
||||
outputValues.push(value);
|
||||
inOutputArray = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Filter false positive identifiers
|
||||
parts.identifiers = parts.identifiers || [];
|
||||
parts.identifiers = parts.identifiers.filter(item => {
|
||||
let isInCombinedMatches = parts.combined.indexOf(item) !== -1;
|
||||
let isNotInBlackList = this.identifierBlacklist.indexOf(item.toLowerCase()) === -1;
|
||||
@ -227,7 +222,7 @@ module.exports = class QueryParser {
|
||||
let litIndex = parts.combined.indexOf(lit);
|
||||
|
||||
if (litIndex !== -1) {
|
||||
parts.combined[litIndex] = (helpers.isArray(parts.operators)) ? '?' : '= ?';
|
||||
parts.combined[litIndex] = '?';
|
||||
outputValues.push(lit);
|
||||
}
|
||||
});
|
||||
|
@ -16,4 +16,12 @@ module.exports = class dblite extends Adapter {
|
||||
let args = getArgs('sql:string, [params]:array, callback:function', arguments);
|
||||
this.instance.query(args.sql, args.params, args.callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the current database connection
|
||||
* @return {void}
|
||||
*/
|
||||
close() {
|
||||
this.instance.close();
|
||||
}
|
||||
};
|
@ -56,6 +56,6 @@ suite('Mysql2 adapter tests', () => {
|
||||
});
|
||||
});
|
||||
suiteTeardown(() => {
|
||||
connection.end();
|
||||
qb.end();
|
||||
});
|
||||
});
|
@ -56,6 +56,6 @@ suite('Mysql adapter tests', () => {
|
||||
});
|
||||
});
|
||||
suiteTeardown(() => {
|
||||
connection.end();
|
||||
qb.end();
|
||||
});
|
||||
});
|
@ -15,7 +15,7 @@ let config = reload(configFile)[adapterName];
|
||||
// Set up the connection
|
||||
let pg = reload(adapterName);
|
||||
let connection = new pg.Client(config.conn);
|
||||
connection.connect(function(err) {
|
||||
connection.connect(err => {
|
||||
if (err) {
|
||||
throw new Error(err);
|
||||
}
|
||||
@ -59,6 +59,6 @@ suite('Pg adapter tests', () => {
|
||||
});
|
||||
});
|
||||
suiteTeardown(() => {
|
||||
connection.end();
|
||||
qb.end();
|
||||
});
|
||||
});
|
@ -3,7 +3,8 @@
|
||||
let expect = require('chai').expect,
|
||||
reload = require('require-reload')(require),
|
||||
glob = require('glob'),
|
||||
nodeQuery = reload('../lib/NodeQuery');
|
||||
nodeQuery = reload('../lib/NodeQuery'),
|
||||
Adapter = reload('../lib/Adapter');
|
||||
|
||||
suite('Base tests', () => {
|
||||
suite('Sanity check', () => {
|
||||
@ -32,4 +33,11 @@ suite('Base tests', () => {
|
||||
nodeQuery.init('foo', {}, 'bar');
|
||||
}).to.throw(Error, 'Selected driver (Foo) does not exist!');
|
||||
});
|
||||
|
||||
test('Invalid adapter', () => {
|
||||
expect(() => {
|
||||
let a = new Adapter();
|
||||
a.execute();
|
||||
}).to.throw(Error, 'Correct adapter not defined for query execution');
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user