-
Notifications
You must be signed in to change notification settings - Fork 55
/
sql.js
82 lines (74 loc) · 2.24 KB
/
sql.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
var assert = require('assert')
, utils = require('utilities')
, pg = require('pg')
, model = require('../../lib')
, Zooby = require('../fixtures/zooby').Zooby
, User = require('../fixtures/user').User
, Profile = require('../fixtures/profile').Profile
, generator = require('../../lib/generators/sql')
, tests
, arrIncl;
arrIncl = function (array, item) {
return array.some(function (arrItem) {
var str = utils.string.trim(arrItem.toLowerCase());
return str.indexOf(item) == 0;
});
};
tests = {
'test createTable SQL': function () {
var sql = generator.createTable(['Zooby']);
sql = sql.split('\n');
assert.ok(arrIncl(sql,
'drop table if exists zoobies;'));
assert.ok(arrIncl(sql,
'create table zoobies ('));
assert.ok(arrIncl(sql,
'foo varchar(256)'));
assert.ok(arrIncl(sql,
'bar real'));
assert.ok(arrIncl(sql,
'woot boolean'));
assert.ok(arrIncl(sql,
'freen date'));
assert.ok(arrIncl(sql,
'zong timestamp'));
assert.ok(arrIncl(sql,
'blarg time'));
}
, 'test createTable in DB, string id': function (next) {
var client = new pg.Client('postgres://mde@localhost/model_test');
var sql = generator.createTable(['Zooby']);
client.connect(function () {
client.on('drain', client.end.bind(client));
client.query(sql, function (err, data) {
next();
});
});
}
/*
, 'test createTable in DB, autoIncrement id': function (next) {
var client = new pg.Client('postgres://mde@localhost/model_test');
var sql = generator.createTable(['User']);
client.connect(function () {
client.on('drain', client.end.bind(client));
client.query(sql, function (err, data) {
next();
});
});
}
, 'test createTable in DB with association, autoIncrement id': function (next) {
var client = new pg.Client('postgres://mde@localhost/model_test');
var sql = generator.createTable(['Profile']);
client.connect(function () {
client.on('drain', client.end.bind(client));
client.query(sql, function (err, data) {
sql = sql.split('\n');
assert.ok(arrIncl(sql,
'user_id integer'));
next();
});
});
}
*/
};
module.exports = tests;