Задать вопрос
MadMed677
@MadMed677
Студент СПбГУ, бакалавр, FrontEnd разработчик

Почему тест enzyme на mount компонента падает с ошибкой при инициализации Chart.js?

Создал реактовский компонент:

import React            from 'react';
import Chart            from 'chart.js';

class RadarChart extends React.Component {
  componentDidMount() {
    const ctx = document.getElementById('radar-chart');
    this.chart = this._createChart(ctx);
  }

  _createChart(ctx) {
    return new Chart(cxt, {
      type: 'radar',
        data: {
        labels: ['Strength', 'Skill', 'Health', 'Speed', 'Luck'],
        datasets: [
          {
            label: 'Points',
            data: [25, 50, 55, 30, 40],
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgba(255,99,132,1)',
            borderWidth: 1
          },
          {
            label: 'Points',
            data: [42, 19, 43, 56, 33],
            backgroundColor: 'rgba(255, 159, 64, 0.2)',
            borderColor: 'rgba(255, 159, 64, 1)',
            borderWidth: 1
          }
        ]
      }
    });
  },
  render() {
    return (
      <canvas id="radar-chart"></canvas>
      );
  }

}


Все работает отлично. Создаю spec файл, пробую протестировать:

import React            from 'react';
import { mount }        from 'enzyme';
import sinon            from 'sinon';

import RadarChart       from './radar-chart.react';

describe('<RadarChart />', () => {
  it('компонент успешно замаунтился', () => {
    sinon.spy(RadarChart.prototype, 'componentDidMount');
    mount(<RadarChart />);
    expect(RadarChart.prototype.componentDidMount.calledOnce).to.equal(true);
  });
});


Код падает с ошибкой, пишет:

null is not an object (evaluating 'context.length')
Chart@webpack:///~/chart.js/src/core/core.js?5de4:16:0 <- src/js/engine/modules/chart/radar-chart/radar-chart.spec.js:


Если не вызывать метод `_createChart`, то все хорошо.

Builder: Webpack
Test Runner: Karma
Code: https://github.com/MadMed677/8ForLife/tree/feature...

Может дело именно в самой работе библиотеки с Karma?
  • Вопрос задан
  • 205 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы