mirror of
https://github.com/Unleash/unleash.git
synced 2025-09-10 17:53:36 +02:00
65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
import configureStore from 'redux-mock-store';
|
|
import { List } from 'immutable';
|
|
import thunkMiddleware from 'redux-thunk';
|
|
import fetchMock from 'fetch-mock';
|
|
import MetricsPoller from '../metrics-poller';
|
|
|
|
const mockStore = configureStore([thunkMiddleware]);
|
|
|
|
describe('metrics-poller.js', () => {
|
|
afterEach(() => {
|
|
fetchMock.reset();
|
|
fetchMock.restore();
|
|
});
|
|
|
|
test('Should not start poller before toggles are recieved', () => {
|
|
const initialState = { features: List.of([{ name: 'test1' }]) };
|
|
const store = mockStore(initialState);
|
|
fetchMock.getOnce('api/admin/metrics/feature-toggles', {
|
|
body: { lastHour: {}, lastMinute: {} },
|
|
headers: { 'content-type': 'application/json' },
|
|
});
|
|
|
|
const metricsPoller = new MetricsPoller(store);
|
|
metricsPoller.start();
|
|
|
|
expect(metricsPoller.timer).toBeUndefined();
|
|
});
|
|
|
|
test('Should not start poller when state does not contain toggles', () => {
|
|
const initialState = { features: new List([]) };
|
|
const store = mockStore(initialState);
|
|
|
|
const metricsPoller = new MetricsPoller(store);
|
|
metricsPoller.start();
|
|
|
|
store.dispatch({
|
|
type: 'some',
|
|
receivedAt: Date.now(),
|
|
});
|
|
|
|
expect(metricsPoller.timer).toBeUndefined();
|
|
});
|
|
|
|
test('Should start poller when state gets toggles', () => {
|
|
fetchMock.getOnce('api/admin/metrics/feature-toggles', {
|
|
body: { lastHour: {}, lastMinute: {} },
|
|
headers: { 'content-type': 'application/json' },
|
|
});
|
|
|
|
const initialState = { features: List.of([{ name: 'test1' }]) };
|
|
const store = mockStore(initialState);
|
|
|
|
const metricsPoller = new MetricsPoller(store);
|
|
metricsPoller.start();
|
|
|
|
store.dispatch({
|
|
type: 'RECEIVE_FEATURE_TOGGLES',
|
|
featureToggles: [{ name: 'test' }],
|
|
receivedAt: Date.now(),
|
|
});
|
|
|
|
expect(metricsPoller.timer).toBeDefined();
|
|
});
|
|
});
|