Socket
Socket
Sign inDemoInstall

sql

Package Overview
Dependencies
Maintainers
1
Versions
101
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sql - npm Package Compare versions

Comparing version 0.10.0 to 0.11.0

test/mocha.opts

8

lib/dialect/postgres.js

@@ -16,3 +16,7 @@ 'use strict';

Postgres.prototype.getQuery = function(queryNode) {
this.visitQuery(queryNode);
//passed in a table, not a query
if(queryNode.name) {
queryNode = queryNode.select(queryNode.star());
}
this.output = this.visit(queryNode);
return { text: this.output.join(' '), values: this.params };

@@ -258,3 +262,3 @@ };

//implicit 'from'
return this;
return this.output;
};

@@ -261,0 +265,0 @@

@@ -21,2 +21,7 @@ 'use strict';

Node.prototype.toQuery = function() {
var Dialect = require(__dirname + '/../').dialect;
return new Dialect().getQuery(this);
};
Node.prototype.addAll = function(nodes) {

@@ -23,0 +28,0 @@ for(var i = 0, len = nodes.length; i < len; i++) {

@@ -215,6 +215,2 @@ 'use strict';

return this;
},
toQuery: function() {
var Dialect = require(__dirname + '/../').dialect;
return new Dialect().getQuery(this);
}

@@ -221,0 +217,0 @@ });

@@ -5,3 +5,3 @@ {

"description": "sql builder",
"version": "0.10.0",
"version": "0.11.0",
"homepage": "https://github.com/brianc/node-sql",

@@ -14,3 +14,3 @@ "repository": {

"scripts": {
"test": "node test/"
"test": "./node_modules/.bin/mocha"
},

@@ -24,5 +24,4 @@ "engines": {

"devDependencies": {
"test-dir": "*",
"tap": "*"
"mocha": "*"
}
}
'use strict';
var test = require('tap').test;
var assert = require('assert');
var Table = require(__dirname + '/../lib/table');

@@ -11,15 +10,14 @@

test('operators', function(t) {
t.equal(Foo.baz.equals(1).operator, '=');
t.equal(Foo.baz.equal(1).operator, '=');
t.equal(Foo.baz.notEqual(1).operator, '<>');
t.equal(Foo.baz.notEquals(1).operator, '<>');
t.equal(Foo.baz.like('asdf').operator, 'LIKE');
t.equal(Foo.baz.isNull().operator, 'IS NULL');
t.equal(Foo.baz.isNotNull().operator, 'IS NOT NULL');
t.equal(Foo.baz.gt(1).operator, '>');
t.equal(Foo.baz.gte(1).operator, '>=');
t.equal(Foo.baz.lt(1).operator, '<');
t.equal(Foo.baz.lte(1).operator, '<=');
t.end();
test('operators', function() {
assert.equal(Foo.baz.equals(1).operator, '=');
assert.equal(Foo.baz.equal(1).operator, '=');
assert.equal(Foo.baz.notEqual(1).operator, '<>');
assert.equal(Foo.baz.notEquals(1).operator, '<>');
assert.equal(Foo.baz.like('asdf').operator, 'LIKE');
assert.equal(Foo.baz.isNull().operator, 'IS NULL');
assert.equal(Foo.baz.isNotNull().operator, 'IS NOT NULL');
assert.equal(Foo.baz.gt(1).operator, '>');
assert.equal(Foo.baz.gte(1).operator, '>=');
assert.equal(Foo.baz.lt(1).operator, '<');
assert.equal(Foo.baz.lte(1).operator, '<=');
});
'use strict';
var assert = require('assert');
var test = require('tap').test;
var Node = require(__dirname + '/../lib/node/');
console.log('node definition');
var Bang = Node.define({

@@ -18,16 +17,15 @@ type: 'SELECT'

test('clause definition', function(t) {
test('clause definition', function() {
var select = new Bang();
t.equal(select.type, 'SELECT');
t.equal(select.nodes.length, 0);
assert.equal(select.type, 'SELECT');
assert.equal(select.nodes.length, 0);
var q = new Boom('hai');
t.equal(q.nodes.length, 0);
assert.equal(q.nodes.length, 0);
var q2 = new Boom('bai');
q.nodes.push(1);
t.equal(q.nodes.length, 1);
t.equal(q.name, 'hai');
t.equal(q2.nodes.length, 0);
t.equal(q2.name, 'bai');
t.end();
assert.equal(q.nodes.length, 1);
assert.equal(q.name, 'hai');
assert.equal(q2.nodes.length, 0);
assert.equal(q2.name, 'bai');
});

@@ -16,2 +16,9 @@ 'use strict';

Harness.test({
query : user.join(post).on(user.id.equals(post.userId)),
pg : '"user" INNER JOIN "post" ON ("user"."id" = "post"."userId")',
sqlite: '"user" INNER JOIN "post" ON ("user"."id" = "post"."userId")',
mysql : '`user` INNER JOIN `post` ON (`user`.`id` = `post`.`userId`)'
});
Harness.test({
query : user

@@ -18,0 +25,0 @@ .select(user.name, post.content, comment.text)

'use strict';
var assert = require('assert');
var tap = require('tap').test;
var Table = require(__dirname + '/../../lib/table');

@@ -23,3 +23,3 @@

var title = dialect+': '+(expected.title || expected[dialect].text || expected[dialect]);
tap(title, function(t) {
test(title, function() {

@@ -29,3 +29,3 @@ // check if this query is expected to throw

t.throws(function() {
assert.throws(function() {
new DialectClass().getQuery(expected.query);

@@ -41,3 +41,3 @@ });

var expectedText = expected[dialect].text || expected[dialect];
t.equal(compiledQuery.text, expectedText,'query result');
assert.equal(compiledQuery.text, expectedText,'query result');

@@ -47,5 +47,5 @@ // if params are specified then test these are correct

if(expectedParams) {
t.equal(expectedParams.length, compiledQuery.values.length, 'params length');
assert.equal(expectedParams.length, compiledQuery.values.length, 'params length');
for(var i = 0; i < expectedParams.length; i++) {
t.equal(expectedParams[i], compiledQuery.values[i], 'param '+(i+1));
assert.equal(expectedParams[i], compiledQuery.values[i], 'param '+(i+1));
}

@@ -55,3 +55,2 @@ }

}
t.end();
});

@@ -58,0 +57,0 @@

'use strict';
var assert = require('assert');
var test = require('tap').test;
var sql = require(__dirname + '/../lib');

@@ -11,24 +11,22 @@

test('unknown dialect', function(t) {
console.log('unknown dialect throws exception');
t.throws(function() {
sql.setDialect('asdf');
suite('index', function() {
test('unknown dialect throws exception', function() {
assert.throws(function() {
sql.setDialect('asdf');
});
});
t.end();
});
test('throws before dialect is set', function(t) {
t.throws(function() {
var query = sql.select(user.id).where(user.email.equals('brian.m.carlson@gmail.com')).toQuery();
test('throws before dialect is set', function() {
assert.throws(function() {
var query = sql.select(user.id).where(user.email.equals('brian.m.carlson@gmail.com')).toQuery();
});
});
t.end();
});
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.values[0], 'brian.m.carlson@gmail.com');
t.end();
test('setting dialect to postgres works', function() {
sql.setDialect('postgres');
var query = sql.select(user.id).from(user).where(user.email.equals('brian.m.carlson@gmail.com')).toQuery();
assert.equal(query.text, 'SELECT "user"."id" FROM "user" WHERE ("user"."email" = $1)');
assert.equal(query.values[0], 'brian.m.carlson@gmail.com');
});
});

@@ -6,6 +6,5 @@ 'use strict';

var testDir = path.dirname(require.main.filename);
var testDir = __dirname;
var directories = [
testDir,
testDir + '/dialects'

@@ -19,5 +18,4 @@ ];

var filePath = path.join(d, file);
console.log(filePath);
require(filePath);
}
});

@@ -7,2 +7,9 @@ 'use strict';

var select = new Select();
assert.equal(select.type, 'SELECT');
test('has SELECT type', function() {
assert.equal(select.type, 'SELECT');
});
test('can go toQuery', function() {
assert.equal(select.toQuery().text, 'SELECT ');
});
'use strict';
var assert = require('assert');
var test = require('tap').test;
var Table = require(__dirname + '/../lib/table');
var Column = require(__dirname + '/../lib/column');
test('table', function(t) {
suite('table', function() {
var table = new Table({

@@ -12,38 +12,46 @@ name: 'bang'

t.equal(table.getName(), 'bang');
t.equal(table.columns.length, 0);
test('has name', function() {
assert.equal(table.getName(), 'bang');
});
var col = new Column({
table: table,
name: 'boom'
test('has no columns', function() {
assert.equal(table.columns.length, 0);
});
t.equal(col.name, 'boom');
t.equal(col.table.getName(), 'bang');
test('can add column', function() {
var col = new Column({
table: table,
name: 'boom'
});
table.addColumn(col);
t.equal(table.columns.length, 1);
t.equal(table.boom, col);
assert.equal(col.name, 'boom');
assert.equal(col.table.getName(), 'bang');
console.log('table creates query node');
var sel = table.select(table.boom);
t.equal(sel.type, 'QUERY');
table.addColumn(col);
assert.equal(table.columns.length, 1);
assert.equal(table.boom, col);
})
console.log('table can be defined');
var user = Table.define({
name: 'user',
columns: ['id', 'name']
test('creates query node', function() {
var sel = table.select(table.boom);
assert.equal(sel.type, 'QUERY');
});
t.equal(user.getName(), 'user');
t.equal(user.columns.length, 2);
t.equal(user.columns[0].name, 'id');
t.equal(user.columns[1].name, 'name');
t.equal(user.columns[0].name, user.id.name);
t.equal(user.id.table, user);
t.equal(user.name.table, user);
t.end();
test('can be defined', function() {
var user = Table.define({
name: 'user',
columns: ['id', 'name']
});
assert.equal(user.getName(), 'user');
assert.equal(user.columns.length, 2);
assert.equal(user.columns[0].name, 'id');
assert.equal(user.columns[1].name, 'name');
assert.equal(user.columns[0].name, user.id.name);
assert.equal(user.id.table, user);
assert.equal(user.name.table, user);
});
});
test('table with fancier column definitions', function(t) {
test('table with fancier column definitions', function() {
var table = Table.define({

@@ -65,15 +73,14 @@ name: 'blah',

var cols = table.columns;
t.equals(cols.length, 2);
assert.equal(cols.length, 2);
var id = cols[0];
t.equals(id.name, 'id');
t.equals(id.type, 'serial');
t.equals(id.notNull, true);
t.equals(id.primaryKey, true);
assert.equal(id.name, 'id');
assert.equal(id.type, 'serial');
assert.equal(id.notNull, true);
assert.equal(id.primaryKey, true);
var email = cols[1];
t.equals(email.name, 'email');
t.equals(email.type, 'text');
t.equals(email.notNull, true);
t.equals(email.unique, true);
t.equals(email.anythingYouWant, 'awesome');
t.end();
assert.equal(email.name, 'email');
assert.equal(email.type, 'text');
assert.equal(email.notNull, true);
assert.equal(email.unique, true);
assert.equal(email.anythingYouWant, 'awesome');
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc