mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
Remove the unnecessary use of "private" for some modules. (#13739)
* Remove the unnecessary use of "private" for these modules. * Fix tests that use inject to refresh the provider initialization call. * Add a function to easily clear the request queue and add it to all the fetch tests. * clear the request queue on after as well, so the tests clean up after themselves
This commit is contained in:
parent
a03f3c5fef
commit
8024a07672
13 changed files with 68 additions and 81 deletions
|
@ -2,21 +2,21 @@ import ngMock from 'ng_mock';
|
|||
import expect from 'expect.js';
|
||||
import sinon from 'sinon';
|
||||
|
||||
import { RequestQueueProvider } from '../_request_queue';
|
||||
import { requestQueue } from '../_request_queue';
|
||||
import { SearchStrategyProvider } from '../fetch/strategy/search';
|
||||
import { DocDataStrategyProvider } from '../fetch/strategy/doc_data';
|
||||
|
||||
describe('Courier Request Queue', function () {
|
||||
let docStrategy;
|
||||
let requestQueue;
|
||||
let searchStrategy;
|
||||
|
||||
beforeEach(ngMock.module('kibana'));
|
||||
beforeEach(ngMock.inject(function (Private) {
|
||||
docStrategy = Private(DocDataStrategyProvider);
|
||||
requestQueue = Private(RequestQueueProvider);
|
||||
searchStrategy = Private(SearchStrategyProvider);
|
||||
}));
|
||||
beforeEach(requestQueue.clear);
|
||||
after(requestQueue.clear);
|
||||
|
||||
class MockReq {
|
||||
constructor(strategy, startable = true) {
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
export function ErrorHandlersProvider() {
|
||||
/**
|
||||
* Queue of pending error handlers, they are removed as
|
||||
* they are resolved.
|
||||
* @type {Array}
|
||||
*/
|
||||
return [];
|
||||
}
|
||||
/**
|
||||
* Queue of pending error handlers, they are removed as
|
||||
* they are resolved.
|
||||
* @type {Array}
|
||||
*/
|
||||
export const errorHandlersQueue = [];
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
export function RequestQueueProvider() {
|
||||
|
||||
/**
|
||||
* Queue of pending requests, requests are removed as
|
||||
* they are processed by fetch.[sourceType]().
|
||||
* @type {Array}
|
||||
*/
|
||||
const queue = [];
|
||||
/**
|
||||
* Queue of pending requests, requests are removed as
|
||||
* they are processed by fetch.[sourceType]().
|
||||
* @type {Array}
|
||||
*/
|
||||
export const requestQueue = [];
|
||||
|
||||
queue.getInactive = function (/* strategies */) {
|
||||
return queue.get.apply(queue, arguments)
|
||||
requestQueue.clear = function () {
|
||||
requestQueue.splice(0, requestQueue.length);
|
||||
};
|
||||
|
||||
requestQueue.getInactive = function (/* strategies */) {
|
||||
return requestQueue.get.apply(requestQueue, arguments)
|
||||
.filter(function (req) {
|
||||
return !req.started;
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
queue.getStartable = function (...strategies) {
|
||||
return queue.get(...strategies).filter(req => req.canStart());
|
||||
};
|
||||
requestQueue.getStartable = function (...strategies) {
|
||||
return requestQueue.get(...strategies).filter(req => req.canStart());
|
||||
};
|
||||
|
||||
queue.get = function (...strategies) {
|
||||
return queue.filter(function (req) {
|
||||
let strategyMatch = !strategies.length;
|
||||
if (!strategyMatch) {
|
||||
strategyMatch = strategies.some(function (strategy) {
|
||||
return req.strategy === strategy;
|
||||
});
|
||||
}
|
||||
requestQueue.get = function (...strategies) {
|
||||
return requestQueue.filter(function (req) {
|
||||
let strategyMatch = !strategies.length;
|
||||
if (!strategyMatch) {
|
||||
strategyMatch = strategies.some(function (strategy) {
|
||||
return req.strategy === strategy;
|
||||
});
|
||||
}
|
||||
|
||||
return strategyMatch;
|
||||
});
|
||||
};
|
||||
return strategyMatch;
|
||||
});
|
||||
};
|
||||
|
||||
return queue;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import { Notifier } from 'ui/notify/notifier';
|
|||
import { DocSourceProvider } from './data_source/doc_source';
|
||||
import { SearchSourceProvider } from './data_source/search_source';
|
||||
import { SearchStrategyProvider } from './fetch/strategy/search';
|
||||
import { RequestQueueProvider } from './_request_queue';
|
||||
import { requestQueue } from './_request_queue';
|
||||
import { FetchProvider } from './fetch';
|
||||
import { DocDataLooperProvider } from './looper/doc_data';
|
||||
import { SearchLooperProvider } from './looper/search';
|
||||
|
@ -27,8 +27,6 @@ uiModules.get('kibana/courier')
|
|||
const SearchSource = Private(SearchSourceProvider);
|
||||
const searchStrategy = Private(SearchStrategyProvider);
|
||||
|
||||
const requestQueue = Private(RequestQueueProvider);
|
||||
|
||||
const fetch = Private(FetchProvider);
|
||||
const docDataLooper = self.docLooper = Private(DocDataLooperProvider);
|
||||
const searchLooper = self.searchLooper = Private(SearchLooperProvider);
|
||||
|
|
|
@ -2,20 +2,20 @@ import ngMock from 'ng_mock';
|
|||
import expect from 'expect.js';
|
||||
import sinon from 'sinon';
|
||||
|
||||
import { RequestQueueProvider } from '../../_request_queue';
|
||||
import { requestQueue } from '../../_request_queue';
|
||||
import { DocSourceProvider } from '../doc_source';
|
||||
|
||||
describe('DocSource', function () {
|
||||
require('test_utils/no_digest_promises').activateForSuite();
|
||||
|
||||
let requestQueue;
|
||||
let DocSource;
|
||||
|
||||
beforeEach(ngMock.module('kibana'));
|
||||
beforeEach(ngMock.inject(function (Private) {
|
||||
requestQueue = Private(RequestQueueProvider);
|
||||
DocSource = Private(DocSourceProvider);
|
||||
}));
|
||||
beforeEach(requestQueue.clear);
|
||||
after(requestQueue.clear);
|
||||
|
||||
describe('#onUpdate()', function () {
|
||||
it('adds a request to the requestQueue', function () {
|
||||
|
|
|
@ -2,21 +2,19 @@ import ngMock from 'ng_mock';
|
|||
import expect from 'expect.js';
|
||||
import sinon from 'sinon';
|
||||
|
||||
import { RequestQueueProvider } from '../../_request_queue';
|
||||
import { requestQueue } from '../../_request_queue';
|
||||
import { SearchSourceProvider } from '../search_source';
|
||||
import StubIndexPatternProv from 'test_utils/stub_index_pattern';
|
||||
|
||||
describe('SearchSource', function () {
|
||||
require('test_utils/no_digest_promises').activateForSuite();
|
||||
|
||||
let requestQueue;
|
||||
let SearchSource;
|
||||
let indexPattern;
|
||||
let indexPattern2;
|
||||
|
||||
beforeEach(ngMock.module('kibana'));
|
||||
beforeEach(ngMock.inject(function (Private) {
|
||||
requestQueue = Private(RequestQueueProvider);
|
||||
SearchSource = Private(SearchSourceProvider);
|
||||
|
||||
const IndexPattern = Private(StubIndexPatternProv);
|
||||
|
@ -24,6 +22,8 @@ describe('SearchSource', function () {
|
|||
indexPattern2 = new IndexPattern('test2-*', null, []);
|
||||
expect(indexPattern).to.not.be(indexPattern2);
|
||||
}));
|
||||
beforeEach(requestQueue.clear);
|
||||
after(requestQueue.clear);
|
||||
|
||||
describe('#onResults()', function () {
|
||||
it('adds a request to the requestQueue', function () {
|
||||
|
|
|
@ -3,16 +3,14 @@ import angular from 'angular';
|
|||
|
||||
import 'ui/promises';
|
||||
|
||||
import { RequestQueueProvider } from '../_request_queue';
|
||||
import { ErrorHandlersProvider } from '../_error_handlers';
|
||||
import { requestQueue } from '../_request_queue';
|
||||
import { errorHandlersQueue } from '../_error_handlers';
|
||||
import { FetchProvider } from '../fetch';
|
||||
import { FieldWildcardProvider } from '../../field_wildcard';
|
||||
import { getHighlightRequest } from '../../../../core_plugins/kibana/common/highlight';
|
||||
import { BuildESQueryProvider } from './build_query';
|
||||
|
||||
export function AbstractDataSourceProvider(Private, Promise, PromiseEmitter, config) {
|
||||
const requestQueue = Private(RequestQueueProvider);
|
||||
const errorHandlers = Private(ErrorHandlersProvider);
|
||||
const courierFetch = Private(FetchProvider);
|
||||
const buildESQuery = Private(BuildESQueryProvider);
|
||||
const { fieldWildcardFilter } = Private(FieldWildcardProvider);
|
||||
|
@ -160,7 +158,7 @@ export function AbstractDataSourceProvider(Private, Promise, PromiseEmitter, con
|
|||
const defer = Promise.defer();
|
||||
defer.promise.then(resolve, reject);
|
||||
|
||||
errorHandlers.push({
|
||||
errorHandlersQueue.push({
|
||||
source: self,
|
||||
defer: defer
|
||||
});
|
||||
|
|
|
@ -8,11 +8,10 @@
|
|||
import _ from 'lodash';
|
||||
|
||||
import { VersionConflict, RequestFailure } from 'ui/errors';
|
||||
import { RequestQueueProvider } from 'ui/courier/_request_queue';
|
||||
import { requestQueue } from 'ui/courier/_request_queue';
|
||||
import { FetchProvider } from 'ui/courier/fetch/fetch';
|
||||
|
||||
export function DocSendToEsProvider(Promise, Private, es) {
|
||||
const requestQueue = Private(RequestQueueProvider);
|
||||
const courierFetch = Private(FetchProvider);
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,6 +5,7 @@ import sinon from 'sinon';
|
|||
import IndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern';
|
||||
import searchResp from 'fixtures/search_response';
|
||||
|
||||
import { requestQueue } from '../../_request_queue';
|
||||
import { FetchProvider } from '../fetch';
|
||||
import { DocSourceProvider } from '../../data_source/doc_source';
|
||||
import { SearchSourceProvider } from '../../data_source/search_source';
|
||||
|
@ -28,6 +29,8 @@ describe('Fetch service', function () {
|
|||
DocSource = Private(DocSourceProvider);
|
||||
SearchSource = Private(SearchSourceProvider);
|
||||
}));
|
||||
beforeEach(requestQueue.clear);
|
||||
after(requestQueue.clear);
|
||||
|
||||
describe('#doc(docSource)', function () {
|
||||
it('fetches a single doc source', function () {
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
import _ from 'lodash';
|
||||
|
||||
import { RequestQueueProvider } from '../_request_queue';
|
||||
import { requestQueue } from '../_request_queue';
|
||||
import { FetchTheseProvider } from './fetch_these';
|
||||
import { CallResponseHandlersProvider } from './call_response_handlers';
|
||||
import { ReqStatusProvider } from './req_status';
|
||||
|
||||
export function FetchProvider(Private, Promise) {
|
||||
|
||||
const requestQueue = Private(RequestQueueProvider);
|
||||
const immediatelyFetchThese = Private(FetchTheseProvider);
|
||||
const callResponseHandlers = Private(CallResponseHandlersProvider);
|
||||
const INCOMPLETE = Private(ReqStatusProvider).INCOMPLETE;
|
||||
|
|
|
@ -1,29 +1,23 @@
|
|||
import { Notifier } from 'ui/notify/notifier';
|
||||
|
||||
import { ErrorHandlersProvider } from '../../_error_handlers';
|
||||
import { errorHandlersQueue } from '../../_error_handlers';
|
||||
|
||||
export function ErrorHandlerRequestProvider(Private) {
|
||||
const errHandlers = Private(ErrorHandlersProvider);
|
||||
const notify = new Notifier({
|
||||
location: 'Courier Fetch Error'
|
||||
});
|
||||
|
||||
const notify = new Notifier({
|
||||
location: 'Courier Fetch Error'
|
||||
export function requestErrorHandler(req, error) {
|
||||
const myHandlers = [];
|
||||
|
||||
errorHandlersQueue.splice(0).forEach(function (handler) {
|
||||
(handler.source === req.source ? myHandlers : errorHandlersQueue).push(handler);
|
||||
});
|
||||
|
||||
function handleError(req, error) {
|
||||
const myHandlers = [];
|
||||
|
||||
errHandlers.splice(0).forEach(function (handler) {
|
||||
(handler.source === req.source ? myHandlers : errHandlers).push(handler);
|
||||
if (!myHandlers.length) {
|
||||
notify.fatal(new Error(`unhandled courier request error: ${ notify.describeError(error) }`));
|
||||
} else {
|
||||
myHandlers.forEach(function (handler) {
|
||||
handler.defer.resolve(error);
|
||||
});
|
||||
|
||||
if (!myHandlers.length) {
|
||||
notify.fatal(new Error(`unhandled courier request error: ${ notify.describeError(error) }`));
|
||||
} else {
|
||||
myHandlers.forEach(function (handler) {
|
||||
handler.defer.resolve(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return handleError;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
import _ from 'lodash';
|
||||
import moment from 'moment';
|
||||
|
||||
import { RequestQueueProvider } from '../../_request_queue';
|
||||
import { ErrorHandlerRequestProvider } from './error_handler';
|
||||
import { requestQueue } from '../../_request_queue';
|
||||
import { requestErrorHandler } from './error_handler';
|
||||
|
||||
export function AbstractRequestProvider(Private, Promise) {
|
||||
const requestQueue = Private(RequestQueueProvider);
|
||||
const requestErrorHandler = Private(ErrorHandlerRequestProvider);
|
||||
|
||||
return class AbstractReq {
|
||||
constructor(source, defer) {
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
import { FetchProvider } from '../fetch';
|
||||
import { SearchStrategyProvider } from '../fetch/strategy/search';
|
||||
import { RequestQueueProvider } from '../_request_queue';
|
||||
import { requestQueue } from '../_request_queue';
|
||||
import { LooperProvider } from './_looper';
|
||||
|
||||
export function SearchLooperProvider(Private, Promise, Notifier, $rootScope) {
|
||||
const fetch = Private(FetchProvider);
|
||||
const searchStrategy = Private(SearchStrategyProvider);
|
||||
const requestQueue = Private(RequestQueueProvider);
|
||||
|
||||
const Looper = Private(LooperProvider);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue