Skip to content

Commit 2d32026

Browse files
committed
use node-tap
1 parent 524e638 commit 2d32026

6 files changed

Lines changed: 110 additions & 97 deletions

File tree

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
},
1818
"dependencies": {},
1919
"devDependencies": {
20-
"test-dir" : "*"
20+
"test-dir" : "*",
21+
"tap" : "*"
2122
}
2223
}

test/binary-clause-tests.js

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var assert = require('assert');
1+
var test = require('tap').test;
22
var Column = require(__dirname + '/../lib/column');
33
var Table = require(__dirname + '/../lib/table');
44

@@ -7,15 +7,17 @@ var Foo = Table.define({
77
columns: ['baz','bar']
88
})
99

10-
console.log('test operators');
11-
assert.equal(Foo.baz.equals(1).operator, '=');
12-
assert.equal(Foo.baz.equal(1).operator, '=');
13-
assert.equal(Foo.baz.notEqual(1).operator, '<>');
14-
assert.equal(Foo.baz.notEquals(1).operator, '<>');
15-
assert.equal(Foo.baz.like('asdf').operator, 'LIKE');
16-
assert.equal(Foo.baz.isNull().operator, 'IS NULL');
17-
assert.equal(Foo.baz.isNotNull().operator, 'IS NOT NULL');
18-
assert.equal(Foo.baz.gt(1).operator, '>');
19-
assert.equal(Foo.baz.gte(1).operator, '>=');
20-
assert.equal(Foo.baz.lt(1).operator, '<');
21-
assert.equal(Foo.baz.lte(1).operator, '<=');
10+
test('operators', function(t) {
11+
t.equal(Foo.baz.equals(1).operator, '=');
12+
t.equal(Foo.baz.equal(1).operator, '=');
13+
t.equal(Foo.baz.notEqual(1).operator, '<>');
14+
t.equal(Foo.baz.notEquals(1).operator, '<>');
15+
t.equal(Foo.baz.like('asdf').operator, 'LIKE');
16+
t.equal(Foo.baz.isNull().operator, 'IS NULL');
17+
t.equal(Foo.baz.isNotNull().operator, 'IS NOT NULL');
18+
t.equal(Foo.baz.gt(1).operator, '>');
19+
t.equal(Foo.baz.gte(1).operator, '>=');
20+
t.equal(Foo.baz.lt(1).operator, '<');
21+
t.equal(Foo.baz.lte(1).operator, '<=');
22+
t.end();
23+
})

test/clause-definition.js

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var assert = require('assert');
1+
var test = require('tap').test;
22
var Node = require(__dirname + '/../lib/node/');
33

44
console.log('node definition');
@@ -12,15 +12,18 @@ var Boom = Node.define({
1212
}
1313
});
1414

15-
var select = new Bang();
16-
assert.equal(select.type, 'SELECT');
17-
assert.equal(select.nodes.length, 0);
15+
test('clause definition', function(t) {
16+
var select = new Bang();
17+
t.equal(select.type, 'SELECT');
18+
t.equal(select.nodes.length, 0);
1819

19-
var q = new Boom('hai');
20-
assert.equal(q.nodes.length, 0);
21-
var q2 = new Boom('bai');
22-
q.nodes.push(1);
23-
assert.equal(q.nodes.length, 1);
24-
assert.equal(q.name, 'hai');
25-
assert.equal(q2.nodes.length, 0);
26-
assert.equal(q2.name, 'bai');
20+
var q = new Boom('hai');
21+
t.equal(q.nodes.length, 0);
22+
var q2 = new Boom('bai');
23+
q.nodes.push(1);
24+
t.equal(q.nodes.length, 1);
25+
t.equal(q.name, 'hai');
26+
t.equal(q2.nodes.length, 0);
27+
t.equal(q2.name, 'bai');
28+
t.end();
29+
})

test/dialect-tests.js

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
var assert = require('assert');
1+
var tap = require('tap').test;
22
var Postgres = require(__dirname + '/../lib/dialect/postgres');
33
var Table = require(__dirname + '/../lib/table');
44

55
var test = function(expected) {
6-
var query = expected.query;
7-
var pgQuery = new Postgres().getQuery(query);
8-
var expectedPgText = expected.pg;
9-
assert.equal(pgQuery.text, expected.pg, 'Postgres text not equal\n actual: "' + pgQuery.text + '"\n expected: "' + expected.pg + '"');
10-
if(expected.params) {
11-
assert.equal(expected.params.length, pgQuery.values.length);
12-
for(var i = 0; i < expected.params.length; i++) {
13-
assert.equal(expected.params[i], pgQuery.values[i]);
6+
tap(expected.pg, function(t) {
7+
var query = expected.query;
8+
var pgQuery = new Postgres().getQuery(query);
9+
var expectedPgText = expected.pg;
10+
t.equal(pgQuery.text, expected.pg, 'Postgres text not equal\n actual: "' + pgQuery.text + '"\n expected: "' + expected.pg + '"');
11+
if(expected.params) {
12+
t.equal(expected.params.length, pgQuery.values.length);
13+
for(var i = 0; i < expected.params.length; i++) {
14+
t.equal(expected.params[i], pgQuery.values[i]);
15+
}
1416
}
15-
}
17+
t.end();
18+
})
1619
}
1720

1821
var user = Table.define({
@@ -66,9 +69,9 @@ test({
6669

6770
test({
6871
query : user.select(user.id).from(user)
69-
.where(user.name.equals('boom')
70-
.and(user.id.equals(1))).or(user.name.equals('bang').and(user.id.equals(2))),
71-
pg : 'SELECT "user".id FROM "user" WHERE ((("user".name = $1) AND ("user".id = $2)) OR (("user".name = $3) AND ("user".id = $4)))'
72+
.where(user.name.equals('boom')
73+
.and(user.id.equals(1))).or(user.name.equals('bang').and(user.id.equals(2))),
74+
pg : 'SELECT "user".id FROM "user" WHERE ((("user".name = $1) AND ("user".id = $2)) OR (("user".name = $3) AND ("user".id = $4)))'
7275
});
7376

7477
var post = Table.define({
@@ -98,13 +101,11 @@ test({
98101
pg : 'SELECT p.content, u.name FROM "user" AS u INNER JOIN post AS p ON ((u.id = p."userId") AND (p.content IS NOT NULL))'
99102
});
100103

101-
console.log('inserting plain SQL');
102104
test({
103105
query : user.select('name').from('user').where('name <> NULL'),
104106
pg : 'SELECT name FROM user WHERE name <> NULL'
105107
});
106108

107-
console.log('automatic FROM on "easy" queries');
108109
test({
109110
query : post.select(post.content),
110111
pg : 'SELECT post.content FROM post'
@@ -115,7 +116,6 @@ test({
115116
pg : 'SELECT post.content FROM post WHERE (post."userId" = $1)'
116117
});
117118

118-
console.log('order by');
119119

120120
test({
121121
query : post.select(post.content).order(post.content),
@@ -132,7 +132,6 @@ test({
132132
pg : 'SELECT post.content FROM post ORDER BY post.content, (post."userId" DESC)'
133133
});
134134

135-
console.log('insert');
136135

137136
test({
138137
query : post.insert(post.content.value('test'), post.userId.value(1)),
@@ -152,7 +151,6 @@ test({
152151
params: ['test', 2]
153152
});
154153

155-
console.log('update');
156154

157155
test({
158156
query : post.update({content: 'test'}),
@@ -172,7 +170,6 @@ test({
172170
params: ['test', 3, 'no']
173171
});
174172

175-
console.log('IGNORE: parent queries');
176173
var ignore = function() {
177174
var parent = post.select(post.content);
178175
assert.textEqual(parent, 'SELECT post.content FROM post');
@@ -181,7 +178,6 @@ var ignore = function() {
181178
assert.textEqual(child, 'SELECT post.content, post."userId" FROM post WHERE (post."userId" = $1)');
182179
}
183180

184-
console.log('quoting column names');
185181
var comment = Table.define({
186182
name: 'comment',
187183
columns: [{

test/index-tests.js

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,31 @@
1-
var assert = require('assert');
1+
var test = require('tap').test;
22
var sql = require(__dirname + '/../lib');
33

44
var user = sql.define({
55
name: 'user',
66
columns: ['id', 'email']
77
});
88

9-
console.log('unknown dialog throws exception');
10-
assert.throws(function() {
11-
sql.setDialect('asdf');
12-
})
9+
test('unknown dialect', function(t) {
10+
console.log('unknown dialog throws exception');
11+
t.throws(function() {
12+
sql.setDialect('asdf');
13+
})
14+
t.end();
15+
});
16+
1317

14-
//throws before dialog is set
15-
assert.throws(function() {
16-
var query = sql.select(user.id).where(user.email.equals('brian.m.carlson@gmail.com')).toQuery();
17-
})
18+
test('throws before dialect is set', function(t) {
19+
t.throws(function() {
20+
var query = sql.select(user.id).where(user.email.equals('brian.m.carlson@gmail.com')).toQuery();
21+
});
22+
t.end();
23+
});
1824

19-
sql.setDialect('postgres');
20-
var query = sql.select(user.id).from(user).where(user.email.equals('brian.m.carlson@gmail.com')).toQuery();
21-
assert.equal(query.text, 'SELECT user.id FROM user WHERE (user.email = $1)');
22-
assert.equal(query.values[0], 'brian.m.carlson@gmail.com')
25+
test('setting dialect to postgres works', function(t) {
26+
sql.setDialect('postgres');
27+
var query = sql.select(user.id).from(user).where(user.email.equals('brian.m.carlson@gmail.com')).toQuery();
28+
t.equal(query.text, 'SELECT user.id FROM user WHERE (user.email = $1)');
29+
t.equal(query.values[0], 'brian.m.carlson@gmail.com')
30+
t.end();
31+
});

test/table-tests.js

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,43 @@
1-
var assert = require('assert');
1+
var test = require('tap').test;
22
var Table = require(__dirname + '/../lib/table');
33
var Column = require(__dirname + '/../lib/column');
44

5-
var table = new Table({
6-
name: 'bang'
7-
})
8-
9-
assert.equal(table.getName(), 'bang');
10-
assert.equal(table.columns.length, 0);
11-
12-
var col = new Column({
13-
table: table,
14-
name: 'boom'
15-
})
16-
17-
assert.equal(col.name, 'boom');
18-
assert.equal(col.table.getName(), 'bang');
19-
20-
table.addColumn(col);
21-
assert.equal(table.columns.length, 1);
22-
assert.equal(table.boom, col);
23-
24-
console.log('table creates query node');
25-
var sel = table.select(table.boom);
26-
assert.equal(sel.type, 'QUERY');
27-
28-
console.log('table can be defined');
29-
var user = Table.define({
30-
name: 'user',
31-
columns: ['id', 'name']
32-
})
33-
34-
assert.equal(user.getName(), 'user');
35-
assert.equal(user.columns.length, 2);
36-
assert.equal(user.columns[0].name, 'id');
37-
assert.equal(user.columns[1].name, 'name');
38-
assert.equal(user.columns[0].name, user.id.name)
39-
assert.equal(user.id.table, user);
40-
assert.equal(user.name.table, user);
41-
5+
test('table', function(t) {
6+
var table = new Table({
7+
name: 'bang'
8+
})
9+
10+
t.equal(table.getName(), 'bang');
11+
t.equal(table.columns.length, 0);
12+
13+
var col = new Column({
14+
table: table,
15+
name: 'boom'
16+
})
17+
18+
t.equal(col.name, 'boom');
19+
t.equal(col.table.getName(), 'bang');
20+
21+
table.addColumn(col);
22+
t.equal(table.columns.length, 1);
23+
t.equal(table.boom, col);
24+
25+
console.log('table creates query node');
26+
var sel = table.select(table.boom);
27+
t.equal(sel.type, 'QUERY');
28+
29+
console.log('table can be defined');
30+
var user = Table.define({
31+
name: 'user',
32+
columns: ['id', 'name']
33+
})
34+
35+
t.equal(user.getName(), 'user');
36+
t.equal(user.columns.length, 2);
37+
t.equal(user.columns[0].name, 'id');
38+
t.equal(user.columns[1].name, 'name');
39+
t.equal(user.columns[0].name, user.id.name)
40+
t.equal(user.id.table, user);
41+
t.equal(user.name.table, user);
42+
t.end();
43+
});

0 commit comments

Comments
 (0)