Jest Config using an external file

44 Views Asked by At

I have a preact project, and I am using Jest as a test runner. My project structure is as such:

common/commonDateUtils.js
common/commonTreeUtils.js
common/etc..
preact/
  package.json
  jest.config.js
  src/
    index.js
    etc..

My application is importing file common/commonDateUtils and using functions from inside it. commonDateUtils is important 3rd party library, specifically moment.

/GitHub/ProjectName/common/commonDateUtils.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import moment from 'moment';
                                                                                             ^^^^^^

    SyntaxError: Cannot use import statement outside a module

      3 | import { useState, useEffect } from 'preact/hooks';
      4 | import { forwardRef } from 'preact/compat';
    > 5 | import commonDateUtils from 'common/commonDateUtils';
        | ^
      6 | import CalendarSVG from '../../assets/calendar.svg';
      7 | import appUtils from '../appUtils';
      8 | import './DateRange.scss';

error

Here is my current jest.config.js:

module.exports = {
  "vernbose": true,
  "setupFiles": [
      "./test/setup.js"
  ],
  "roots": [
    "<rootDir>/src",
    "<rootDir>",
    // "<rootDir>/../common"
  ],
  "testURL": "http://localhost:8080",
  "moduleFileExtensions": [
      "js",
      "jsx"
  ],
  "moduleDirectories": [
      "node_modules",
      "<rootDir>",
      "<rootDir>/../common"
  ],
  "modulePaths": [
    "<rootDir>/src"
  ],
  "moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
      "\\.(css|less|scss)$": "identity-obj-proxy",
      "^react$": "preact/compat",
      "^react-dom$": "preact/compat",
      '^common/(.*)$':  '<rootDir>/../common/$1'
  },
  "collectCoverageFrom": [
      "src/**/*.{js,jsx}"
  ],
  "transformIgnorePatterns": [
    "/node_modules/",
  ]
};
0

There are 0 best solutions below