From df9dfcdebc26cc4a5c7491134ad23b1339606510 Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Fri, 31 Oct 2014 13:15:31 -0400 Subject: [PATCH] Adaptive loading of dblite test based on whether the module exists --- tests/adapters/dblite_test.js | 79 ++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 30 deletions(-) diff --git a/tests/adapters/dblite_test.js b/tests/adapters/dblite_test.js index 01593f8..2c64ce8 100644 --- a/tests/adapters/dblite_test.js +++ b/tests/adapters/dblite_test.js @@ -7,44 +7,63 @@ var tests = testBase.tests; // Load the test config file var adapterName = 'dblite'; +var sqlite = null; +var connection = null; // Set up the connection -var sqlite = require(adapterName).withSQLite('3.8.6+'); -var connection = sqlite(':memory:'); +try { + sqlite = require(adapterName).withSQLite('3.8.6+'); + connection = sqlite(':memory:'); +} catch (e) { + // Export an empty testsuite if module not loaded + console.log(e); + console.log("Database adapter dblite not found"); + return {}; +} -// Set up the query builder object -var nodeQuery = require('../../lib/node-query'); -var qb = nodeQuery('sqlite', connection, adapterName); +if (connection) +{ + // Set up the query builder object + var nodeQuery = require('../../lib/node-query'); + var qb = nodeQuery('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);' + -'CREATE TABLE IF NOT EXISTS "create_join" ("id" INTEGER PRIMARY KEY, "key" TEXT, "val" TEXT);'; -connection.query(sql); + // Set up the sqlite database + var sql = 'CREATE TABLE IF NOT EXISTS "create_test" ("id" INTEGER PRIMARY KEY, "key" TEXT, "val" TEXT);' + + 'CREATE TABLE IF NOT EXISTS "create_join" ("id" INTEGER PRIMARY KEY, "key" TEXT, "val" TEXT);'; + connection.query(sql); -// Set up the test base -testBase._setUp(qb, function(test, err, rows) { - if (err != null) { + // Set up the test base + testBase._setUp(qb, function(test, err, rows) { + if (err != null) { + test.done(); + throw new Error(err); + } + + // Insert/Update/Delete queries return undefined + if (rows === undefined) { + rows = {}; + } + + test.ok(rows, 'dblite: Valid result for generated query'); test.done(); - throw new Error(err); - } + }); - // Insert/Update/Delete queries return undefined - if (rows === undefined) { - rows = {}; - } + tests["dblite adapter with query builder"] = function(test) { + test.expect(1); + test.ok(testBase.qb); - test.ok(rows, 'dblite: Valid result for generated query'); - test.done(); -}); + // Close the db connection + connection.close(); + test.done(); + }; + + // Export the final test object + module.exports = tests; +} +else +{ + module.exports = {}; +} -tests["dblite 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; \ No newline at end of file