2025-05-03 23:48:15 +08:00

105 lines
4.2 KiB
TypeScript
Generated

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import { findEffectedDataZooms } from '../../../../../src/component/dataZoom/helper';
import { createChart, getECModel } from '../../../core/utHelper';
import { EChartsType } from '../../../../../src/echarts';
describe('dataZoom/helper', function () {
describe('findLinkedNodes', function () {
let chart: EChartsType;
beforeEach(function () {
chart = createChart();
});
afterEach(function () {
chart.dispose();
});
it('findLinkedNodes_base', function () {
chart.setOption({
xAxis: [{}, {}, {}, {}, {}, {}],
yAxis: [{}, {}, {}, {}, {}, {}],
dataZoom: [
{ id: 'dz0', xAxisIndex: [1, 2], yAxisIndex: [0] },
{ id: 'dz1', xAxisIndex: [3], yAxisIndex: [1] },
{ id: 'dz2', xAxisIndex: [5], yAxisIndex: [] },
{ id: 'dz3', xAxisIndex: [2, 5], yAxisIndex: [] }
]
});
const payload = { type: 'dataZoom', dataZoomIndex: 0 };
const dzModels = findEffectedDataZooms(getECModel(chart), payload);
expect(dzModels.length === 3);
expect(dzModels[0] === getECModel(chart).getComponent('dataZoom', 0)).toEqual(true);
expect(dzModels[1] === getECModel(chart).getComponent('dataZoom', 3)).toEqual(true);
expect(dzModels[2] === getECModel(chart).getComponent('dataZoom', 2)).toEqual(true);
});
it('findLinkedNodes_crossXY', function () {
chart.setOption({
xAxis: [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
yAxis: [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
dataZoom: [
{ id: 'dz0', xAxisIndex: [1, 2], yAxisIndex: [0] },
{ id: 'dz1', xAxisIndex: [3], yAxisIndex: [3, 0] },
{ id: 'dz2', xAxisIndex: [6, 3], yAxisIndex: [9] },
{ id: 'dz3', xAxisIndex: [5, 3], yAxisIndex: [] },
{ id: 'dz4', xAxisIndex: [8], yAxisIndex: [4] }
]
});
const payload = { type: 'dataZoom', dataZoomIndex: 0 };
const dzModels = findEffectedDataZooms(getECModel(chart), payload);
expect(dzModels.length === 4);
expect(dzModels[0] === getECModel(chart).getComponent('dataZoom', 0)).toEqual(true);
expect(dzModels[1] === getECModel(chart).getComponent('dataZoom', 1)).toEqual(true);
expect(dzModels[2] === getECModel(chart).getComponent('dataZoom', 2)).toEqual(true);
expect(dzModels[3] === getECModel(chart).getComponent('dataZoom', 3)).toEqual(true);
});
it('findLinkedNodes_emptySourceModel', function () {
chart.setOption({
xAxis: [{}, {}, {}, {}, {}, {}, {}, {}, {}],
yAxis: [{}, {}, {}, {}, {}, {}, {}, {}, {}],
dataZoom: [
{ id: 'dz0', xAxisIndex: [1, 2], yAxisIndex: [0] },
{ id: 'dz1', xAxisIndex: [3], yAxisIndex: [3, 0] },
{ id: 'dz2', xAxisIndex: [6, 3], yAxisIndex: [9] },
{ id: 'dz3', xAxisIndex: [5, 3], yAxisIndex: [] },
{ id: 'dz4', xAxisIndex: [8], yAxisIndex: [4] }
]
});
const payload = { type: 'other' };
const dzModels = findEffectedDataZooms(getECModel(chart), payload);
expect(dzModels.length === 0);
});
});
});