waterline-sql-builder
Version:
Generate SQL (stage 5 query) from a Waterline statement (stage 4 query).
64 lines (57 loc) • 1.74 kB
JavaScript
var Sequelizer = require('../../../index')({ dialect: 'postgres' }).sequelizer;
var analyze = require('../../support/analyze');
var assert = require('assert');
describe('Sequelizer ::', function() {
describe('UPDATE statements', function() {
it('should generate a simple query with an UPDATE statement', function() {
var tree = analyze({
update: {
status: 'archived'
},
where: {
and: [
{
publishedDate: { '>': 2000 }
}
]
},
using: 'books'
});
var result = Sequelizer(tree);
assert.equal(result.sql, 'update "books" set "status" = $1 where "publishedDate" > $2');
assert.deepEqual(result.bindings, ['archived', 2000]);
});
it('should generate a query with multiple values being inserted', function() {
var tree = analyze({
update: {
status: 'archived',
active: false
},
where: {
and: [
{
publishedDate: {
'>': 2000
}
}
]
},
using: 'books'
});
var result = Sequelizer(tree);
assert.equal(result.sql, 'update "books" set "status" = $1, "active" = $2 where "publishedDate" > $3');
assert.deepEqual(result.bindings, ['archived', false, 2000]);
});
it('should generate a query with a NULL value for input', function() {
var tree = analyze({
update: {
status: null
},
using: 'books'
});
var result = Sequelizer(tree);
assert.equal(result.sql, 'update "books" set "status" = $1');
assert.deepEqual(result.bindings, [null]);
});
});
});