提交 b8c6add1 编写于 作者: P pissang

test: add missing component ut. fix some warnings

上级 ac49c2b2
......@@ -18,7 +18,9 @@
* under the License.
*/
import { isValueFinite } from './utHelper';
function isValueFinite(val: unknown): boolean {
return val != null && val !== '' && isFinite(val as number);
}
// Setup expectes
......
......@@ -46,6 +46,16 @@ export function createChart(params?: {
'bottom:0',
'right:0'
].join(';');
Object.defineProperty(el, 'clientWidth', {
get() {
return params.width || 500;
}
});
Object.defineProperty(el, 'clientHeight', {
get() {
return params.height || 400;
}
});
const chart = init(el, params.theme, params.opts);
return chart;
};
......@@ -80,10 +90,6 @@ export const curry = zrUtilCurry;
export const bind = zrUtilBind;
export function isValueFinite(val: unknown): boolean {
return val != null && val !== '' && isFinite(val as number);
}
// /**
// * @public
// * @param {Array.<string>} deps
......
export {};
declare global {
namespace jest {
interface Matchers<R> {
toBeFinite(): R
// Greater than or equal
toBeGeaterThanOrEqualTo(bound: number): R
// Greater than
toBeGreaterThan(bound: number): R
toBeEmptyArray(): R
}
}
}
\ No newline at end of file
import { init, use, EChartsType } from '../../../../src/export/core';
import {
PieChart
} from '../../../../src/export/charts';
import {
TitleComponent
} from '../../../../src/export/components';
import {
CanvasRenderer
} from '../../../../src/export/renderers';
use([PieChart, TitleComponent, CanvasRenderer]);
import { EChartsOption } from '../../../../src/export/option';
function createChart(): EChartsType {
const el = document.createElement('div');
Object.defineProperty(el, 'clientWidth', {
get() {
return 500;
}
});
Object.defineProperty(el, 'clientHeight', {
get() {
return 400;
}
});
const chart = init(el);
return chart;
};
function makeComponentError(componentName: string, componentImportName: string) {
return `[ECharts] Component ${componentName} is used but not imported.
import { ${componentImportName} } from 'echarts/components';
echarts.use([${componentImportName}]);`;
}
function makeSerieError(seriesName: string, seriesImportName: string) {
return `[ECharts] Series ${seriesName} is used but not imported.
import { ${seriesImportName} } from 'echarts/charts';
echarts.use([${seriesImportName}]);`;
}
describe('model_componentMissing', function () {
it('Should report grid component missing error', function () {
const chart = createChart();
const oldConsoleErr = console.error;
console.error = jest.fn();
chart.setOption<EChartsOption>({
xAxis: {},
yAxis: {},
series: []
});
expect(console.error).toHaveBeenCalledWith(
makeComponentError('xAxis', 'GridComponent')
);
console.error = oldConsoleErr;
});
it('Should report dataZoom component missing error', function () {
const chart = createChart();
const oldConsoleErr = console.error;
console.error = jest.fn();
chart.setOption<EChartsOption>({
dataZoom: {}
});
expect(console.error).toHaveBeenCalledWith(
makeComponentError('dataZoom', 'DataZoomComponent')
);
console.error = oldConsoleErr;
});
it('Should not report title component missing error', function () {
const chart = createChart();
const oldConsoleErr = console.error;
console.error = jest.fn();
chart.setOption<EChartsOption>({
title: {},
series: []
});
expect(console.error).not.toBeCalled();
console.error = oldConsoleErr;
});
it('Should report funnel series missing error', function () {
const chart = createChart();
const oldConsoleErr = console.error;
console.error = jest.fn();
chart.setOption<EChartsOption>({
series: [{
type: 'funnel'
}]
});
expect(console.error).toHaveBeenCalledWith(
makeSerieError('funnel', 'FunnelChart')
);
console.error = oldConsoleErr;
});
it('Should not report pie series missing error', function () {
const chart = createChart();
const oldConsoleErr = console.error;
console.error = jest.fn();
chart.setOption<EChartsOption>({
series: [{
type: 'pie'
}]
});
expect(console.error).not.toBeCalled();
console.error = oldConsoleErr;
});
});
\ No newline at end of file
......@@ -18,7 +18,7 @@
* under the License.
*/
import { createChart, isValueFinite, getECModel } from '../../core/utHelper';
import { createChart, getECModel } from '../../core/utHelper';
import { EChartsType } from '../../../../src/echarts';
import CartesianAxisModel from '../../../../src/coord/cartesian/AxisModel';
import IntervalScale from '../../../../src/scale/Interval';
......@@ -124,10 +124,10 @@ describe('scale_interval', function () {
const resultInterval = result.interval;
const niceTickExtent = result.niceTickExtent;
expect(isValueFinite(resultInterval)).toEqual(true);
expect(isValueFinite(intervalPrecision)).toEqual(true);
expect(isValueFinite(niceTickExtent[0])).toEqual(true);
expect(isValueFinite(niceTickExtent[1])).toEqual(true);
expect(resultInterval).toBeFinite();
expect(intervalPrecision).toBeFinite();
expect(niceTickExtent[0]).toBeFinite();
expect(niceTickExtent[1]).toBeFinite();
expect(niceTickExtent[0]).toBeGreaterThanOrEqual(extent[0]);
expect(niceTickExtent[1]).not.toBeGreaterThan(extent[1]);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册