Пересмешивающие высокие диаграммы (с экспортом) для шутливого юнит-тестирования - PullRequest
0 голосов
/ 13 мая 2019

Я работаю над проектом 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()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...