Я работаю над проектом React, который я тестирую с использованием Jest.Наше приложение использует Highcharts для визуализации визуализации данных в наших представлениях, но у меня возникает проблема, когда речь заходит об использовании одного из модулей плагинов Highcharts, «экспорт», который используется для захвата dataURL svg, который Highcharts уже отрендерил.
К сожалению, все работает прекрасно, когда дело доходит до запуска приложения и наблюдения за тем, как все работает, но поскольку модульное тестирование является большим требованием, я застрял в этом насмешливом аспекте.
Мой компонент импортирует старшие диаграммы, а его модуль похож на
import Highcharts, { Chart } from 'highcharts';
import addExporting from 'highcharts/js/modules/exporting.src.js'
addExporting(Highcharts);
Я создал genMockFromModule в mocks / highcharts.ts
const highcharts: any = jest.genMockFromModule(`highcharts`);
highcharts.getOptions = () => ({ plotOptions: {}, exporting: {} });
module.exports = highcharts;
Я пыталсяв моем тестовом файле ( tests / components / Chart.ts)
jest.mock('highcharts', () => ({
Chart: jest.fn(),
setOptions: jest.fn(),
seriesTypes: {},
}));
jest.mock('highcharts/js/modules/exporting.src.js', () => jest.fn() )
Кажется, что бы я ни пытался, я всегда получаю эту проблему:
TypeError:Невозможно прочитать свойство 'навигатор' из неопределенного
16 |
> 18 | addExporting(Highcharts);
| ^
19 |
at node_modules/highcharts/js/modules/exporting.src.js:49:23
at node_modules/highcharts/js/modules/exporting.src.js:1760:3
Без модуля addExporting я не могу понять, как имитировать другие функциональные возможности, такие как
if(this.chartRef) {
this.chartRef.destroy()
}