build: replace babel-jest with ts-jest
This commit is contained in:
parent
e3ee0c61a6
commit
9be15eaee1
16 changed files with 1085 additions and 1190 deletions
|
@ -1,24 +0,0 @@
|
||||||
const { join, resolve } = require('path');
|
|
||||||
const { createTransformer } = require('babel-jest');
|
|
||||||
const packagePath = resolve('./');
|
|
||||||
|
|
||||||
const packageGlob = join(packagePath, 'packages/*');
|
|
||||||
|
|
||||||
module.exports = createTransformer({
|
|
||||||
babelrcRoots: packageGlob,
|
|
||||||
|
|
||||||
// TODO: This is awful and a mess and we should fix it.
|
|
||||||
//
|
|
||||||
// Forcing this on allows certain packages in node_modules to be
|
|
||||||
// exported as ESM, which jest usually errors on. node_modules are
|
|
||||||
// usually not transformed, but you can allowlist one in the
|
|
||||||
// `jest.config.js` for your project like this:
|
|
||||||
//
|
|
||||||
// transformIgnorePatterns: [
|
|
||||||
// '/node_modules/(?!absurd-sql)'
|
|
||||||
// ],
|
|
||||||
//
|
|
||||||
// Without this explicit plugin, even though Jest transforms the
|
|
||||||
// module it won't recognize ESM
|
|
||||||
plugins: ['@babel/plugin-transform-modules-commonjs']
|
|
||||||
});
|
|
|
@ -1,9 +0,0 @@
|
||||||
const { join, resolve } = require('path');
|
|
||||||
const { createTransformer } = require('babel-jest');
|
|
||||||
const packagePath = resolve('./');
|
|
||||||
|
|
||||||
const packageGlob = join(packagePath, 'packages/*');
|
|
||||||
|
|
||||||
module.exports = createTransformer({
|
|
||||||
babelrcRoots: packageGlob
|
|
||||||
});
|
|
|
@ -1,8 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
projects: [
|
|
||||||
'<rootDir>/packages/loot-core',
|
|
||||||
'<rootDir>/packages/loot-core/jest.web.config.js',
|
|
||||||
'<rootDir>/packages/loot-design',
|
|
||||||
'<rootDir>/packages/loot-design/jest.rn.config.js'
|
|
||||||
]
|
|
||||||
};
|
|
|
@ -25,7 +25,7 @@
|
||||||
"start:browser": "npm-run-all --parallel 'start:browser-*'",
|
"start:browser": "npm-run-all --parallel 'start:browser-*'",
|
||||||
"start:browser-backend": "yarn workspace loot-core watch:browser",
|
"start:browser-backend": "yarn workspace loot-core watch:browser",
|
||||||
"start:browser-frontend": "yarn workspace @actual-app/web start:browser",
|
"start:browser-frontend": "yarn workspace @actual-app/web start:browser",
|
||||||
"test": "./node_modules/.bin/jest --maxWorkers=4",
|
"test": "yarn workspaces foreach --parallel --verbose run test",
|
||||||
"test:debug": "node ./node_modules/.bin/jest --runInBand --useStderr",
|
"test:debug": "node ./node_modules/.bin/jest --runInBand --useStderr",
|
||||||
"test:debug-brk": "node --inspect-brk ./node_modules/.bin/jest --runInBand",
|
"test:debug-brk": "node --inspect-brk ./node_modules/.bin/jest --runInBand",
|
||||||
"rebuild-electron": "./node_modules/.bin/electron-rebuild -f -m ./packages/loot-core",
|
"rebuild-electron": "./node_modules/.bin/electron-rebuild -f -m ./packages/loot-core",
|
||||||
|
@ -34,7 +34,6 @@
|
||||||
"postinstall": "rm -rf ./packages/loot-design/node_modules/react && rm -rf ./packages/mobile/node_modules/react && rm -rf ./node_modules/react-native && patch-package"
|
"postinstall": "rm -rf ./packages/loot-design/node_modules/react && rm -rf ./packages/mobile/node_modules/react && rm -rf ./node_modules/react-native && patch-package"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/plugin-transform-modules-commonjs": "^7.18.2",
|
|
||||||
"cross-env": "^5.1.5",
|
"cross-env": "^5.1.5",
|
||||||
"husky": "^3.0.4",
|
"husky": "^3.0.4",
|
||||||
"npm-run-all": "^4.1.3",
|
"npm-run-all": "^4.1.3",
|
||||||
|
|
|
@ -3,14 +3,11 @@ const isReactNative = process.env.REACT_APP_IS_REACT_NATIVE;
|
||||||
module.exports = {
|
module.exports = {
|
||||||
moduleFileExtensions: ['testing.js', 'electron.js']
|
moduleFileExtensions: ['testing.js', 'electron.js']
|
||||||
.concat(isReactNative ? ['ios.js', 'mobile.js'] : [])
|
.concat(isReactNative ? ['ios.js', 'mobile.js'] : [])
|
||||||
.concat(['mjs', 'js', 'json']),
|
.concat(['mjs', 'js', 'ts', 'json']),
|
||||||
setupFilesAfterEnv: ['<rootDir>/src/mocks/setup.js'],
|
setupFilesAfterEnv: ['<rootDir>/src/mocks/setup.js'],
|
||||||
testEnvironment: 'node',
|
testEnvironment: 'node',
|
||||||
testPathIgnorePatterns: ['/node_modules/', '/lib/', 'index.web.test.js'],
|
testPathIgnorePatterns: ['/node_modules/', '/lib/', 'index.web.test.js'],
|
||||||
transformIgnorePatterns: ['__mocks__'],
|
transformIgnorePatterns: ['__mocks__'],
|
||||||
transform: {
|
|
||||||
'^.+\\.(js|ts|tsx)?$': '<rootDir>/../../jest-babel-transformer'
|
|
||||||
},
|
|
||||||
globals: {
|
globals: {
|
||||||
__TESTING__: true
|
__TESTING__: true
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
moduleFileExtensions: ['testing.js', 'web.js', 'mjs', 'js', 'json'],
|
moduleFileExtensions: ['testing.js', 'web.js', 'mjs', 'js', 'ts', 'json'],
|
||||||
testEnvironment: 'jsdom',
|
testEnvironment: 'jsdom',
|
||||||
testPathIgnorePatterns: ['/node_modules/', '/lib/'].filter(Boolean),
|
testPathIgnorePatterns: ['/node_modules/', '/lib/'].filter(Boolean),
|
||||||
testMatch: ['**/*.web.test.js'],
|
testMatch: ['**/*.web.test.js'],
|
||||||
|
@ -7,9 +7,6 @@ module.exports = {
|
||||||
'__mocks__',
|
'__mocks__',
|
||||||
'/node_modules/(?!perf-deets|absurd-sql)'
|
'/node_modules/(?!perf-deets|absurd-sql)'
|
||||||
],
|
],
|
||||||
transform: {
|
|
||||||
'^.+\\.(js|ts|tsx)?$': '<rootDir>/../../jest-babel-transformer-esm'
|
|
||||||
},
|
|
||||||
globals: {
|
globals: {
|
||||||
__TESTING__: true
|
__TESTING__: true
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,10 @@
|
||||||
"build:api": "cross-env NODE_ENV=development webpack --config ./webpack/webpack.api.config.js",
|
"build:api": "cross-env NODE_ENV=development webpack --config ./webpack/webpack.api.config.js",
|
||||||
"build:browser": "cross-env NODE_ENV=production ./bin/build-browser",
|
"build:browser": "cross-env NODE_ENV=production ./bin/build-browser",
|
||||||
"watch:browser": "cross-env NODE_ENV=development ./bin/build-browser",
|
"watch:browser": "cross-env NODE_ENV=development ./bin/build-browser",
|
||||||
"lint": "eslint src"
|
"lint": "eslint src",
|
||||||
|
"test": "npm-run-all -cp 'test:*'",
|
||||||
|
"test:node": "jest -c jest.config.js",
|
||||||
|
"test:web": "jest -c jest.web.config.js"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
@ -39,8 +42,8 @@
|
||||||
"@actual-app/api": "*",
|
"@actual-app/api": "*",
|
||||||
"@actual-app/import-ynab4": "*",
|
"@actual-app/import-ynab4": "*",
|
||||||
"@babel/core": "~7.14.3",
|
"@babel/core": "~7.14.3",
|
||||||
|
"@types/jest": "^27.5.0",
|
||||||
"adm-zip": "cthackers/adm-zip#ff17ae85",
|
"adm-zip": "cthackers/adm-zip#ff17ae85",
|
||||||
"babel-jest": "25.2.6",
|
|
||||||
"babel-loader": "^8.0.6",
|
"babel-loader": "^8.0.6",
|
||||||
"buffer": "^5.5.0",
|
"buffer": "^5.5.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
|
@ -52,7 +55,7 @@
|
||||||
"fake-indexeddb": "^3.1.3",
|
"fake-indexeddb": "^3.1.3",
|
||||||
"fast-check": "2.13.0",
|
"fast-check": "2.13.0",
|
||||||
"fast-glob": "^2.2.0",
|
"fast-glob": "^2.2.0",
|
||||||
"jest": "25.2.7",
|
"jest": "^28.1.0",
|
||||||
"jsverify": "^0.8.4",
|
"jsverify": "^0.8.4",
|
||||||
"lru-cache": "^5.1.1",
|
"lru-cache": "^5.1.1",
|
||||||
"memfs": "3.1.1",
|
"memfs": "3.1.1",
|
||||||
|
@ -60,6 +63,7 @@
|
||||||
"mock-require": "^3.0.2",
|
"mock-require": "^3.0.2",
|
||||||
"mockdate": "^3.0.5",
|
"mockdate": "^3.0.5",
|
||||||
"murmurhash": "^0.0.2",
|
"murmurhash": "^0.0.2",
|
||||||
|
"npm-run-all": "^4.1.3",
|
||||||
"perf-deets": "^1.0.15",
|
"perf-deets": "^1.0.15",
|
||||||
"prettier": "^1.19.1",
|
"prettier": "^1.19.1",
|
||||||
"sanitize-filename": "^1.6.1",
|
"sanitize-filename": "^1.6.1",
|
||||||
|
@ -67,6 +71,9 @@
|
||||||
"snapshot-diff": "^0.2.2",
|
"snapshot-diff": "^0.2.2",
|
||||||
"source-map": "^0.7.3",
|
"source-map": "^0.7.3",
|
||||||
"throttleit": "^1.0.0",
|
"throttleit": "^1.0.0",
|
||||||
|
"ts-jest": "^28.0.1",
|
||||||
|
"ts-node": "^10.7.0",
|
||||||
|
"typescript": "^4.6.4",
|
||||||
"uuid": "3.3.2",
|
"uuid": "3.3.2",
|
||||||
"webpack": "^4.41.2",
|
"webpack": "^4.41.2",
|
||||||
"webpack-cli": "^3.3.9",
|
"webpack-cli": "^3.3.9",
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"presets": ["jwl-app", "@babel/react"]
|
|
||||||
}
|
|
3
packages/loot-design/babel.config.json
Normal file
3
packages/loot-design/babel.config.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"presets": ["jwl-app", "@babel/preset-react"]
|
||||||
|
}
|
|
@ -1,10 +1,7 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
moduleFileExtensions: ['testing.js', 'web.js', 'mjs', 'js', 'json'],
|
moduleFileExtensions: ['testing.js', 'web.js', 'mjs', 'js', 'ts', 'json'],
|
||||||
testEnvironment: 'jsdom',
|
testEnvironment: 'jsdom',
|
||||||
setupFilesAfterEnv: ['<rootDir>/src/setupTests.js'],
|
setupFilesAfterEnv: ['<rootDir>/src/setupTests.js'],
|
||||||
transform: {
|
|
||||||
'.*': '<rootDir>/../../jest-babel-transformer'
|
|
||||||
},
|
|
||||||
testPathIgnorePatterns: [
|
testPathIgnorePatterns: [
|
||||||
'/node_modules/',
|
'/node_modules/',
|
||||||
'/lib/',
|
'/lib/',
|
||||||
|
|
|
@ -5,14 +5,12 @@ module.exports = {
|
||||||
'mobile.js',
|
'mobile.js',
|
||||||
'mjs',
|
'mjs',
|
||||||
'js',
|
'js',
|
||||||
|
'ts',
|
||||||
'json'
|
'json'
|
||||||
],
|
],
|
||||||
moduleDirectories: ['<rootDir>/node_modules', 'node_modules'],
|
moduleDirectories: ['<rootDir>/node_modules', 'node_modules'],
|
||||||
testEnvironment: 'jsdom',
|
testEnvironment: 'jsdom',
|
||||||
setupFilesAfterEnv: ['<rootDir>/src/setupTests.js'],
|
setupFilesAfterEnv: ['<rootDir>/src/setupTests.js'],
|
||||||
transform: {
|
|
||||||
'^.+\\.(js|ts|tsx)?$': '<rootDir>/../../jest-babel-transformer',
|
|
||||||
},
|
|
||||||
testMatch: ['<rootDir>/src/components/mobile/**/*.test.js'],
|
testMatch: ['<rootDir>/src/components/mobile/**/*.test.js'],
|
||||||
testPathIgnorePatterns: [
|
testPathIgnorePatterns: [
|
||||||
'/node_modules/(?!loot-core).+\\.js$'
|
'/node_modules/(?!loot-core).+\\.js$'
|
||||||
|
|
|
@ -15,9 +15,12 @@
|
||||||
"fast-glob": "^2.2.2",
|
"fast-glob": "^2.2.2",
|
||||||
"formik": "^0.11.10",
|
"formik": "^0.11.10",
|
||||||
"glamor": "^2.20.40",
|
"glamor": "^2.20.40",
|
||||||
|
"jest": "^28.1.0",
|
||||||
|
"jest-environment-jsdom": "^28.1.0",
|
||||||
"memoize-one": "^4.0.0",
|
"memoize-one": "^4.0.0",
|
||||||
"memoizee": "^0.4.12",
|
"memoizee": "^0.4.12",
|
||||||
"node-noop": "1.0.0",
|
"node-noop": "1.0.0",
|
||||||
|
"npm-run-all": "^4.1.3",
|
||||||
"polished": "^1.8.1",
|
"polished": "^1.8.1",
|
||||||
"prettier": "^1.14.2",
|
"prettier": "^1.14.2",
|
||||||
"prop-types": "15.6.0",
|
"prop-types": "15.6.0",
|
||||||
|
@ -45,7 +48,10 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "react-scripts start",
|
"start": "react-scripts start",
|
||||||
"start:mobile": "IS_REACT_NATIVE=1 react-scripts start",
|
"start:mobile": "IS_REACT_NATIVE=1 react-scripts start",
|
||||||
"postinstall": "patch-package"
|
"postinstall": "patch-package",
|
||||||
|
"test": "npm-run-all -cp 'test:*'",
|
||||||
|
"test:web": "jest -c jest.config.js",
|
||||||
|
"test:react-native": "jest -c jest.rn.config.js"
|
||||||
},
|
},
|
||||||
"homepage": "./",
|
"homepage": "./",
|
||||||
"manifest": "manifest.json",
|
"manifest": "manifest.json",
|
||||||
|
|
3
packages/mobile/jest.config.js
Normal file
3
packages/mobile/jest.config.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
module.exports = {
|
||||||
|
preset: "react-native"
|
||||||
|
};
|
|
@ -11,9 +11,6 @@
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"postinstall": "patch-package"
|
"postinstall": "patch-package"
|
||||||
},
|
},
|
||||||
"jest": {
|
|
||||||
"preset": "react-native"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/core": "~7.12.9",
|
"@babel/core": "~7.12.9",
|
||||||
"@babel/runtime": "~7.12.18",
|
"@babel/runtime": "~7.12.18",
|
||||||
|
@ -25,6 +22,7 @@
|
||||||
"@react-navigation/native-stack": "^6.1.0",
|
"@react-navigation/native-stack": "^6.1.0",
|
||||||
"@reactions/component": "^2.0.2",
|
"@reactions/component": "^2.0.2",
|
||||||
"@sentry/react-native": "3.0.2",
|
"@sentry/react-native": "3.0.2",
|
||||||
|
"jest": "^28.1.0",
|
||||||
"jsc-android": "^241213.1.0",
|
"jsc-android": "^241213.1.0",
|
||||||
"loot-core": "*",
|
"loot-core": "*",
|
||||||
"memoize-one": "^4.0.0",
|
"memoize-one": "^4.0.0",
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
moduleFileExtensions: ['js', 'json', 'testing.js'],
|
moduleFileExtensions: ['js', 'ts', 'json', 'testing.js'],
|
||||||
setupTestFrameworkScriptFile: './test/setup.js',
|
setupTestFrameworkScriptFile: './test/setup.js',
|
||||||
testEnvironment: 'node',
|
testEnvironment: 'node',
|
||||||
rootDir: '../',
|
rootDir: '../',
|
||||||
transform: {
|
|
||||||
'^.+\\.js?$': 'babel-jest'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue