2013-06-09 13:50:43 -04:00
|
|
|
var equal = require('assert').equal;
|
2013-05-08 20:16:39 -04:00
|
|
|
var When = require('when');
|
2013-05-02 00:21:49 -04:00
|
|
|
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-04 02:57:12 -04:00
|
|
|
// The output goes here.
|
|
|
|
exports.output = {};
|
|
|
|
|
2013-06-09 13:50:43 -04:00
|
|
|
var pool = {
|
2013-06-09 16:57:31 -04:00
|
|
|
afterCreate: function(conn, done) {
|
2013-06-09 13:50:43 -04:00
|
|
|
equal(_.has(conn, '__cid'), true);
|
|
|
|
done();
|
|
|
|
},
|
|
|
|
beforeDestroy: function(conn, done) {
|
|
|
|
equal(_.has(conn, '__cid'), true);
|
|
|
|
done();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2013-05-08 16:52:44 -04:00
|
|
|
Knex.Initialize({
|
2013-05-02 00:21:49 -04:00
|
|
|
client: 'mysql',
|
2013-06-09 13:50:43 -04:00
|
|
|
connection: conn.mysql,
|
2013-07-17 08:38:33 -04:00
|
|
|
pool: _.extend({}, pool, {
|
|
|
|
afterCreate: function(conn, done) {
|
|
|
|
conn.query("SET sql_mode='TRADITIONAL';", [], function(err) {
|
|
|
|
done(err);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
})
|
2013-05-02 00:21:49 -04:00
|
|
|
});
|
|
|
|
var Sqlite3 = Knex.Initialize('sqlite3', {
|
|
|
|
client: 'sqlite3',
|
2013-06-09 13:50:43 -04:00
|
|
|
connection: conn.sqlite3,
|
|
|
|
pool: pool
|
2013-05-02 00:21:49 -04:00
|
|
|
});
|
|
|
|
var Postgres = Knex.Initialize('postgres', {
|
|
|
|
client: 'postgres',
|
2013-06-09 13:50:43 -04:00
|
|
|
connection: conn.postgres,
|
|
|
|
pool: pool
|
2013-05-02 00:21:49 -04:00
|
|
|
});
|
2013-03-19 20:28:03 -04:00
|
|
|
|
2013-05-09 03:47:03 -04:00
|
|
|
var regularThen = Knex.Builder.prototype.then;
|
|
|
|
var then = function(success, error) {
|
|
|
|
var ctx = this;
|
|
|
|
var bindings = ctx._cleanBindings();
|
|
|
|
var chain = regularThen.call(this, function(resp) {
|
|
|
|
return {
|
|
|
|
object: resp,
|
|
|
|
string: {
|
|
|
|
sql: ctx.sql,
|
2013-06-09 13:50:43 -04:00
|
|
|
bindings: bindings
|
2013-05-09 03:47:03 -04:00
|
|
|
}
|
|
|
|
};
|
2013-05-02 00:21:49 -04:00
|
|
|
});
|
2013-05-09 03:47:03 -04:00
|
|
|
return chain.then(success, error);
|
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() {
|
|
|
|
|
2013-05-09 03:47:03 -04:00
|
|
|
_.each(['Builder', 'SchemaBuilder', 'Raw'], function(item) {
|
|
|
|
Knex[item].prototype.then = then;
|
|
|
|
Postgres[item].prototype.then = then;
|
|
|
|
Sqlite3[item].prototype.then = then;
|
2013-05-03 12:51:54 -04:00
|
|
|
});
|
|
|
|
|
2013-05-09 03:47:03 -04:00
|
|
|
require('./regular')(Knex, 'mysql');
|
|
|
|
require('./regular')(Postgres, 'postgres');
|
|
|
|
require('./regular')(Sqlite3, 'sqlite3');
|
|
|
|
|
2013-05-03 23:16:15 -04:00
|
|
|
});
|