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';
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/",
]
};
