Skip to content

Commit b73919d

Browse files
author
Lance Welsh
committed
Introduce starts_with query filter
1 parent bcef924 commit b73919d

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lib/query.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ module.exports = (function() {
1212
'ilike': function(a, b) { return a.toLowerCase().indexOf(b.toLowerCase()) > -1; },
1313
'like': function(a, b) { return a.indexOf(b) > -1; },
1414
'in': function(a, b) { return b.indexOf(a) > -1; },
15-
'not_in': function(a, b) { return b.indexOf(a) === -1; }
15+
'not_in': function(a, b) { return b.indexOf(a) === -1; },
16+
'starts_with': function(a, b) { return a.substr(0, b.length) === b; }
1617
};
1718

1819
class Query {

test/runner.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,17 @@ describe('Test Suite', function() {
394394

395395
});
396396

397+
it('should filter starts_with', function() {
398+
399+
expect(nc.query().filter({name__starts_with: 'Keith'}).units().length).to.equal(1);
400+
expect(nc.query().filter({name__starts_with: 'Keith'}).first()).to.equal(nc.find(1));
401+
402+
expect(nc.query().filter({name__starts_with: 'K'}).units().length).to.equal(2);
403+
expect(nc.query().filter({name__starts_with: 'K'}).first()).to.equal(nc.find(1));
404+
expect(nc.query().filter({name__starts_with: 'K'}).units()[1]).to.equal(nc.find(4));
405+
406+
});
407+
397408
it('should exclude as expected', function() {
398409

399410
expect(nc.query().exclude({name__is: 'Keith'}).first()).to.equal(nc.find(2));

0 commit comments

Comments
 (0)