From 8d4d80f3a6636757cc2fe3d4bbcb753042656dcd Mon Sep 17 00:00:00 2001 From: phrough Date: Sun, 1 May 2022 10:29:55 -0500 Subject: [PATCH 1/7] feat: add Slider component --- config/jest/identity-obj-proxy-revised.js | 16 + package.json | 3 +- src/__snapshots__/storybook.test.js.snap | 10178 +++------------- src/components/Dialog/Dialog.test.tsx | 10 +- src/components/Modal/Modal.test.tsx | 6 +- src/components/Panel/Panel.test.tsx | 6 +- src/components/Slider/Slider.stories.tsx | 47 + src/components/Slider/Slider.test.tsx | 88 + src/components/Slider/Slider.tsx | 241 + src/components/Slider/Slider.types.ts | 81 + src/components/Slider/index.ts | 2 + src/components/Slider/slider.module.scss | 171 + .../Tabs/__snapshots__/Tabs.test.tsx.snap | 12 +- src/hooks/useEffectOnlyOnUpdate.tsx | 21 + yarn.lock | 12 - 15 files changed, 2468 insertions(+), 8426 deletions(-) create mode 100644 config/jest/identity-obj-proxy-revised.js create mode 100644 src/components/Slider/Slider.stories.tsx create mode 100644 src/components/Slider/Slider.test.tsx create mode 100644 src/components/Slider/Slider.tsx create mode 100644 src/components/Slider/Slider.types.ts create mode 100644 src/components/Slider/index.ts create mode 100644 src/components/Slider/slider.module.scss create mode 100644 src/hooks/useEffectOnlyOnUpdate.tsx diff --git a/config/jest/identity-obj-proxy-revised.js b/config/jest/identity-obj-proxy-revised.js new file mode 100644 index 000000000..38ee4e299 --- /dev/null +++ b/config/jest/identity-obj-proxy-revised.js @@ -0,0 +1,16 @@ +// Proxy for jest tests to convert css moodule class names. +// Based on https://medium.com/trabe/testing-css-modules-in-react-components-with-jest-enzyme-and-a-custom-modulenamemapper-8ff86c7d18a2 + +module.exports = new Proxy( + {}, + { + get: function getter(target, key) { + if (key === '__esModule') { + return false; + } + + // Convert camelCase to kebab-case for class selectors in unit tests. + return key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`); + }, + } +); diff --git a/package.json b/package.json index ca540cd93..c583326af 100644 --- a/package.json +++ b/package.json @@ -129,7 +129,6 @@ "html-webpack-plugin": "5.5.0", "husky": "7.0.4", "icomoon-react": "^3.0.0", - "identity-obj-proxy": "3.0.0", "install-peers": "1.0.3", "install-peers-cli": "2.2.0", "jest": "27.4.3", @@ -209,7 +208,7 @@ "modulePaths": [], "moduleNameMapper": { "^react-native$": "react-native-web", - "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy" + "^.+\\.module\\.(css|sass|scss)$": "/config/jest/identity-obj-proxy-revised.js" }, "moduleFileExtensions": [ "web.js", diff --git a/src/__snapshots__/storybook.test.js.snap b/src/__snapshots__/storybook.test.js.snap index e5b9f4989..9b9ab4c68 100644 --- a/src/__snapshots__/storybook.test.js.snap +++ b/src/__snapshots__/storybook.test.js.snap @@ -17,10 +17,10 @@ exports[`Storyshots Accordion List Horizontal 1`] = `