'use strict'; // Load the test base let reload = require('require-reload')(require); let getArgs = require('getargs'); let expect = require('chai').expect; let tests = reload('./adapterTestBase').tests; let testRunner = reload('./adapterTestBase').runner; // Load the test config file let adapterName = 'dblite'; let sqlite = null; let connection = null; // Set up the connection try { sqlite = require(adapterName).withSQLite('3.7.11'); connection = sqlite(':memory:'); } catch (e) { // Export an empty testsuite if module not loaded console.log(e); console.log("Database adapter dblite not found"); //return {}; } if (connection) { // Set up the query builder object let nodeQuery = require('../../lib/NodeQuery'); let qb = nodeQuery.init('sqlite', connection, adapterName); // Add a test for this adapter tests['Select tests']['Select with function and argument in WHERE clause'] = { 'select': ['id'], 'from': ['create_test'], 'where': ['id', 'ABS(-88)'], 'get': [] }; suite('Dblite adapter tests', () => { suiteSetup(() => { // Set up the sqlite database let 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); }); testRunner(tests, qb, (err, done) => { expect(err).is.not.ok; done(); }); suite('Adapter-specific tests', () => { test('nodeQuery.getQuery = nodeQuery.init', () => { expect(nodeQuery.getQuery()) .to.be.deep.equal(qb); }); }); suiteTeardown(() => { connection.close(); }); }); }