Unable to test Lightweight-Charts in React app

1.5k Views Asked by At

In my Create React App when importing the lightweight-chars like so everything's working:

import { createChart } from 'lightweight-charts';

However, when running tests with:

yarn test --all

this error is shown:

● Test suite failed to run

.../node_modules/lightweight-charts/dist/lightweight-charts.esm.development.js:7
import { bindToDevicePixelRatio } from 'fancy-canvas/coordinate-space';
^^^^^^

SyntaxError: Cannot use import statement outside a module

  at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
  ...

Please suggest if looks familiar.

3

There are 3 best solutions below

0
On

Currently it's impossible to use/import lightweight-charts in nodejs context. You can subscribe on https://github.com/tradingview/lightweight-charts/issues/488 to be notified when it'll be solved.

0
On

It might not be the perfect solution to fix the root cause, but I was able to fix the errors via jest option in package.json.

...
"transformIgnorePatterns": [
      "node_modules/(?!(lightweight-charts|fancy-canvas)/)"
    ]

0
On

This is the only thing that worked for me:

npm test -- --transformIgnorePatterns "node_modules/(?!(lightweight-charts|fancy-canvas)/)"

This worked for me because I have an unejected create react app project and therefore transformIgnorePatterns is not available via jest.config.js or the package.json.