Skip to content

Commit

Permalink
3Fixed #85
Browse files Browse the repository at this point in the history
  • Loading branch information
aravindnc committed May 17, 2021
1 parent d08cc3b commit dec0991
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 9 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## v1.3.18

[2021-05-17]

- Fixed issue #85

## v1.3.17

[2021-03-26]
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mongoose-paginate-v2",
"version": "1.3.17",
"version": "1.3.18",
"description": "A cursor based custom pagination library for Mongoose with customizable labels.",
"main": "dist/index.js",
"scripts": {
Expand Down
17 changes: 12 additions & 5 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,11 @@ function paginate(query, options, callback) {
...options.customLabels,
};

const limit =
parseInt(options.limit, 10) > 0 ? parseInt(options.limit, 10) : 0;
let limit = defaultOptions.limit;

if (pagination) {
limit = parseInt(options.limit, 10) > 0 ? parseInt(options.limit, 10) : 0;
}

const isCallbackSpecified = typeof callback === 'function';
const findOptions = options.options;
Expand Down Expand Up @@ -113,6 +116,10 @@ function paginate(query, options, callback) {
skip = offset;
}

if (!pagination) {
page = 1;
}

let countPromise;

if (forceCountFn === true) {
Expand Down Expand Up @@ -232,9 +239,9 @@ function paginate(query, options, callback) {

if (limit == 0) {
meta[labelLimit] = 0;
meta[labelTotalPages] = null;
meta[labelPage] = null;
meta[labelPagingCounter] = null;
meta[labelTotalPages] = 1;
meta[labelPage] = 1;
meta[labelPagingCounter] = 1;
meta[labelPrevPage] = null;
meta[labelNextPage] = null;
meta[labelHasPrevPage] = false;
Expand Down
33 changes: 30 additions & 3 deletions tests/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -280,13 +280,13 @@ describe('mongoose-paginate', function () {
expect(result.docs).to.have.length(0);
expect(result.totalDocs).to.equal(12);
expect(result.limit).to.equal(0);
expect(result.page).to.equal(null);
expect(result.pagingCounter).to.equal(null);
expect(result.page).to.equal(1);
expect(result.pagingCounter).to.equal(1);
expect(result.hasPrevPage).to.equal(false);
expect(result.hasNextPage).to.equal(false);
expect(result.prevPage).to.equal(null);
expect(result.nextPage).to.equal(null);
expect(result.totalPages).to.equal(null);
expect(result.totalPages).to.equal(1);
});
});

Expand Down Expand Up @@ -539,6 +539,33 @@ describe('mongoose-paginate', function () {
);
});

it('pagination=false, limit/page=undefined -> return all docs', function () {
var query = {
title: {
$in: [/Book/i],
},
};

var options = {
pagination: false,
page: undefined,
limit: undefined,
};

return Book.paginate(query, options).then((result) => {
expect(result.docs).to.have.length(100);
expect(result.totalDocs).to.equal(100);
expect(result.limit).to.equal(100);
expect(result.page).to.equal(1);
expect(result.pagingCounter).to.equal(1);
expect(result.hasPrevPage).to.equal(false);
expect(result.hasNextPage).to.equal(false);
expect(result.prevPage).to.equal(null);
expect(result.nextPage).to.equal(null);
expect(result.totalPages).to.equal(1);
});
});

after(function (done) {
mongoose.connection.db.dropDatabase(done);
});
Expand Down

0 comments on commit dec0991

Please sign in to comment.