"watch-poll": "mix watch -- --watch-options-poll=1000",
"hot": "mix watch --hot",
"prod": "npm run production",
- "production": "mix --production"
+ "production": "mix --production",
+ "test": "NODE_ENV=test npx jest",
+ "test-watch": "npm run test -- --watch --notify"
},
"eslintConfig": {
"env": {
],
"parser": "@babel/eslint-parser",
"parserOptions": {
- "babelOptions": {
- "presets": ["@babel/preset-react"]
- },
+ "babelOptions": {
+ "presets": [
+ "@babel/preset-react"
+ ]
+ },
"ecmaFeatures": {
- "jsx": true
- },
+ "jsx": true
+ },
"ecmaVersion": 2018,
"requireConfigFile": false,
"sourceType": "module"
"error",
"always"
]
- }
+ },
+ "overrides": [
+ {
+ "files": [
+ "**/*.test.js"
+ ],
+ "env": {
+ "jest": true
+ },
+ "settings": {
+ "import/resolver": {
+ "node": {
+ "paths": [
+ "resources/js"
+ ]
+ }
+ }
+ }
+ }
+ ]
+ },
+ "jest": {
+ "moduleDirectories": [
+ "node_modules",
+ "resources/js"
+ ],
+ "roots": [
+ "<rootDir>/resources/js",
+ "<rootDir>/tests/js"
+ ],
+ "setupFilesAfterEnv": [
+ "<rootDir>/resources/js/setup-jest.js"
+ ],
+ "testEnvironment": "jsdom"
},
"devDependencies": {
"@babel/eslint-parser": "^7.22.11",
"@babel/preset-react": "^7.13.13",
"@popperjs/core": "^2.10.2",
- "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/forms": "^0.5.6",
+ "@testing-library/jest-dom": "^6.4.2",
+ "@testing-library/react": "^14.2.1",
"alpinejs": "^3.4.2",
"autoprefixer": "^10.4.2",
- "axios": "^0.25",
+ "axios": "^1.5.0",
+ "babel-jest": "^29.7.0",
"bootstrap": "^5.1.3",
"eslint": "^8.10.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-react": "^7.29.3",
+ "jest": "^29.7.0",
+ "jest-environment-jsdom": "^29.7.0",
"laravel-mix": "^6.0.6",
"lodash": "^4.17.19",
"postcss": "^8.4.6",
- "postcss-import": "^14.0.2",
- "react": "^17.0.2",
- "react-dom": "^17.0.2",
+ "postcss-import": "^15.1.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
"resolve-url-loader": "^5.0.0",
"sass": "^1.32.11",
- "sass-loader": "^11.0.1",
+ "sass-loader": "^13.3.2",
"tailwindcss": "^3.0.18"
},
"dependencies": {
"@codemirror/lang-html": "^6.4.5",
"@fortawesome/fontawesome-free": "^6.0.0",
- "@fortawesome/fontawesome-svg-core": "^1.3.0",
+ "@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-brands-svg-icons": "^6.0.0",
"@fortawesome/free-solid-svg-icons": "^6.0.0",
- "@fortawesome/react-fontawesome": "^0.1.17",
+ "@fortawesome/react-fontawesome": "^0.2.0",
"@uiw/codemirror-theme-github": "^4.21.9",
"@uiw/react-codemirror": "^4.21.9",
"apng-js": "^1.1.1",
"crc-32": "^1.2.2",
"file-saver": "^2.0.5",
"formik": "^2.2.9",
- "i18next": "^21.6.13",
- "i18next-browser-languagedetector": "^6.1.3",
+ "i18next": "^23.4.9",
+ "i18next-browser-languagedetector": "^7.1.0",
"laravel-echo": "^1.11.3",
"localforage": "^1.10.0",
"moment": "^2.29.1",
"numeral": "^2.0.6",
"openseadragon": "^4.0.0",
- "pusher-js": "^7.0.6",
+ "pusher-js": "^8.3.0",
"qs": "^6.10.3",
"react-bootstrap": "^2.2.0",
"react-helmet": "^6.1.0",
- "react-i18next": "^11.15.6",
+ "react-i18next": "^13.2.2",
"react-router-bootstrap": "^0.26.0",
"react-router-dom": "^6.2.2",
"recharts": "^2.1.9",
"toastr": "^2.1.4",
- "yup": "^0.32.11"
+ "yup": "^1.2.0"
}
}