diff --git a/src/controllers/document.js b/src/controllers/document.js index 451fae5c9..5927c846b 100644 --- a/src/controllers/document.js +++ b/src/controllers/document.js @@ -194,7 +194,10 @@ class DocumentController extends BaseController { delete options[opt]; } - request.size = request.size || 10; + if (request.size === undefined) { + request.size = 10; + } + if (!request.scroll && !request.body.sort && !request.from) { request.from = 0; } diff --git a/test/controllers/document.test.js b/test/controllers/document.test.js index 58c3a8abe..e25e619ff 100644 --- a/test/controllers/document.test.js +++ b/test/controllers/document.test.js @@ -449,6 +449,23 @@ describe('Document Controller', () => { }); }); + it('should allow to set value of 0 for size', () => { + const result = { + hits: [], + total: 0 + }; + kuzzle.document.query = sinon.stub().resolves({result}); + + return kuzzle.document.search('index', 'collection', {}, { size: 0 }) + .then(() => { + should(kuzzle.document.query).be.calledOnce(); + + const request = kuzzle.document.query.getCall(0).args[0]; + should(request.from).be.eql(0); + should(request.size).be.eql(0); + }); + }); + it('should not set default value for from if scroll or sort are specified', () => { const result = { hits: [],