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
Bucknell, Mary S.
committed
import {drawTimeSeriesLegend} from './legend';
Bucknell, Mary S.
committed
import
Bucknell, Mary S.
committed
describe('monitoring-location/components/hydrograph/legend module', () => {
Bucknell, Mary S.
committed
utils.mediaQuery = jest.fn().mockReturnValue(true);
Bucknell, Mary S.
committed
const TEST_STATE = {
hydrographData: {
primaryIVData: TE
Bucknell, Mary S.
committed
}
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
});