UNPKG

rx-elasticsearch

Version:

RxJS Observables for the Elasticsearch client

45 lines 1.66 kB
"use strict"; 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