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-05-02 00:21:49 -04:00
|
|
|
var base = require('../clients/base');
|
|
|
|
var objectdump = require('objectdump');
|
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 00:20:51 -04:00
|
|
|
var runQuery = MySql.runQuery;
|
2013-05-02 00:21:49 -04:00
|
|
|
Knex.runQuery = function(builder, data) {
|
|
|
|
builder._asSql = true;
|
|
|
|
return runQuery.call(this, builder, data);
|
|
|
|
};
|
|
|
|
|
|
|
|
var obj = {};
|
|
|
|
var counter = {};
|
|
|
|
var handler = function(instance, section) {
|
|
|
|
var item = 1;
|
|
|
|
return function(resolver) {
|
|
|
|
return function(data) {
|
|
|
|
// if (_.isArray(data)) console.log(data);
|
|
|
|
var label = '' + section + '.' + item;
|
|
|
|
obj[label] = obj[label] || {};
|
|
|
|
obj[label][instance] = data;
|
|
|
|
item++;
|
|
|
|
resolver();
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
describe('Knex.SchemaBuilder', function() {
|
|
|
|
require('./lib/schema')(MySql, 'mysql', handler('mysql', 'schema'));
|
|
|
|
require('./lib/schema')(Sqlite3, 'sqlite3', handler('sqlite3', 'schema'));
|
|
|
|
require('./lib/schema')(Postgres, 'postgres', handler('postgres', 'schema'));
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('Knex.Builder', function() {
|
|
|
|
|
|
|
|
describe('Inserts', function() {
|
|
|
|
require('./lib/inserts')(MySql, 'mysql', handler('mysql', 'inserts'));
|
|
|
|
require('./lib/inserts')(Sqlite3, 'sqlite3', handler('sqlite3', 'inserts'));
|
|
|
|
require('./lib/inserts')(Postgres, 'postgres', handler('postgres', 'inserts'));
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('Updates', function() {
|
|
|
|
require('./lib/updates')(MySql, 'mysql', handler('mysql', 'updates'));
|
|
|
|
require('./lib/updates')(Sqlite3, 'sqlite3', handler('sqlite3', 'updates'));
|
|
|
|
require('./lib/updates')(Postgres, 'postgres', handler('postgres', 'updates'));
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('Selects', function() {
|
|
|
|
require('./lib/selects')(MySql, 'mysql', handler('mysql', 'selects'));
|
|
|
|
require('./lib/selects')(Sqlite3, 'sqlite3', handler('sqlite3', 'selects'));
|
|
|
|
require('./lib/selects')(Postgres, 'postgres', handler('postgres', 'selects'));
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('Deletes', function() {
|
|
|
|
require('./lib/deletes')(MySql, 'mysql', handler('mysql', 'deletes'));
|
|
|
|
require('./lib/deletes')(Sqlite3, 'sqlite3', handler('sqlite3', 'deletes'));
|
|
|
|
require('./lib/deletes')(Postgres, 'postgres', handler('postgres', 'deletes'));
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('Aggregates, Truncate', function() {
|
|
|
|
// require('./lib/aggregate')(MySql, 'mysql', handler('mysql', 'aggregate'));
|
|
|
|
// require('./lib/aggregate')(Sqlite3, 'sqlite3', handler('sqlite3', 'aggregate'));
|
|
|
|
// require('./lib/aggregate')(Postgres, 'postgres', handler('postgres', 'aggregate'));
|
|
|
|
});
|
|
|
|
|
|
|
|
after(function() {
|
|
|
|
require('fs').writeFileSync('./test/shared/output.js', 'module.exports = ' + objectdump(obj));
|
|
|
|
});
|
|
|
|
});
|