rx-elasticsearch
Version:
RxJS Observables for the Elasticsearch client
45 lines • 1.66 kB
JavaScript
;
require('expectations');
var sinon = require('sinon');
var elasticsearch = require('elasticsearch');
var Scroll_1 = require('../src/Scroll');
describe('The scrolling function tested with a spy Elasticsearch client', function () {
var client = new elasticsearch.Client({});
var responses = [{
_scroll_id: 1000,
hits: { hits: [{}, {}, {}, {}, {}] }
}, {
_scroll_id: 1001,
hits: { hits: [{}, {}, {}, {}, {}] }
}, {
_scroll_id: 1002,
hits: { hits: [] }
}];
beforeEach(function () {
sinon
.stub(client, 'search', null)
.returns(Promise.resolve(responses[0]));
sinon
.stub(client, 'scroll', null)
.onFirstCall().returns(Promise.resolve(responses[1]))
.onSecondCall().returns(Promise.resolve(responses[2]))
.onThirdCall().returns(Promise.resolve(null));
sinon
.stub(client, 'clearScroll', null)
.returns(Promise.resolve());
});
it('check if scrollable returns correct results', function () {
return Scroll_1.Scroll.scroll({}, client)
.do(function (res) {
expect(res).toEqual(responses[0]);
responses.shift();
})
.toPromise()
.then(function () {
expect(client.search.calledOnce).toBe(true);
expect(client.scroll.calledTwice).toBe(true);
expect(client.clearScroll.calledOnce).toBe(true);
});
});
});
//# sourceMappingURL=/Users/ralph/IdeaProjects/enhanced-elasticsearch/test/Scroll.spec.js.map