diff --git a/lib/search/index-class.js b/lib/search/index-class.js index c05af9a2516..ac3ee15c902 100644 --- a/lib/search/index-class.js +++ b/lib/search/index-class.js @@ -366,7 +366,8 @@ Index.prototype.search = function(query, callback) { this.request({ uri: '/search', - qs: query + qs: query, + useQuerystring: true // See #986. }, function(err, resp) { if (err) { callback(err, null, null, resp); diff --git a/system-test/search.js b/system-test/search.js index 7a2035f113a..c32855364c9 100644 --- a/system-test/search.js +++ b/system-test/search.js @@ -219,10 +219,13 @@ describe('Search', function() { before(function(done) { var questions = document.addField('question'); + var answers = document.addField('answer'); questions.addTextValue('Where did Ryan go?'); questions.addTextValue('Where did Silvano go?'); + answers.addTextValue('Where DIDN\'T they go?'); + document.create(done); }); @@ -231,10 +234,18 @@ describe('Search', function() { }); it('should search document', function(done) { - index.search(query, function(err, results) { + var fields = ['question', 'answer']; + + index.search({ + query: query, + returnFields: fields, + }, function(err, results) { assert.ifError(err); - assert.equal(results.length, 1); - assert.equal(results[0].id, DOCUMENT_NAME); + assert.strictEqual(results.length, 1); + + var document = results[0]; + assert.strictEqual(document.id, DOCUMENT_NAME); + assert.strictEqual(Object.keys(document.fields).length, fields.length); done(); }); }); diff --git a/test/search/index-class.js b/test/search/index-class.js index aad0a7aa4d7..a2f0041921b 100644 --- a/test/search/index-class.js +++ b/test/search/index-class.js @@ -306,6 +306,15 @@ describe('Index', function() { index.search(query, assert.ifError); }); + it('should use default querystring module', function(done) { + index.request = function(reqOpts) { + assert.strictEqual(reqOpts.useQuerystring, true); + done(); + }; + + index.search('', assert.ifError); + }); + it('should execute callback with error & API response', function(done) { var apiResponse = { a: 'b', c: 'd' }; var error = new Error('Error.');