knex/test/knexfile.js

140 lines
3.1 KiB
JavaScript
Raw Permalink Normal View History

'use strict';
var assert = require('assert')
var testConfig = process.env.KNEX_TEST && require(process.env.KNEX_TEST) || {};
var _ = require('lodash');
var Promise = require('bluebird');
2014-08-11 12:25:39 +02:00
// excluding oracle and maria dialects from default integrations test
var testIntegrationDialects = (process.env.DB || "maria mysql mysql2 postgres sqlite3").match(/\w+/g);
2014-08-11 12:25:39 +02:00
var pool = {
afterCreate: function(connection, callback) {
assert.ok(typeof connection.__knexUid !== 'undefined')
callback(null, connection);
},
beforeDestroy: function(connection, continueFunc) {
assert.ok(typeof connection.__knexUid !== 'undefined')
continueFunc();
}
};
2015-04-30 21:19:33 -04:00
var mysqlPool = _.extend({}, pool, {
afterCreate: function(connection, callback) {
2016-03-15 21:14:17 +01:00
Promise.promisify(connection.query, {context: connection})("SET sql_mode='TRADITIONAL';", []).then(function() {
2015-04-30 21:19:33 -04:00
callback(null, connection);
});
}
});
var mariaPool = _.extend({}, pool, {
afterCreate: function(connection, callback) {
var query = connection.query("SET sql_mode='TRADITIONAL';", [])
query.on('result', function(result) {
result.on('end', function() {
callback(null, connection)
})
})
}
});
var migrations = {
directory: 'test/integration/migrate/migration'
};
2014-07-21 18:38:40 -04:00
var seeds = {
directory: 'test/integration/seed/seeds'
2014-07-21 18:38:40 -04:00
};
2014-08-11 12:25:39 +02:00
var testConfigs = {
maria: {
dialect: 'maria',
connection: testConfig.maria || {
db: "knex_test",
user: "root",
2015-04-30 21:19:33 -04:00
charset: 'utf8',
host: '127.0.0.1'
},
2015-04-30 21:19:33 -04:00
pool: mariaPool,
2014-07-21 18:38:40 -04:00
migrations: migrations,
seeds: seeds
},
mysql: {
dialect: 'mysql',
connection: testConfig.mysql || {
database: "knex_test",
2014-06-03 09:56:37 -04:00
user: "root",
charset: 'utf8'
},
2015-04-30 21:19:33 -04:00
pool: mysqlPool,
2014-07-21 18:38:40 -04:00
migrations: migrations,
seeds: seeds
},
mysql2: {
dialect: 'mysql2',
connection: testConfig.mysql || {
database: "knex_test",
user: "root",
charset: 'utf8'
},
2015-04-30 21:19:33 -04:00
pool: mysqlPool,
2014-07-21 18:38:40 -04:00
migrations: migrations,
seeds: seeds
},
2014-08-11 12:25:39 +02:00
oracle: {
client: 'strong-oracle',
2014-08-11 12:25:39 +02:00
connection: testConfig.oracle || {
adapter: "oracle",
database: "knex_test",
user: "oracle"
},
pool: pool,
migrations: migrations
},
postgres: {
dialect: 'postgres',
connection: testConfig.postgres || {
adapter: "postgresql",
database: "knex_test",
user: "postgres"
},
pool: pool,
2014-07-21 18:38:40 -04:00
migrations: migrations,
seeds: seeds
},
sqlite3: {
dialect: 'sqlite3',
2015-12-08 11:37:31 -06:00
connection: testConfig.sqlite3 || {
filename: __dirname + '/test.sqlite3'
},
pool: pool,
2014-07-21 18:38:40 -04:00
migrations: migrations,
seeds: seeds
2015-12-08 11:37:31 -06:00
},
2015-12-14 11:10:46 -06:00
mssql: {
dialect: 'mssql',
connection: testConfig.mssql || {
user: "knex_test",
password: "knex_test",
server: "127.0.0.1",
2015-12-14 11:10:46 -06:00
database: "knex_test"
},
pool: pool,
migrations: migrations,
seeds: seeds
}
2014-08-11 12:25:39 +02:00
};
2014-08-11 12:25:39 +02:00
// export only copy the specified dialects
module.exports = _.reduce(testIntegrationDialects, function (res, dialectName) {
res[dialectName] = testConfigs[dialectName];
return res;
}, {});