mirror of
https://github.com/apache/superset.git
synced 2026-04-09 11:25:23 +00:00
* [lint] turn no-undef back on, set browser, cypress, and mocha env's, and fix issues * [lint] fix undefined var in TimeTable.jsx
89 lines
2.7 KiB
JavaScript
89 lines
2.7 KiB
JavaScript
import React from 'react';
|
|
import { shallow } from 'enzyme';
|
|
import { expect } from 'chai';
|
|
import sinon from 'sinon';
|
|
|
|
import Chart from '../../../../../src/dashboard/components/gridComponents/Chart';
|
|
import SliceHeader from '../../../../../src/dashboard/components/SliceHeader';
|
|
import ChartContainer from '../../../../../src/chart/ChartContainer';
|
|
|
|
import mockDatasource from '../../../../fixtures/mockDatasource';
|
|
import {
|
|
sliceEntitiesForChart as sliceEntities,
|
|
sliceId,
|
|
} from '../../fixtures/mockSliceEntities';
|
|
import chartQueries, {
|
|
sliceId as queryId,
|
|
} from '../../fixtures/mockChartQueries';
|
|
|
|
describe('Chart', () => {
|
|
const props = {
|
|
id: sliceId,
|
|
width: 100,
|
|
height: 100,
|
|
updateSliceName() {},
|
|
|
|
// from redux
|
|
chart: chartQueries[queryId],
|
|
formData: chartQueries[queryId].formData,
|
|
datasource: mockDatasource[sliceEntities.slices[sliceId].datasource],
|
|
slice: {
|
|
...sliceEntities.slices[sliceId],
|
|
description_markeddown: 'markdown',
|
|
},
|
|
sliceName: sliceEntities.slices[sliceId].slice_name,
|
|
timeout: 60,
|
|
filters: {},
|
|
refreshChart() {},
|
|
toggleExpandSlice() {},
|
|
addFilter() {},
|
|
editMode: false,
|
|
isExpanded: false,
|
|
supersetCanExplore: false,
|
|
sliceCanEdit: false,
|
|
};
|
|
|
|
function setup(overrideProps) {
|
|
const wrapper = shallow(<Chart {...props} {...overrideProps} />);
|
|
return wrapper;
|
|
}
|
|
|
|
it('should render a SliceHeader', () => {
|
|
const wrapper = setup();
|
|
expect(wrapper.find(SliceHeader)).to.have.length(1);
|
|
});
|
|
|
|
it('should render a ChartContainer', () => {
|
|
const wrapper = setup();
|
|
expect(wrapper.find(ChartContainer)).to.have.length(1);
|
|
});
|
|
|
|
it('should render a description if it has one and isExpanded=true', () => {
|
|
const wrapper = setup();
|
|
expect(wrapper.find('.slice_description')).to.have.length(0);
|
|
|
|
wrapper.setProps({ ...props, isExpanded: true });
|
|
expect(wrapper.find('.slice_description')).to.have.length(1);
|
|
});
|
|
|
|
it('should call refreshChart when SliceHeader calls forceRefresh', () => {
|
|
const refreshChart = sinon.spy();
|
|
const wrapper = setup({ refreshChart });
|
|
wrapper.instance().forceRefresh();
|
|
expect(refreshChart.callCount).to.equal(1);
|
|
});
|
|
|
|
it('should call addFilter when ChartContainer calls addFilter', () => {
|
|
const addFilter = sinon.spy();
|
|
const wrapper = setup({ addFilter });
|
|
wrapper.instance().addFilter();
|
|
expect(addFilter.callCount).to.equal(1);
|
|
});
|
|
|
|
it('should return props.filters when its getFilters method is called', () => {
|
|
const filters = { column: ['value'] };
|
|
const wrapper = setup({ filters });
|
|
expect(wrapper.instance().getFilters()).to.equal(filters);
|
|
});
|
|
});
|