首页 > 解决方案 > 无法在测试中使用 amCharts:export { System, system } from "./.internal/core/System";

问题描述

我正在使用带有 react-create-app 的相当基本的站点设置,然后按照文档建议进行导入: import * as am4core from '@amcharts/amcharts4/core'

使用图表时完全没有问题,但是当我在测试环境中运行它们时,它们会因以下错误而失败。

   Details:

    /var/www/management/node/node_modules/@amcharts/amcharts4/core.js:8
    export { System, system } from "./.internal/core/System";
    ^^^^^^

    SyntaxError: Unexpected token 'export'

      2 | import React from 'react'
      3 | import PropTypes from 'prop-types'
    > 4 | import * as am4core from '@amcharts/amcharts4/core'
        | ^
      5 | import * as am4maps from '@amcharts/amcharts4/maps'
      6 | import am4geodata_worldLow from '@amcharts/amcharts4-geodata/worldLow'
      7 | 

      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
      at Object.<anonymous> (src/digitalAssetManager/Overview/components/ProvenanceChart/index.js:4:1)


版本

出处图表/index.js

/* eslint-disable no-unused-vars */
import React from 'react'
import * as am4core from '@amcharts/amcharts4/core'
import * as am4maps from '@amcharts/amcharts4/maps'
import am4geodata_worldLow from '@amcharts/amcharts4-geodata/worldLow'

import am4themes_animated from '@amcharts/amcharts4/themes/animated'

import { theme } from 'config/theme'

am4core.useTheme(am4themes_animated)

class ProvenanceChart extends React.Component {

我不相信我在做任何与标准堆栈有明显不同的事情。

有问题的测试:

  it('should render', () => {
    expect(renderer.create(getComponent()).toJSON()).toMatchSnapshot()
  })

项目 jest.config.js

module.exports = {
  "roots": [
    "<rootDir>/node/src"
  ],
  "moduleFileExtensions": [
    "js",
    "jsx",
    "json",
    "node"
  ],
  "verbose": true,
  "testEnvironment": 'node',
  "testURL": 'http://localhost:3000',
  "setupFiles": ["jest-canvas-mock"],
  "setupTestFrameworkScriptFile": "<rootDir>/src/setupTests.js"
      //// setup file
       //import { configure } from 'enzyme';
       //import 'jest-canvas-mock';
       //import Adapter from 'enzyme-adapter-react-16';

       //configure({ adapter: new Adapter() });
}

然后终于跑了npm test

标签: javascriptreactjsamcharts

解决方案


推荐阅读