From 33be539dce8238a023de987c5735f406bbc34c14 Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Wed, 3 Mar 2021 11:54:03 +0000 Subject: [PATCH 1/5] add config files for jest and basic test --- jest.config.js | 12 ++++++++++++ package.json | 14 +++++++++++--- src/components/App/App.test.tsx | 14 ++++++++++++++ src/components/App/App.tsx | 6 +++++- test/_mocks_/fileMock.js | 0 test/_mocks_/styleMock.js | 0 test/_mocks_/svgIconMock.js | 0 test/setupTests.ts | 5 +++++ 8 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 jest.config.js create mode 100644 src/components/App/App.test.tsx create mode 100644 test/_mocks_/fileMock.js create mode 100644 test/_mocks_/styleMock.js create mode 100644 test/_mocks_/svgIconMock.js create mode 100644 test/setupTests.ts diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..82ada15 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,12 @@ +module.exports = { + preset: "ts-jest", + setupFilesAfterEnv: ["./test/setupTests.ts"], + moduleNameMapper: { + "\\.(css|less|sass|scss)$": "/test/__mocks__/styleMock.js", + "\\.(png|gif|ttf|eot)$": "/test/__mocks__/fileMock.js", + "\\.(svg)$": "/test/__mocks__/svgIconMock.js", + }, + moduleDirectories: ["src", "node_modules"], + collectCoverageFrom: ["src/**/*.tsx", "src/**/*.ts"], + testEnvironment: "jsdom", +}; diff --git a/package.json b/package.json index 02e88d6..6a85d6b 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,19 @@ "main": "src/index.tsx", "scripts": { "start": "webpack serve", - "test": "echo \"Error: no test specified\" && exit 1", + "test": "jest --env=jsdom", + "test:coverage": "jest --coverage", "lint": "eslint . --ext .ts,.tsx", - "lint:fix": "eslint . --fix" + "lint:fix": "eslint . --fix", + "pretty": "pretty-quick --branch development", + "prettier-format": "prettier --config .prettierrc '**/*.{json,js,jsx,ts,tsx,css,scss,md}' --write" }, "author": "Sean Jones", "license": "ISC", + "repository": { + "type": "git", + "url": "https://github.com/cssmonkey/user-management.git" + }, "dependencies": { "classnames": "^2.2.6", "react": "^17.0.1", @@ -62,7 +69,8 @@ }, "husky": { "hooks": { - "pre-commit": "npm run lint && npm run pretty -- --staged" + "pre-commit": "npm run lint && npm run pretty -- --staged", + "pre-push": "npm run test -- --bail" } } } diff --git a/src/components/App/App.test.tsx b/src/components/App/App.test.tsx new file mode 100644 index 0000000..68effc4 --- /dev/null +++ b/src/components/App/App.test.tsx @@ -0,0 +1,14 @@ +import React from "react"; +import { render } from "@testing-library/react"; + +import App from "./App"; + +const setup = () => render(); + +describe("App", () => { + it("renders", () => { + const { container } = setup(); + const app = container.querySelector(".app"); + expect(app).toBeInTheDocument(); + }); +}); diff --git a/src/components/App/App.tsx b/src/components/App/App.tsx index 5a78983..4b644f8 100644 --- a/src/components/App/App.tsx +++ b/src/components/App/App.tsx @@ -1,5 +1,9 @@ import React, { FC } from "react"; -const App: FC = () =>

App

; +const App: FC = () => ( +
+

App

+
+); export default App; diff --git a/test/_mocks_/fileMock.js b/test/_mocks_/fileMock.js new file mode 100644 index 0000000..e69de29 diff --git a/test/_mocks_/styleMock.js b/test/_mocks_/styleMock.js new file mode 100644 index 0000000..e69de29 diff --git a/test/_mocks_/svgIconMock.js b/test/_mocks_/svgIconMock.js new file mode 100644 index 0000000..e69de29 diff --git a/test/setupTests.ts b/test/setupTests.ts new file mode 100644 index 0000000..1dd407a --- /dev/null +++ b/test/setupTests.ts @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import "@testing-library/jest-dom"; From 9542f22e2d026416be2c163e4f9c7adda66028d7 Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Wed, 3 Mar 2021 11:55:04 +0000 Subject: [PATCH 2/5] reinstall husky --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 61b1026..6b6a9c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4852,9 +4852,9 @@ "dev": true }, "husky": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-5.1.1.tgz", - "integrity": "sha512-80LZ736V0Nr4/st0c2COYaMbEQhHNmAbLMN8J/kLk7/mo0QdUkUGNDjv/7jVkhug377Wh8wfbWyaVXEJ/h2B/Q==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-5.1.3.tgz", + "integrity": "sha512-fbNJ+Gz5wx2LIBtMweJNY1D7Uc8p1XERi5KNRMccwfQA+rXlxWNSdUxswo0gT8XqxywTIw7Ywm/F4v/O35RdMg==", "dev": true }, "iconv-lite": { diff --git a/package.json b/package.json index 6a85d6b..30ff751 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "eslint-plugin-react": "^7.22.0", "eslint-plugin-react-hooks": "^4.2.0", "html-webpack-plugin": "^5.2.0", - "husky": "^5.1.1", + "husky": "^5.1.3", "jest": "^26.6.3", "postcss": "^8.2.6", "postcss-loader": "^5.0.0", From bdbf4fe7f94443cf07d53522d8bd6f707a2237d6 Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Wed, 3 Mar 2021 11:56:34 +0000 Subject: [PATCH 3/5] install pretty-quick --- package-lock.json | 137 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 138 insertions(+) diff --git a/package-lock.json b/package-lock.json index 6b6a9c3..c5e8913 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1565,6 +1565,12 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, + "array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true + }, "array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", @@ -1625,6 +1631,12 @@ "function-bind": "^1.1.1" } }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -6324,6 +6336,12 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, + "mri": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", + "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6346,6 +6364,19 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "multimatch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + } + }, "nanoid": { "version": "3.1.20", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", @@ -7143,6 +7174,112 @@ } } }, + "pretty-quick": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.0.tgz", + "integrity": "sha512-DtxIxksaUWCgPFN7E1ZZk4+Aav3CCuRdhrDSFZENb404sYMtuo9Zka823F+Mgeyt8Zt3bUiCjFzzWYE9LYqkmQ==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "execa": "^4.0.0", + "find-up": "^4.1.0", + "ignore": "^5.1.4", + "mri": "^1.1.5", + "multimatch": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", diff --git a/package.json b/package.json index 30ff751..75ac006 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "postcss-loader": "^5.0.0", "prettier": "^2.2.1", "prettier-quick": "0.0.5", + "pretty-quick": "^3.1.0", "sass": "^1.32.8", "sass-loader": "^11.0.1", "style-loader": "^2.0.0", From a12d08e3eb4375eebbd0088dfe81ea3d78634ea6 Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Wed, 3 Mar 2021 11:58:27 +0000 Subject: [PATCH 4/5] trying to trigger husky precommit hook --- src/components/App/App.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/App/App.test.tsx b/src/components/App/App.test.tsx index 68effc4..dd895fc 100644 --- a/src/components/App/App.test.tsx +++ b/src/components/App/App.test.tsx @@ -6,7 +6,7 @@ import App from "./App"; const setup = () => render(); describe("App", () => { - it("renders", () => { + it("renders app", () => { const { container } = setup(); const app = container.querySelector(".app"); expect(app).toBeInTheDocument(); From ed78d3d1a5611a5587ed3bcae7ad2041d63860b8 Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Wed, 3 Mar 2021 12:00:42 +0000 Subject: [PATCH 5/5] install v4 husky --- package-lock.json | 116 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 2 +- 2 files changed, 113 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c5e8913..aeb178e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2352,6 +2352,12 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -4240,6 +4246,15 @@ "path-exists": "^4.0.0" } }, + "find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "dev": true, + "requires": { + "semver-regex": "^3.1.2" + } + }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -4864,10 +4879,70 @@ "dev": true }, "husky": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-5.1.3.tgz", - "integrity": "sha512-fbNJ+Gz5wx2LIBtMweJNY1D7Uc8p1XERi5KNRMccwfQA+rXlxWNSdUxswo0gT8XqxywTIw7Ywm/F4v/O35RdMg==", - "dev": true + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", + "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^7.0.0", + "find-versions": "^4.0.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "requires": { + "find-up": "^5.0.0" + } + } + } }, "iconv-lite": { "version": "0.4.24", @@ -6716,6 +6791,12 @@ "mimic-fn": "^2.1.0" } }, + "opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true + }, "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -6981,6 +7062,15 @@ "find-up": "^4.0.0" } }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, "portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", @@ -8118,6 +8208,18 @@ "lru-cache": "^6.0.0" } }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "semver-regex": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", + "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", + "dev": true + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -10288,6 +10390,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, "wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", diff --git a/package.json b/package.json index 75ac006..1729a8e 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "eslint-plugin-react": "^7.22.0", "eslint-plugin-react-hooks": "^4.2.0", "html-webpack-plugin": "^5.2.0", - "husky": "^5.1.3", + "husky": "^4.3.8", "jest": "^26.6.3", "postcss": "^8.2.6", "postcss-loader": "^5.0.0",