Skip to content

Commit 4af6ce8

Browse files
authored
Merge pull request #1 from jhenriquez/master
Avoids mutating the provided query object.
2 parents 91b9f49 + 40d5172 commit 4af6ce8

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

src/__tests__/index.js

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,24 @@ describe('mongoose-cursor-pagination', () => {
132132
}
133133
)
134134
.then(results => {
135-
should.equal(results.items.length, 5);
136-
should.equal(results.hasMore, true);
137-
should.equal(results.items[0].value, 994);
138-
should.equal(results.items[4].value, 990);
139-
}));
135+
should.equal(results.items.length, 5)
136+
should.equal(results.hasMore, true)
137+
should.equal(results.items[0].value, 994)
138+
should.equal(results.items[4].value, 990)
139+
})
140+
})
141+
142+
it('does not modify the provided query object', function () {
143+
const query = {};
144+
145+
return mongoose.model('User').paginate(query, {
146+
key: 'value',
147+
sort: { value: -1 },
148+
endingBefore: 995,
149+
})
150+
.then(() => {
151+
query.should.eql({})
152+
})
153+
})
140154
});
155+

src/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default function paginationPlugin(schema, pluginOptions) {
1212
};
1313

1414
schema.statics.paginate = function(query, options, callback) {
15-
query = query || {};
15+
query = query ? { ...query } : {};
1616
options = options || {};
1717
options.limit = +options.limit || defaultOptions.limit;
1818
options = { ...defaultOptions, ...options };

0 commit comments

Comments
 (0)