2014-11-03 10:59:18 -05:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
// Load the test base
|
|
|
|
delete require.cache[require.resolve('../query-builder-base')];
|
|
|
|
var testBase = require('../query-builder-base');
|
|
|
|
var tests = testBase.tests;
|
|
|
|
|
|
|
|
// Load the test config file
|
|
|
|
var adapterName = 'sqlite3';
|
|
|
|
var sqlite = null;
|
|
|
|
var connection = null;
|
|
|
|
|
|
|
|
// Set up the connection
|
|
|
|
try {
|
|
|
|
sqlite = require(adapterName).verbose();
|
|
|
|
connection = new sqlite.Database(':memory:');
|
|
|
|
} catch (e) {
|
|
|
|
// Export an empty testsuite if module not loaded
|
|
|
|
console.log(e);
|
|
|
|
console.log("Database adapter sqlite3 not found");
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
|
|
if (connection)
|
|
|
|
{
|
|
|
|
// Set up the query builder object
|
|
|
|
var nodeQuery = require('../../lib/node-query');
|
|
|
|
var qb = nodeQuery.init('sqlite', connection, adapterName);
|
|
|
|
|
|
|
|
// Set up the sqlite database
|
|
|
|
var sql = 'CREATE TABLE IF NOT EXISTS "create_test" ("id" INTEGER PRIMARY KEY, "key" TEXT, "val" TEXT);';
|
|
|
|
var sql2 = 'CREATE TABLE IF NOT EXISTS "create_join" ("id" INTEGER PRIMARY KEY, "key" TEXT, "val" TEXT);';
|
|
|
|
connection.serialize(function() {
|
|
|
|
connection.run(sql);
|
|
|
|
connection.run(sql2);
|
|
|
|
});
|
|
|
|
|
|
|
|
// Set up the test base
|
|
|
|
testBase._setUp(qb, function(test, err, result) {
|
|
|
|
if (err != null) {
|
|
|
|
test.done();
|
|
|
|
throw new Error(err);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Insert/Update/Delete queries return undefined
|
|
|
|
if (result === undefined) {
|
|
|
|
result = {};
|
|
|
|
}
|
|
|
|
|
|
|
|
test.ok(result, 'sqlite3: Valid result for generated query');
|
|
|
|
test.done();
|
|
|
|
});
|
|
|
|
|
2015-01-23 15:33:41 -05:00
|
|
|
tests['Select tests']['Select with function and argument in WHERE clause'] = function(test) {
|
|
|
|
test.expect(1);
|
|
|
|
qb.select('id')
|
|
|
|
.from('create_test')
|
|
|
|
.where('id', 'ABS(-88)')
|
|
|
|
.get(function(err, rows) {
|
|
|
|
if (err != null) {
|
|
|
|
test.done();
|
|
|
|
throw new Error(err);
|
|
|
|
}
|
|
|
|
|
|
|
|
test.ok(rows, 'sqlite3: Valid result for generated query');
|
|
|
|
test.done();
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2014-11-05 17:08:56 -05:00
|
|
|
tests['nodeQuery.getQuery = nodeQuery.init'] = function(test) {
|
|
|
|
test.expect(1);
|
|
|
|
test.deepEqual(qb, nodeQuery.getQuery(), "getQuery returns same object");
|
|
|
|
test.done();
|
|
|
|
};
|
|
|
|
|
2014-11-03 10:59:18 -05:00
|
|
|
tests["sqlite3 adapter with query builder"] = function(test) {
|
|
|
|
test.expect(1);
|
|
|
|
test.ok(testBase.qb);
|
|
|
|
|
|
|
|
// Close the db connection
|
|
|
|
connection.close();
|
|
|
|
test.done();
|
|
|
|
};
|
|
|
|
|
|
|
|
// Export the final test object
|
|
|
|
module.exports = tests;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
module.exports = {};
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|