Newer
Older
import {select, selectAll} from 'd3-selection';
Bucknell, Mary S.
committed
import sinon from 'sinon';
Bucknell, Mary S.
committed
import * as utils from 'ui/utils';
Bucknell, Mary S.
committed
import {configureStore} from 'ml/store';
import {Actions} from 'ml/store/instantaneous-value-time-series-state';
Bucknell, Mary S.
committed
import {drawTimeSeriesLegend} from './legend';
Bucknell, Mary S.
committed
describe('monitoring-location/components/hydrograph/legend module', () => {
Bucknell, Mary S.
committed
utils.mediaQuery = jest.fn().mockReturnValue(true);
timeSeries: {
'00060:current': {
tsKey: 'current:P7D',
variable: '45807197',
points: [{
value: 10,
qualifiers: ['P'],
approved: false,
estimated: false
}, {
value: null,
qualifiers: ['P', 'ICE'],
approved: false,
estimated: false
}, {
value: null,
qualifiers: ['P', 'FLD'],
approved: false,
estimated: false
}]
}
},
variables: {
'45807197': {
variableCode: {value: '00060'},
oid: '45807197'
}
}
},
statisticsData: {
median: {
'00060': {
ivTimeSeriesState: {
currentIVVariableID: '45807197',
Briggs, Aaron Shane
committed
currentIVDateRange: 'P7D',
current: true,
median: true
}
}
};
describe('legends should render', () => {
let graphNode;
Bucknell, Mary S.
committed
let store;
Bucknell, Mary S.
committed
let fakeServer;
beforeEach(() => {
let body = select('body');
let component = body.append('div')
.attr('id', 'hydrograph');
component.append('div').attr('class', 'loading-indicator-container');
component.append('div').attr('class', 'graph-container');
component.append('div').attr('class', 'select-time-series-container');
graphNode = document.getElementById('hydrograph');
Bucknell, Mary S.
committed
store = configureStore(TEST_DATA);
select(graphNode)
Bucknell, Mary S.
committed
.call(drawTimeSeriesLegend, store);
Bucknell, Mary S.
committed
Bucknell, Mary S.
committed
fakeServer = sinon.createFakeServer();
Bucknell, Mary S.
committed
fakeServer.restore();
select('#hydrograph').remove();
});
it('Should have 6 legend markers', () => {
expect(selectAll('.legend g').size()).toBe(6);
expect(selectAll('.legend g line.median-step').size()).toBe(1);
});
it('Should have 4 legend marker after the median time series are removed', () => {
store.dispatch(Actions.setIVTimeSeriesVisibility('median', false));
return new Promise(resolve => {
window.requestAnimationFrame(() => {
expect(selectAll('.legend g').size()).toBe(4);
resolve();
});
Bucknell, Mary S.
committed
});