We are migrating towards using RTK Query for API calls, and using `msw` to mock APIs in our tests. RTK Query's `fetchBaseQuery` requires the use of `fetch` and `Request`. `fetch()` was added to Node in v18, and the ability to use it in Jest tests was added to Jest in v28. However, it still cannot be used with a `jsdom` test environment. Therefore, it is necessary to add a polyfill. There are several libraries available for this but many others in this situation have had success using `whatwg-fetch` and so it was selected somewhat arbitrarily. It is also important that `whatwg-fetch` is imported before `fetchBaseQuery` (otherwise, a nuisance console warning will be issued). To ensure this happens, it is imported in a Jest setup file.
112 lines
3.5 KiB
JSON
112 lines
3.5 KiB
JSON
{
|
|
"name": "image-builder",
|
|
"version": "1.1.0",
|
|
"private": false,
|
|
"engines": {
|
|
"node": ">=16.0.0",
|
|
"npm": ">=7.0.0"
|
|
},
|
|
"dependencies": {
|
|
"@data-driven-forms/pf4-component-mapper": "3.16.10",
|
|
"@data-driven-forms/react-form-renderer": "3.20.0",
|
|
"@patternfly/patternfly": "4.210.2",
|
|
"@patternfly/react-core": "4.267.6",
|
|
"@patternfly/react-table": "4.112.6",
|
|
"@redhat-cloud-services/frontend-components": "3.9.25",
|
|
"@redhat-cloud-services/frontend-components-notifications": "3.2.12",
|
|
"@redhat-cloud-services/frontend-components-utilities": "3.3.11",
|
|
"@reduxjs/toolkit": "^1.9.1",
|
|
"@scalprum/react-core": "^0.2.8",
|
|
"classnames": "2.3.2",
|
|
"lodash": "4.17.21",
|
|
"react": "17.0.2",
|
|
"react-dom": "17.0.2",
|
|
"react-redux": "8.0.5",
|
|
"react-router-dom": "6.6.2",
|
|
"redux": "4.2.0",
|
|
"redux-promise-middleware": "6.1.3"
|
|
},
|
|
"jest": {
|
|
"coverageDirectory": "./coverage/",
|
|
"collectCoverage": true,
|
|
"collectCoverageFrom": [
|
|
"src/**/*.js",
|
|
"!src/**/stories/*",
|
|
"!src/entry-dev.js"
|
|
],
|
|
"testEnvironment": "jsdom",
|
|
"globals": {
|
|
"COMMITHASH": "dummy"
|
|
},
|
|
"roots": [
|
|
"<rootDir>/src/"
|
|
],
|
|
"moduleNameMapper": {
|
|
"\\.(css|scss)$": "identity-obj-proxy"
|
|
},
|
|
"setupFiles": [
|
|
"jest-canvas-mock"
|
|
],
|
|
"setupFilesAfterEnv": [
|
|
"./jest.setup.js"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "7.20.12",
|
|
"@babel/eslint-parser": "^7.17.0",
|
|
"@babel/plugin-proposal-object-rest-spread": "7.20.2",
|
|
"@babel/plugin-transform-runtime": "7.19.6",
|
|
"@babel/preset-env": "7.20.2",
|
|
"@babel/preset-react": "7.18.6",
|
|
"@redhat-cloud-services/eslint-config-redhat-cloud-services": "1.2.6",
|
|
"@redhat-cloud-services/frontend-components-config": "4.6.36",
|
|
"@testing-library/dom": "8.18.1",
|
|
"@testing-library/jest-dom": "5.16.5",
|
|
"@testing-library/react": "12.1.5",
|
|
"@testing-library/user-event": "13.5.0",
|
|
"babel-jest": "29.3.1",
|
|
"babel-plugin-dual-import": "1.2.1",
|
|
"babel-plugin-transform-imports": "2.0.0",
|
|
"css-loader": "6.7.3",
|
|
"eslint": "8.32.0",
|
|
"eslint-plugin-import": "2.27.5",
|
|
"eslint-plugin-jest-dom": "4.0.3",
|
|
"eslint-plugin-react": "7.32.1",
|
|
"eslint-plugin-testing-library": "5.10.1",
|
|
"git-revision-webpack-plugin": "5.0.0",
|
|
"history": "5.3.0",
|
|
"identity-obj-proxy": "3.0.0",
|
|
"jest": "29.4.1",
|
|
"jest-canvas-mock": "2.4.0",
|
|
"jest-environment-jsdom": "29.4.1",
|
|
"msw": "^1.0.0",
|
|
"npm-run-all": "4.1.5",
|
|
"postcss-scss": "4.0.6",
|
|
"prop-types": "15.8.1",
|
|
"redux-mock-store": "1.5.4",
|
|
"sass": "1.57.1",
|
|
"sass-loader": "13.0.2",
|
|
"stylelint": "14.16.1",
|
|
"stylelint-config-recommended-scss": "6.0.0",
|
|
"uuid": "9.0.0",
|
|
"webpack-bundle-analyzer": "4.7.0",
|
|
"whatwg-fetch": "^3.6.2"
|
|
},
|
|
"scripts": {
|
|
"lint": "npm-run-all lint:*",
|
|
"lint:js": "eslint config src",
|
|
"lint:js:fix": "eslint config src --fix",
|
|
"lint:sass": "stylelint 'src/**/*.scss' --config .stylelintrc.json",
|
|
"prod-beta": "BETA=true PROXY=true webpack serve --config config/dev.webpack.config.js",
|
|
"prod-stable": "PROXY=true webpack serve --config config/dev.webpack.config.js",
|
|
"stage-stable": "STAGE=true npm run prod-stable",
|
|
"stage-beta": "STAGE=true npm run prod-beta",
|
|
"test": "TZ=UTC jest --verbose --no-cache",
|
|
"test:single": "jest --verbose -w 1",
|
|
"build": "webpack --config config/prod.webpack.config.js",
|
|
"verify": "npm-run-all build lint test"
|
|
},
|
|
"insights": {
|
|
"appname": "image-builder"
|
|
}
|
|
}
|