diff --git a/frontend/app/components/auth-panel/auth-panel.test.tsx b/frontend/app/components/auth-panel/auth-panel.test.tsx index 15615c0a85..5a38a64455 100644 --- a/frontend/app/components/auth-panel/auth-panel.test.tsx +++ b/frontend/app/components/auth-panel/auth-panel.test.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact'; import { mount } from 'enzyme'; import createMockStore from 'redux-mock-store'; import { Middleware } from 'redux'; diff --git a/frontend/app/components/auth/auth.spec.tsx b/frontend/app/components/auth/auth.spec.tsx index eed4e9873b..72e91311c2 100644 --- a/frontend/app/components/auth/auth.spec.tsx +++ b/frontend/app/components/auth/auth.spec.tsx @@ -1,5 +1,5 @@ import '@testing-library/jest-dom'; -import { h } from 'preact'; + import { fireEvent, waitFor, screen } from '@testing-library/preact'; import { render } from 'tests/utils'; diff --git a/frontend/app/components/auth/components/oauth.spec.tsx b/frontend/app/components/auth/components/oauth.spec.tsx index 392ac80830..a1728ab647 100644 --- a/frontend/app/components/auth/components/oauth.spec.tsx +++ b/frontend/app/components/auth/components/oauth.spec.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact'; import { render } from 'tests/utils'; import { BASE_URL } from 'common/constants.config'; diff --git a/frontend/app/components/avatar/avatar.spec.tsx b/frontend/app/components/avatar/avatar.spec.tsx index b64a75bf15..f0b033f8e2 100644 --- a/frontend/app/components/avatar/avatar.spec.tsx +++ b/frontend/app/components/avatar/avatar.spec.tsx @@ -1,5 +1,4 @@ import '@testing-library/jest-dom'; -import { h } from 'preact'; import { render } from '@testing-library/preact'; import { Avatar } from './avatar'; diff --git a/frontend/app/components/comment-form/__subscribe-by-email/comment-form__subscribe-by-email.test.tsx b/frontend/app/components/comment-form/__subscribe-by-email/comment-form__subscribe-by-email.test.tsx index 1077db91d5..ef2faf5442 100644 --- a/frontend/app/components/comment-form/__subscribe-by-email/comment-form__subscribe-by-email.test.tsx +++ b/frontend/app/components/comment-form/__subscribe-by-email/comment-form__subscribe-by-email.test.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact'; import { mount } from 'enzyme'; import { act } from 'preact/test-utils'; import { Provider } from 'react-redux'; diff --git a/frontend/app/components/comment-form/__subscribe-by-rss/comment-form__subscribe-by-rss.test.tsx b/frontend/app/components/comment-form/__subscribe-by-rss/comment-form__subscribe-by-rss.test.tsx index 083255b115..4c0a08614f 100644 --- a/frontend/app/components/comment-form/__subscribe-by-rss/comment-form__subscribe-by-rss.test.tsx +++ b/frontend/app/components/comment-form/__subscribe-by-rss/comment-form__subscribe-by-rss.test.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact'; import { shallow } from 'enzyme'; import { SubscribeByRSS, createSubscribeUrl } from '.'; diff --git a/frontend/app/components/comment-form/comment-form.test.tsx b/frontend/app/components/comment-form/comment-form.test.tsx index 8998b6af15..04c11fd7c8 100644 --- a/frontend/app/components/comment-form/comment-form.test.tsx +++ b/frontend/app/components/comment-form/comment-form.test.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact'; import { shallow } from 'enzyme'; import { user, anonymousUser } from '__stubs__/user'; diff --git a/frontend/app/components/comment/comment.test.tsx b/frontend/app/components/comment/comment.test.tsx index 8a48fc9531..12d33ecf41 100644 --- a/frontend/app/components/comment/comment.test.tsx +++ b/frontend/app/components/comment/comment.test.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact'; import { mount } from 'enzyme'; jest.mock('react-intl', () => { diff --git a/frontend/app/components/profile/components/counter/counter.spec.tsx b/frontend/app/components/profile/components/counter/counter.spec.tsx index df6350432e..a6e608e777 100644 --- a/frontend/app/components/profile/components/counter/counter.spec.tsx +++ b/frontend/app/components/profile/components/counter/counter.spec.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact'; import '@testing-library/jest-dom'; import { render } from 'tests/utils'; import { Counter } from '.'; diff --git a/frontend/app/components/profile/profile.spec.tsx b/frontend/app/components/profile/profile.spec.tsx index bc01b5ac02..8c3c23daa6 100644 --- a/frontend/app/components/profile/profile.spec.tsx +++ b/frontend/app/components/profile/profile.spec.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact'; import '@testing-library/jest-dom'; import { waitFor } from '@testing-library/preact'; import { fireEvent } from '@testing-library/dom'; diff --git a/frontend/app/components/select/select.spec.tsx b/frontend/app/components/select/select.spec.tsx index 1df54ea4ce..839e115bd3 100644 --- a/frontend/app/components/select/select.spec.tsx +++ b/frontend/app/components/select/select.spec.tsx @@ -1,6 +1,6 @@ import '@testing-library/jest-dom'; import { fireEvent } from '@testing-library/preact'; -import { h } from 'preact'; + import { render } from 'tests/utils'; import { Select } from './select'; diff --git a/frontend/app/components/sort-picker.spec.tsx b/frontend/app/components/sort-picker.spec.tsx index 6c4fe4cbba..e75b8544fd 100644 --- a/frontend/app/components/sort-picker.spec.tsx +++ b/frontend/app/components/sort-picker.spec.tsx @@ -1,6 +1,5 @@ import '@testing-library/jest-dom'; import { fireEvent, waitFor } from '@testing-library/preact'; -import { h } from 'preact'; import { render } from 'tests/utils'; import * as commentsActions from 'store/comments/actions'; diff --git a/frontend/jest.config.js b/frontend/jest.config.js index 9cbc8868a6..20dca7b42f 100644 --- a/frontend/jest.config.js +++ b/frontend/jest.config.js @@ -1,7 +1,25 @@ +const fs = require('fs'); module.exports = { transform: { - '^.+\\.tsx?$': 'ts-jest', - '^.+\\.jsx?$': 'babel-jest', + '^.+\\.(t|j)sx?$': [ + '@swc/jest', + { + jsc: { + parser: { + syntax: 'typescript', + tsx: true, + decorators: false, + }, + target: 'es2016', + transform: { + react: { + runtime: 'automatic', + importSource: 'preact', + }, + }, + }, + }, + ], }, moduleDirectories: ['node_modules', 'app'], moduleNameMapper: { @@ -32,9 +50,4 @@ module.exports = { '!app/utils/loadLocale.ts', '!app/tests', ], - globals: { - 'ts-jest': { - babelConfig: true, - }, - }, }; diff --git a/frontend/package-lock.json b/frontend/package-lock.json index b1e5024f0c..cb1102f7c0 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -31,8 +31,8 @@ "@mavrin/stylelint-declaration-use-css-custom-properties": "^2.0.0", "@prefresh/babel-plugin": "^0.4.1", "@prefresh/webpack": "^3.2.2", - "@size-limit/file": "^7.0.8", "@size-limit/preset-app": "^7.0.8", + "@swc/jest": "^0.2.20", "@testing-library/jest-dom": "^5.12.0", "@testing-library/preact": "^2.0.1", "@types/enzyme": "^3.10.8", @@ -2266,6 +2266,43 @@ "node": ">= 10.14.2" } }, + "node_modules/@jest/create-cache-key-function": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz", + "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/create-cache-key-function/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, "node_modules/@jest/environment": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", @@ -2672,6 +2709,274 @@ "size-limit": "7.0.8" } }, + "node_modules/@swc/core": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.165.tgz", + "integrity": "sha512-+Z/FquMEUQLOOVWJY4B2QnHvcAIgBKKJMVtVQLVlIwfC4Ez8OvzGPTfL1W4ixYlUoIaTbAd1956kjBXalr4wEg==", + "dev": true, + "peer": true, + "bin": { + "swcx": "run_swcx.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-android-arm-eabi": "1.2.165", + "@swc/core-android-arm64": "1.2.165", + "@swc/core-darwin-arm64": "1.2.165", + "@swc/core-darwin-x64": "1.2.165", + "@swc/core-freebsd-x64": "1.2.165", + "@swc/core-linux-arm-gnueabihf": "1.2.165", + "@swc/core-linux-arm64-gnu": "1.2.165", + "@swc/core-linux-arm64-musl": "1.2.165", + "@swc/core-linux-x64-gnu": "1.2.165", + "@swc/core-linux-x64-musl": "1.2.165", + "@swc/core-win32-arm64-msvc": "1.2.165", + "@swc/core-win32-ia32-msvc": "1.2.165", + "@swc/core-win32-x64-msvc": "1.2.165" + } + }, + "node_modules/@swc/core-android-arm-eabi": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.165.tgz", + "integrity": "sha512-DjX1/5qElHOnlrqhefcZsD1LEspJWDLpW31SKv9cNT2T13U76MkcrHi5ePI50NhG/bWDpHuWFWfuEmgcU+mwHA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-android-arm64": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.165.tgz", + "integrity": "sha512-lPgG+td9/JlV3ZQiHZtdtqn+lZzGly+s/VQXfnaXgaHQE4JjWU2B4rhTVkVOQxEYbA/Cd9pszNWWxjJSrXytMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.165.tgz", + "integrity": "sha512-O6eFbCD4lZ4ZW2E1a4CsIo3zVTI5Tu2MpTbaVan7LvYyv2RK+tot9xjysVbOx/1nfgYDym9JLHU9gY/ayrdOtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.165.tgz", + "integrity": "sha512-R1WRiDnkmXWBkyNGR09WDq+mCFIujhdUs3e4QiHJih1HY2rKGXU0SZKoqaBTjeVerk/IYXaEnZM3Bx7sb0oyEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-freebsd-x64": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.165.tgz", + "integrity": "sha512-bL7Jxy2is/+YLZedQsF5a7swpbq9RGsvtXJmx5Bi0JqaavqWpbICmQtTr9I2S97taw16S/k8vOJ6DPzEvgJWWQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.165.tgz", + "integrity": "sha512-6m+X7a0iw5G97WfkJBKNy7/KfSEivRVRHbWB4VvJgRanNIO4tb//LxlUJFn58frQJg+H7bMFyOXhDJ/taRYAyg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.165.tgz", + "integrity": "sha512-4roZScf8UZLhKTYBEqqbTNasZPqs3zDA2LF+SJuc4eFUGJyyrl9KgeVC08vTMtkAI47EebT15FgcQ+9LhtMlkg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.165.tgz", + "integrity": "sha512-xM5MDECEnptdsClSitld/f+azudbkeT8nNCkXCP+vFsurex9ISJ2DCWTvw7hgpkFElVv/qFEagDCucgESHcUzw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.165.tgz", + "integrity": "sha512-MTEhtso3De+HP+qZKZw1DfPTbngn4ms3+7XG6jqUs6CKpmLTJkvnpPJ5swlXGvpKyDq367O2Aicft52Uoaoq+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.165.tgz", + "integrity": "sha512-T2ZSApYoK4VTMTTqhUKcrNcv68ChoAOZDKUNfOik8zXcN1pMttus/VaqfZjxT2+orviRTD5Bkdsc3UvrhHqHnw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.165.tgz", + "integrity": "sha512-Icg6dtQpQZKjAUG6kME4WuYpG6cqZjUzzmiZPQ9wWOw7wY8EYFPwC2ZjTg8KwbOJFkAKN6cjk3O2IAFsOWuUGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.165.tgz", + "integrity": "sha512-ldrTYG1zydyJP54YmYie3VMGcU7gCT2dZ7S1uZ1Tab+10GzZtdvePGGlQ/39jJVpr36/DZ34L6PsjwQkPG7AOw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.165.tgz", + "integrity": "sha512-gi2ZELsRLC3RfQFk+qwccL0VZ6ZgprMOP/phCVd8sA2MZsVVrFu6QBEJNGO0Z6hEqQ2BWrva6+cMF/eHSzuAsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/jest": { + "version": "0.2.20", + "resolved": "https://registry.npmjs.org/@swc/jest/-/jest-0.2.20.tgz", + "integrity": "sha512-5qSUBYY1wyIMn7p0Vl9qqV4hMI69oJwZCIPUpBsTFWN2wlwn6RDugzdgCn+bLXVYh+Cxi8bJcZ1uumDgsoL+FA==", + "dev": true, + "dependencies": { + "@jest/create-cache-key-function": "^27.4.2" + }, + "engines": { + "npm": ">= 7.0.0" + }, + "peerDependencies": { + "@swc/core": "*" + } + }, "node_modules/@testing-library/dom": { "version": "7.29.6", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.6.tgz", @@ -20360,6 +20665,39 @@ "strip-ansi": "^6.0.0" } }, + "@jest/create-cache-key-function": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz", + "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + } + } + }, "@jest/environment": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", @@ -20688,6 +21026,141 @@ "react": "^17.0.2" } }, + "@swc/core": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.165.tgz", + "integrity": "sha512-+Z/FquMEUQLOOVWJY4B2QnHvcAIgBKKJMVtVQLVlIwfC4Ez8OvzGPTfL1W4ixYlUoIaTbAd1956kjBXalr4wEg==", + "dev": true, + "peer": true, + "requires": { + "@swc/core-android-arm-eabi": "1.2.165", + "@swc/core-android-arm64": "1.2.165", + "@swc/core-darwin-arm64": "1.2.165", + "@swc/core-darwin-x64": "1.2.165", + "@swc/core-freebsd-x64": "1.2.165", + "@swc/core-linux-arm-gnueabihf": "1.2.165", + "@swc/core-linux-arm64-gnu": "1.2.165", + "@swc/core-linux-arm64-musl": "1.2.165", + "@swc/core-linux-x64-gnu": "1.2.165", + "@swc/core-linux-x64-musl": "1.2.165", + "@swc/core-win32-arm64-msvc": "1.2.165", + "@swc/core-win32-ia32-msvc": "1.2.165", + "@swc/core-win32-x64-msvc": "1.2.165" + } + }, + "@swc/core-android-arm-eabi": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.165.tgz", + "integrity": "sha512-DjX1/5qElHOnlrqhefcZsD1LEspJWDLpW31SKv9cNT2T13U76MkcrHi5ePI50NhG/bWDpHuWFWfuEmgcU+mwHA==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-android-arm64": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.165.tgz", + "integrity": "sha512-lPgG+td9/JlV3ZQiHZtdtqn+lZzGly+s/VQXfnaXgaHQE4JjWU2B4rhTVkVOQxEYbA/Cd9pszNWWxjJSrXytMA==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-darwin-arm64": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.165.tgz", + "integrity": "sha512-O6eFbCD4lZ4ZW2E1a4CsIo3zVTI5Tu2MpTbaVan7LvYyv2RK+tot9xjysVbOx/1nfgYDym9JLHU9gY/ayrdOtA==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-darwin-x64": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.165.tgz", + "integrity": "sha512-R1WRiDnkmXWBkyNGR09WDq+mCFIujhdUs3e4QiHJih1HY2rKGXU0SZKoqaBTjeVerk/IYXaEnZM3Bx7sb0oyEQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-freebsd-x64": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.165.tgz", + "integrity": "sha512-bL7Jxy2is/+YLZedQsF5a7swpbq9RGsvtXJmx5Bi0JqaavqWpbICmQtTr9I2S97taw16S/k8vOJ6DPzEvgJWWQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.165.tgz", + "integrity": "sha512-6m+X7a0iw5G97WfkJBKNy7/KfSEivRVRHbWB4VvJgRanNIO4tb//LxlUJFn58frQJg+H7bMFyOXhDJ/taRYAyg==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.165.tgz", + "integrity": "sha512-4roZScf8UZLhKTYBEqqbTNasZPqs3zDA2LF+SJuc4eFUGJyyrl9KgeVC08vTMtkAI47EebT15FgcQ+9LhtMlkg==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.165.tgz", + "integrity": "sha512-xM5MDECEnptdsClSitld/f+azudbkeT8nNCkXCP+vFsurex9ISJ2DCWTvw7hgpkFElVv/qFEagDCucgESHcUzw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.165.tgz", + "integrity": "sha512-MTEhtso3De+HP+qZKZw1DfPTbngn4ms3+7XG6jqUs6CKpmLTJkvnpPJ5swlXGvpKyDq367O2Aicft52Uoaoq+Q==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.165.tgz", + "integrity": "sha512-T2ZSApYoK4VTMTTqhUKcrNcv68ChoAOZDKUNfOik8zXcN1pMttus/VaqfZjxT2+orviRTD5Bkdsc3UvrhHqHnw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.165.tgz", + "integrity": "sha512-Icg6dtQpQZKjAUG6kME4WuYpG6cqZjUzzmiZPQ9wWOw7wY8EYFPwC2ZjTg8KwbOJFkAKN6cjk3O2IAFsOWuUGg==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.165.tgz", + "integrity": "sha512-ldrTYG1zydyJP54YmYie3VMGcU7gCT2dZ7S1uZ1Tab+10GzZtdvePGGlQ/39jJVpr36/DZ34L6PsjwQkPG7AOw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.165.tgz", + "integrity": "sha512-gi2ZELsRLC3RfQFk+qwccL0VZ6ZgprMOP/phCVd8sA2MZsVVrFu6QBEJNGO0Z6hEqQ2BWrva6+cMF/eHSzuAsQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/jest": { + "version": "0.2.20", + "resolved": "https://registry.npmjs.org/@swc/jest/-/jest-0.2.20.tgz", + "integrity": "sha512-5qSUBYY1wyIMn7p0Vl9qqV4hMI69oJwZCIPUpBsTFWN2wlwn6RDugzdgCn+bLXVYh+Cxi8bJcZ1uumDgsoL+FA==", + "dev": true, + "requires": { + "@jest/create-cache-key-function": "^27.4.2" + } + }, "@testing-library/dom": { "version": "7.29.6", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.6.tgz", diff --git a/frontend/package.json b/frontend/package.json index 573691d803..cf6a37ebdb 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -49,6 +49,7 @@ "@prefresh/babel-plugin": "^0.4.1", "@prefresh/webpack": "^3.2.2", "@size-limit/preset-app": "^7.0.8", + "@swc/jest": "^0.2.20", "@testing-library/jest-dom": "^5.12.0", "@testing-library/preact": "^2.0.1", "@types/enzyme": "^3.10.8", @@ -60,7 +61,6 @@ "@types/webpack-env": "^1.16.0", "@typescript-eslint/eslint-plugin": "^4.22.1", "@typescript-eslint/parser": "^4.22.1", - "babel-eslint": "^10.1.0", "babel-loader": "^8.2.3", "clean-webpack-plugin": "^3.0.0", "codecov": "^3.8.2", @@ -108,7 +108,6 @@ "stylelint-config-prettier": "^9.0.3", "stylelint-config-standard": "^25.0.0", "stylelint-value-no-unknown-custom-properties": "^4.0.0", - "ts-jest": "^26.5.6", "ts-loader": "^9.1.2", "tsconfig-paths-webpack-plugin": "^3.5.1", "typescript": "^4.2.4",