downstairs
Advanced tools
Comparing version 0.1.9 to 0.2.0
@@ -94,2 +94,14 @@ var Table = {} | ||
var cleanData = function(sql, data){ | ||
var objectKeys = _.keys(data); | ||
var differences = _.difference(objectKeys, sql._initialConfig.columns); | ||
differences.forEach(function(diff){ | ||
delete data[diff]; | ||
}) | ||
return data; | ||
} | ||
Table.update = function(data, conditions, cb){ | ||
@@ -121,2 +133,4 @@ if (typeof data === 'function'){ | ||
data = cleanData(this.sql, data); | ||
var sqlStr; | ||
@@ -158,2 +172,4 @@ var sqlBaseQuery = this.sql.update(data); | ||
data = cleanData(this.sql, data); | ||
var sqlStr; | ||
@@ -160,0 +176,0 @@ var sqlBaseQuery = this.sql.insert(data); |
{ | ||
"name": "downstairs", | ||
"description": "A light ORM wrapped about brianc's node-sql and node-pg", | ||
"version": "0.1.9", | ||
"version": "0.2.0", | ||
"homepage": "https://github.com/moneytribeaustralia/downstairs.js", | ||
@@ -6,0 +6,0 @@ "author": { |
@@ -149,2 +149,34 @@ var Downstairs = require('../lib/downstairs') | ||
}) | ||
it('tolerates creation with object properties that do not map to the table', function(done){ | ||
var User = Table.model('User', userSQL); | ||
var data = {password: '5f4dcc3b5aa765d61d8327deb882cf99' | ||
, username: 'fred' | ||
, email: 'fred@moneytribe.com.au' | ||
, nonsenseField: 'BOO'}; | ||
User.create(data, function(err, user){ | ||
should.not.exist(err); | ||
should.exist(user); | ||
user.username.should.equal('fred'); | ||
should.not.exist(user.nonsenseField); | ||
done(); | ||
}); | ||
}); | ||
it('tolerates update with object properties that do not map to the table', function(done){ | ||
var User = Table.model('User', userSQL); | ||
var data = {password: '5f4dcc3b5aa765d61d8327deb882cf99' | ||
, username: 'fred' | ||
, email: 'fred@moneytribe.com.au' | ||
, nonsenseField: 'BOO'}; | ||
User.create(data, function(err, user){ | ||
User.update(data, {id: user.id}, function(err, result){ | ||
result.should.be.ok | ||
done(); | ||
}) | ||
}); | ||
}); | ||
}); |
45702
1038