2013-05-02 00:21:49 -04:00
|
|
|
var Q = require('q');
|
|
|
|
var _ = require('underscore');
|
|
|
|
var Knex = require('../knex');
|
2013-05-02 00:56:18 -04:00
|
|
|
var conn = require(process.env.KNEX_TEST || './shared/config');
|
2013-03-19 20:28:03 -04:00
|
|
|
|
2013-05-02 00:21:49 -04:00
|
|
|
var MySql = Knex.Initialize('mysql', {
|
|
|
|
client: 'mysql',
|
|
|
|
connection: conn.mysql
|
|
|
|
});
|
|
|
|
var Sqlite3 = Knex.Initialize('sqlite3', {
|
|
|
|
client: 'sqlite3',
|
|
|
|
connection: conn.sqlite3
|
|
|
|
});
|
|
|
|
var Postgres = Knex.Initialize('postgres', {
|
|
|
|
client: 'postgres',
|
|
|
|
connection: conn.postgres
|
|
|
|
});
|
2013-03-19 20:28:03 -04:00
|
|
|
|
2013-05-03 23:16:15 -04:00
|
|
|
var runQuery = Knex.runQuery;
|
|
|
|
Knex.runQuery = function(builder) {
|
|
|
|
if (builder.transaction) {
|
|
|
|
if (!builder.transaction.connection) return Q.reject(new Error('The transaction has already completed.'));
|
|
|
|
builder._connection = builder.transaction.connection;
|
|
|
|
}
|
|
|
|
// Query on the query builder, which should resolve with a promise.
|
|
|
|
return Q({
|
|
|
|
sql: builder.toSql(),
|
|
|
|
bindings: builder.bindings
|
2013-05-02 00:21:49 -04:00
|
|
|
});
|
2013-05-03 23:16:15 -04:00
|
|
|
};
|
2013-05-02 00:21:49 -04:00
|
|
|
|
2013-05-03 23:16:15 -04:00
|
|
|
describe('Knex', function() {
|
|
|
|
|
|
|
|
var allDone;
|
|
|
|
|
|
|
|
Q.all([
|
|
|
|
require('./string')(MySql, 'mysql'),
|
|
|
|
require('./string')(Postgres, 'postgres'),
|
|
|
|
require('./string')(Sqlite3, 'sqlite3')
|
|
|
|
]).then(function() {
|
|
|
|
Knex.runQuery = runQuery;
|
|
|
|
return Q.all([
|
|
|
|
require('./regular')(MySql, 'mysql'),
|
|
|
|
require('./regular')(Sqlite3, 'sqlite3'),
|
|
|
|
require('./regular')(Postgres, 'postgres')
|
|
|
|
]);
|
|
|
|
}).then(function() {
|
|
|
|
allDone();
|
|
|
|
}, allDone);
|
|
|
|
|
|
|
|
after(function(ok) {
|
|
|
|
allDone = ok;
|
2013-05-03 12:51:54 -04:00
|
|
|
});
|
|
|
|
|
2013-05-03 23:16:15 -04:00
|
|
|
});
|