create-react-app-typescript icon indicating copy to clipboard operation
create-react-app-typescript copied to clipboard

Unit tests are failing when using dynamic imports

Open rolandjitsu opened this issue 5 years ago • 2 comments

Is this a bug report?

Yes.

Can you also reproduce the problem with npm 4.x?

Yes.

Which terms did you search for in User Guide?

Unexpected token, Unexpected token import, dynamic import

Environment

  1. npm ls react-scripts-ts (if you haven’t ejected): 2.16.0
  2. node -v: 8.11.2
  3. npm -v: 5.6.0
  4. yarn --version (if you use Yarn): 1.7.0
  5. npm ls react-scripts-ts (if you haven’t ejected):

Then, specify:

  1. Operating system: macOS Sierra
  2. Browser and version (if relevant): Chrome

Steps to Reproduce

Go to cra-workspaces#dynamic-import:

  1. Clone repo
  2. Run yarn install from root
  3. Run yarn test

NOTE: Use yarn start to run the app and confirm it actually works.

Expected Behavior

Tests would pass without errors.

Actual Behavior

Tests are failing with:

/Users/rolandjitsu/Projects/cra-workspaces/apps/cra/src/app.tsx: Unexpected token (5:33)
        3 | import Loadable from 'react-loadable';
        4 | var DynamicComponent = Loadable({
      > 5 |     loader: function () { return import('./dynamic'); },
          |                                  ^
        6 |     loading: function () { return React.createElement("span", null, "Loading ..."); }
        7 | });
        8 | var App = /** @class */ (function (_super) {

Reproducible Demo

See cra-workspaces#dynamic-import and use instructions above to reproduce.

rolandjitsu avatar Jul 08 '18 16:07 rolandjitsu

Try disabling allowSyntheticDefaultImports in your tsconfig.json if you have it enabled

ianschmitz avatar Aug 13 '18 03:08 ianschmitz

This was fixed in ts-jest https://github.com/kulshekhar/ts-jest/issues/258#issuecomment-410236002. I tried to get it upgraded locally in react-scripts-ts but failed, maybe I'm missing something as I'm pretty new to the whole ecosystem.

topaxi avatar Aug 29 '18 17:08 topaxi