Skip to content

Commit 94ce124

Browse files
committed
* [bug] the order of the search condition object would be changed to escaped order field name.
1 parent cb8a310 commit 94ce124

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

lib/sqlite3db.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -903,19 +903,19 @@ SQLiteDB.prototype.toFilter = function (model, filter) {
903903

904904
var pagination = getPagination(filter);
905905

906-
if (filter.order) {
907-
var order = filter.order;
906+
var order = filter.order;
907+
if (order) {
908908
if (typeof order === 'string') {
909909
order = [order];
910910
}
911911
var orderBy = '';
912-
filter.order = [];
912+
var escapedOrder = [];
913913
for (var i = 0, n = order.length; i < n; i++) {
914914
var t = order[i].split(/[\s]+/);
915915
var field = t[0], dir = t[1];
916-
filter.order.push(self.columnEscaped(model, field) + (dir ? ' ' + dir : ''));
916+
escapedOrder.push(self.columnEscaped(model, field) + (dir ? ' ' + dir : ''));
917917
}
918-
orderBy = ' ORDER BY ' + filter.order.join(',');
918+
orderBy = ' ORDER BY ' + escapedOrder.join(',');
919919
if (pagination.length) {
920920
out = out + ' ' + orderBy + ' ' + pagination.join(' ');
921921
} else {

test/user_model.test.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,21 +53,22 @@ describe("SQLite Model creation test", function(){
5353
});
5454
}
5555

56+
var searchCond = {'order': 'id'};
5657
function testArrayContents(cb) {
5758
var namesSomething = [{name: 'John', some: 'object'}, {name: 'Doe', some: 'other object'}];
5859
var names = [];
5960
namesSomething.forEach(function(n) {
6061
names.push(n.name);
6162
});
62-
63-
User.find({
64-
where: {
65-
name: {inq: names}
66-
}
67-
}, function(err, foundUsers) {
63+
searchCond.where = {name: {inq: names}};
64+
console.log('find:')
65+
User.find(searchCond, function(err, foundUsers) {
6866
expect(names[0]).to.be.equal('John');
6967
expect(names[1]).to.be.equal('Doe');
70-
cb();
68+
User.find(searchCond, function(err, foundUsers) {
69+
expect(searchCond.order).to.be.equal('id');
70+
cb();
71+
});
7172
});
7273
}
7374
});

0 commit comments

Comments
 (0)