Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions test/dialect-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ var user = Table.define({

test({
query : user.select(user.id).from(user),
pg : 'SELECT "user".id FROM "user"'
pg : 'SELECT "user"."id" FROM "user"'
});

test({
query : user.select(user.id, user.name).from(user),
pg : 'SELECT "user".id, "user".name FROM "user"'
pg : 'SELECT "user"."id", "user"."name" FROM "user"'
});

test({
Expand All @@ -41,37 +41,37 @@ test({

test({
query : user.select(user.id).from(user).where(user.name.equals('foo')),
pg : 'SELECT "user".id FROM "user" WHERE ("user".name = $1)',
pg : 'SELECT "user"."id" FROM "user" WHERE ("user"."name" = $1)',
params: ['foo']
});

test({
query : user.select(user.id).from(user).where(user.name.equals('foo').or(user.name.equals('bar'))),
pg : 'SELECT "user".id FROM "user" WHERE (("user".name = $1) OR ("user".name = $2))',
pg : 'SELECT "user"."id" FROM "user" WHERE (("user"."name" = $1) OR ("user"."name" = $2))',
params: ['foo', 'bar']
});

test({
query : user.select(user.id).from(user).where(user.name.equals('foo').and(user.name.equals('bar'))),
pg : 'SELECT "user".id FROM "user" WHERE (("user".name = $1) AND ("user".name = $2))',
pg : 'SELECT "user"."id" FROM "user" WHERE (("user"."name" = $1) AND ("user"."name" = $2))',
params: ['foo', 'bar']
});

test({
query : user.select(user.id).from(user).where(user.name.equals('foo')).or(user.name.equals('bar')),
pg : 'SELECT "user".id FROM "user" WHERE (("user".name = $1) OR ("user".name = $2))'
pg : 'SELECT "user"."id" FROM "user" WHERE (("user"."name" = $1) OR ("user"."name" = $2))'
});

test({
query : user.select(user.id).from(user).where(user.name.equals('foo')).or(user.name.equals('baz')).and(user.name.equals('bar')),
pg : 'SELECT "user".id FROM "user" WHERE ((("user".name = $1) OR ("user".name = $2)) AND ("user".name = $3))'
pg : 'SELECT "user"."id" FROM "user" WHERE ((("user"."name" = $1) OR ("user"."name" = $2)) AND ("user"."name" = $3))'
});

test({
query : user.select(user.id).from(user)
.where(user.name.equals('boom')
.and(user.id.equals(1))).or(user.name.equals('bang').and(user.id.equals(2))),
pg : 'SELECT "user".id FROM "user" WHERE ((("user".name = $1) AND ("user".id = $2)) OR (("user".name = $3) AND ("user".id = $4)))'
pg : 'SELECT "user"."id" FROM "user" WHERE ((("user"."name" = $1) AND ("user"."id" = $2)) OR (("user"."name" = $3) AND ("user"."id" = $4)))'
});

var post = Table.define({
Expand All @@ -81,24 +81,24 @@ var post = Table.define({

test({
query : user.select(user.name, post.content).from(user.join(post).on(user.id.equals(post.userId))),
pg : 'SELECT "user".name, post.content FROM "user" INNER JOIN post ON ("user".id = post."userId")'
pg : 'SELECT "user"."name", "post"."content" FROM "user" INNER JOIN "post" ON ("user"."id" = "post"."userId")'
});

var u = user.as('u');
test({
query : u.select(u.name).from(u),
pg :'SELECT u.name FROM "user" AS u'
pg :'SELECT u."name" FROM "user" AS u'
});

var p = post.as('p');
test({
query : u.select(u.name).from(u.join(p).on(u.id.equals(p.userId).and(p.id.equals(3)))),
pg : 'SELECT u.name FROM "user" AS u INNER JOIN post AS p ON ((u.id = p."userId") AND (p.id = $1))'
pg : 'SELECT u."name" FROM "user" AS u INNER JOIN "post" AS p ON ((u."id" = p."userId") AND (p."id" = $1))'
});

test({
query : u.select(p.content, u.name).from(u.join(p).on(u.id.equals(p.userId).and(p.content.isNotNull()))),
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))'
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))'
});

test({
Expand All @@ -108,80 +108,80 @@ test({

test({
query : post.select(post.content),
pg : 'SELECT post.content FROM post'
pg : 'SELECT "post"."content" FROM "post"'
});

test({
query : post.select(post.content).where(post.userId.equals(1)),
pg : 'SELECT post.content FROM post WHERE (post."userId" = $1)'
pg : 'SELECT "post"."content" FROM "post" WHERE ("post"."userId" = $1)'
});


test({
query : post.select(post.content).order(post.content),
pg : 'SELECT post.content FROM post ORDER BY post.content',
pg : 'SELECT "post"."content" FROM "post" ORDER BY "post"."content"',
});

test({
query : post.select(post.content).order(post.content, post.userId.descending),
pg : 'SELECT post.content FROM post ORDER BY post.content, (post."userId" DESC)'
pg : 'SELECT "post"."content" FROM "post" ORDER BY "post"."content", ("post"."userId" DESC)'
});

test({
query : post.select(post.content).order(post.content.asc, post.userId.desc),
pg : 'SELECT post.content FROM post ORDER BY post.content, (post."userId" DESC)'
pg : 'SELECT "post"."content" FROM "post" ORDER BY "post"."content", ("post"."userId" DESC)'
});


test({
query : post.insert(post.content.value('test'), post.userId.value(1)),
pg : 'INSERT INTO post (content, "userId") VALUES ($1, $2)',
pg : 'INSERT INTO "post" ("content", "userId") VALUES ($1, $2)',
params: ['test', 1]
});

test({
query : post.insert(post.content.value('whoah')),
pg : 'INSERT INTO post (content) VALUES ($1)',
pg : 'INSERT INTO "post" ("content") VALUES ($1)',
params: ['whoah']
});

test({
query : post.insert({content: 'test', userId: 2}),
pg : 'INSERT INTO post (content, "userId") VALUES ($1, $2)',
pg : 'INSERT INTO "post" ("content", "userId") VALUES ($1, $2)',
params: ['test', 2]
});


test({
query : post.update({content: 'test'}),
pg : 'UPDATE post SET post.content = $1',
pg : 'UPDATE "post" SET "content" = $1',
params: ['test']
});

test({
query : post.update({content: 'test', userId: 3}),
pg : 'UPDATE post SET post.content = $1, post."userId" = $2',
pg : 'UPDATE "post" SET "content" = $1, "userId" = $2',
params: ['test', 3]
});

test({
query : post.update({content: 'test', userId: 3}).where(post.content.equals('no')),
pg : 'UPDATE post SET post.content = $1, post."userId" = $2 WHERE (post.content = $3)',
pg : 'UPDATE "post" SET "content" = $1, "userId" = $2 WHERE ("post"."content" = $3)',
params: ['test', 3, 'no']
});

test({
query : post.delete().where(post.content.equals('')),
pg : 'DELETE FROM post WHERE (post.content = $1)',
pg : 'DELETE FROM "post" WHERE ("post"."content" = $1)',
params: ['']
});

var ignore = function() {
var parent = post.select(post.content);
assert.textEqual(parent, 'SELECT post.content FROM post');
assert.textEqual(parent, 'SELECT "post"."content" FROM "post"');
var child = parent.select(post.userId).where(post.userId.equals(1));
assert.textEqual(parent, 'SELECT post.content FROM post');
assert.textEqual(child, 'SELECT post.content, post."userId" FROM post WHERE (post."userId" = $1)');
assert.textEqual(parent, 'SELECT "post"."content" FROM "post"');
assert.textEqual(child, 'SELECT "post"."content", "post"."userId" FROM "post" WHERE ("post"."userId" = $1)');
}

var comment = Table.define({
Expand All @@ -197,5 +197,5 @@ var comment = Table.define({

test({
query : comment.select(comment.text, comment.userId),
pg : 'SELECT comment."text", comment.userId FROM comment',
pg : 'SELECT "comment"."text", "comment"."userId" FROM "comment"',
});
2 changes: 1 addition & 1 deletion test/index-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ test('throws before dialect is set', function(t) {
test('setting dialect to postgres works', function(t) {
sql.setDialect('postgres');
var query = sql.select(user.id).from(user).where(user.email.equals('brian.m.carlson@gmail.com')).toQuery();
t.equal(query.text, 'SELECT user.id FROM user WHERE (user.email = $1)');
t.equal(query.text, 'SELECT "user"."id" FROM "user" WHERE ("user"."email" = $1)');
t.equal(query.values[0], 'brian.m.carlson@gmail.com')
t.end();
});