При тестировании реагирующих сценариев возникает ошибка TypeError, не связанная с тестируемым компонентом - PullRequest
4 голосов
/ 29 мая 2019

Я тестирую компонент, который использует ag-grid , но при тестировании комплекта тестов не удается, и он не связан с тестируемым компонентом.

import React from 'react';
import RelatorioVendas from './RelatorioVendas';
import { configure, shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

// tslint:disable-next-line:no-any
configure({ adapter: new Adapter() });

test('renders the "RelatorioVendas" component.', () => {
    const wrapper = shallow(
        <RelatorioVendas/>
    );
    wrapper.simulate("gridReady");
    expect(wrapper).toMatchSnapshot();
});

Ошибка:

src/routes/Dashboard/RelatorioVendas.test.js
  ● Test suite failed to run

    TypeError: Cannot read property 'measureText' of null

      35 | import ValidationService from '../../services/ValidationService';
      36 |
    > 37 | import { LicenseManager } from "ag-grid-enterprise";
         | ^
      38 | LicenseManager.setLicenseKey("***********");
      39 |
      40 | class RelatorioVendas extends Component {

      at node_modules/ag-grid-enterprise/dist/lib/charts/canvas/hdpiCanvas.js:258:45
      at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/canvas/hdpiCanvas.js:264:2)
      at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/scene/scene.js:4:20)
      at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/chart/chart.js:4:15)
      at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/chart/cartesianChart.js:17:15)
      at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/chart.js:31:24)
      at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/chartingService.js:15:15)
      at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/menu/menuItemMapper.js:16:25)
      at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/menu/enterpriseMenu.js:29:24)
      at Object.<anonymous> (node_modules/ag-grid-enterprise/main.js:5:24)
      at Object.<anonymous> (src/routes/Dashboard/RelatorioVendas.js:37:1)
      at Object.<anonymous> (src/routes/Dashboard/RelatorioVendas.test.js:2:1)

Test Suites: 1 failed, 1 passed, 2 total
Tests:       1 passed, 1 total
Snapshots:   1 passed, 1 total
Time:        8.645s

Как мне проверить свой проект, если Jest будет вызывать случайные ошибки из импортируемых внутренних библиотек?Есть ли способ пропустить ошибки, связанные с импортом?

1 Ответ

1 голос
/ 08 июля 2019

Я тоже видел эту проблему.Для меня это оказалось проблемой с Jest, не поддерживающим canvas, если вы не согласились. Ответ, перечисленный здесь: добавлена ​​поддержка canvas для jest исправила мою проблему.Надеюсь, это поможет!

Мой тестовый сбой:

  ● Test suite failed to run

TypeError: Cannot read property 'measureText' of null

> 1 | import Table from 'core-ui/components/Table';
    | ^
  2 | import spinner from '@vestmark/core-ui/source/assets/loading-spinner.gif';
  3 | import React, { Component } from 'react';
  4 | import Util from '@/js/ip-util';

at node_modules/ag-grid-enterprise/dist/lib/charts/canvas/hdpiCanvas.js:309:41
at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/canvas/hdpiCanvas.js:314:2)
at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/scene/scene.js:8:20)
at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/chart/chart.js:8:15)
at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/chart/cartesianChart.js:32:15)
at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/chart.js:54:24)
at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/charts/chartingService.js:24:15)
at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/menu/menuItemMapper.js:26:25)
at Object.<anonymous> (node_modules/ag-grid-enterprise/dist/lib/menu/enterpriseMenu.js:50:24)
at Object.<anonymous> (node_modules/ag-grid-enterprise/main.js:10:24)
at Object.<anonymous> (node_modules/@vestmark/core-ui/source/components/Table/Table.js:1:1)
at Object.<anonymous> (src/main/webapp/content/js/components/Transactions/TransactionsTable/TransactionsTable.js:1:1)
at Object.<anonymous> (src/test/javascript/spec/content/js/components/TransactionsTable.spec.js:6:1)

Мой компонент таблицы построен с использованием Ag-Grid-enterprise.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...