diff --git a/.gitignore b/.gitignore index ec63435..22f3621 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,28 @@ +### custom ### + +# build output build/ +# test coverage output coverage/ +### Node ### + +# Logs +logs +*.log npm-debug.log* + +# Dependency directories node_modules/ +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' *.tgz -.DS_Store -*~ +# dotenv environment variables file +.env diff --git a/.travis.yml b/.travis.yml index ba455b9..f8934a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js # default is the very old 0.10.48; match local version instead -node_js: '8.9' +node_js: '10.16.0' before_script: npm run lint script: npm test -- --coverage diff --git a/README.md b/README.md index 4480a15..e3e055c 100644 --- a/README.md +++ b/README.md @@ -8,15 +8,15 @@ [![package-json](https://img.shields.io/github/package-json/v/agilgur5/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![releases](https://img.shields.io/github/tag-pre/agilgur5/react-signature-canvas.svg)](https://github.com/agilgur5/react-signature-canvas/releases) -[![commits](https://img.shields.io/github/commits-since/agilgur5/react-signature-canvas/v1.0.5.svg)](https://github.com/agilgur5/react-signature-canvas/commits/master) +[![commits](https://img.shields.io/github/commits-since/agilgur5/react-signature-canvas/v1.0.5.svg)](https://github.com/agilgur5/react-signature-canvas/commits/main)
[![dt](https://img.shields.io/npm/dt/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![dy](https://img.shields.io/npm/dy/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![dm](https://img.shields.io/npm/dm/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![dw](https://img.shields.io/npm/dw/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas)
-[![build status](https://img.shields.io/travis/agilgur5/react-signature-canvas/master.svg)](https://travis-ci.org/agilgur5/react-signature-canvas) -[![code coverage](https://img.shields.io/codecov/c/gh/agilgur5/react-signature-canvas/master.svg)](https://codecov.io/gh/agilgur5/react-signature-canvas) +[![build status](https://img.shields.io/travis/com/agilgur5/react-signature-canvas/main.svg)](https://app.travis-ci.com/github/agilgur5/react-signature-canvas/branches) +[![code coverage](https://img.shields.io/codecov/c/gh/agilgur5/react-signature-canvas/main.svg)](https://codecov.io/gh/agilgur5/react-signature-canvas)
[![NPM](https://nodei.co/npm/react-signature-canvas.png?downloads=true&downloadRank=true&stars=true)](https://npmjs.org/package/react-signature-canvas)
diff --git a/jest.config.js b/jest.config.js index 5b40fc7..5dfac61 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,13 +1,11 @@ module.exports = { - moduleNameMapper: { - // allow importing of Jest as an ES Module (https://github.com/facebook/jest/pull/7571#issuecomment-498634094) - '^jest$': '/test-utils/jest-export.js' - }, + // Jest 24 defaults to JSDOM 11, upgrade to 15 to support canvas@2 + testEnvironment: 'jest-environment-jsdom-fifteen', setupFilesAfterEnv: [ // configure enzyme w/ react adapter - '/test-utils/configure-enzyme.js', + '/test/config/configure-enzyme.js', // polyfill window.resizeTo - '/test-utils/window-resizeTo.js' + 'window-resizeto/polyfill' ], transform: { // use babel-jest@23 for babel@6 support (https://github.com/facebook/jest/issues/8230#issuecomment-479470547) @@ -15,6 +13,6 @@ module.exports = { }, coveragePathIgnorePatterns: [ '/node_modules/', // default - '/test-utils/' // ignore test-utils + '/test/' // ignore any test helper files ] } diff --git a/package-lock.json b/package-lock.json index dc76d5a..e78534e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3354,13 +3354,41 @@ "integrity": "sha1-zcUu/o+C3RORZhW3job3BOzmGAI=", "dev": true }, - "canvas-prebuilt": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.11.tgz", - "integrity": "sha512-ayBAayYLgFbGBX+cwtOzM4iEQP4XB5DuBbtjgvAwQ66/FMzSR7DhlCqtDZIq9UBbpFCb1QpyDgUNVclHDdBixg==", + "canvas": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz", + "integrity": "sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==", "dev": true, "requires": { - "node-pre-gyp": "^0.10.0" + "nan": "^2.14.0", + "node-pre-gyp": "^0.11.0", + "simple-get": "^3.0.3" + }, + "dependencies": { + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true + }, + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "dev": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + } } }, "capture-exit": { @@ -4003,6 +4031,15 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "requires": { + "mimic-response": "^2.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -7165,6 +7202,12 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, "ipaddr.js": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", @@ -8251,6 +8294,131 @@ "jsdom": "^11.5.1" } }, + "jest-environment-jsdom-fifteen": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fifteen/-/jest-environment-jsdom-fifteen-1.0.2.tgz", + "integrity": "sha512-nfrnAfwklE1872LIB31HcjM65cWTh1wzvMSp10IYtPJjLDUbTTvDpajZgIxUnhRmzGvogdHDayCIlerLK0OBBg==", + "dev": true, + "requires": { + "@jest/environment": "^24.3.0", + "@jest/fake-timers": "^24.3.0", + "@jest/types": "^24.3.0", + "jest-mock": "^24.0.0", + "jest-util": "^24.0.0", + "jsdom": "^15.2.1" + }, + "dependencies": { + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "dev": true + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz", + "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "jsdom": { + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", + "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^7.1.0", + "acorn-globals": "^4.3.2", + "array-equal": "^1.0.0", + "cssom": "^0.4.1", + "cssstyle": "^2.0.0", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.1", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.2.0", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^7.0.0", + "xml-name-validator": "^3.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "ws": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", + "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==", + "dev": true + } + } + }, "jest-environment-node": { "version": "24.8.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.8.0.tgz", @@ -10200,6 +10368,12 @@ } } }, + "jest-without-globals": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/jest-without-globals/-/jest-without-globals-0.0.2.tgz", + "integrity": "sha512-bj0gn7yJVqz8C3bvZdW6anc6K7YE1kQgFs7YuwnA6e3g+VzQc3zErIc4W2Mrx/06h1wdgBSswidVThp09of2/w==", + "dev": true + }, "jest-worker": { "version": "24.6.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.6.0.tgz", @@ -10856,6 +11030,12 @@ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -11121,24 +11301,6 @@ "which": "^1.3.0" } }, - "node-pre-gyp": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz", - "integrity": "sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==", - "dev": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, "nopt": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", @@ -13630,6 +13792,15 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "dev": true, + "requires": { + "xmlchars": "^2.1.1" + } + }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", @@ -13791,6 +13962,23 @@ "resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-2.3.2.tgz", "integrity": "sha512-peYXLxOsIY6MES2TrRLDiNg2T++8gGbpP2yaC+6Ohtxr+a2dzoaqWosWDY9sWqTAAk6E/TyQO+LJw9zQwyu5kA==" }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "dev": true, + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "sisteransi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.2.tgz", @@ -15077,6 +15265,17 @@ "browser-process-hrtime": "^0.1.2" } }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "dev": true, + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", @@ -15305,6 +15504,12 @@ "string-width": "^1.0.2 || 2" } }, + "window-resizeto": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/window-resizeto/-/window-resizeto-0.0.2.tgz", + "integrity": "sha512-681jdLyc6p+Whk7lFxWISm+V49ymURtBN+Oz5j5c6UnYoBpqc2Q8e3pjZ5VtedC01TjJqr2Xt9XdJMid4KxZmQ==", + "dev": true + }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", @@ -15390,6 +15595,12 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", diff --git a/package.json b/package.json index deac684..0049a5a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A React wrapper component around signature_pad. Unopinionated and heavily updated fork of react-signature-pad", "main": "build/index.js", "files": [ - "src/index.js", + "src/", "build/" ], "author": "Anton Gilgur", @@ -17,6 +17,9 @@ "bugs": { "url": "https://github.com/agilgur5/react-signature-canvas/issues" }, + "funding": { + "url": "https://github.com/sponsors/agilgur5" + }, "keywords": [ "react", "react-component", @@ -38,10 +41,10 @@ "lint": "standard --parser babel-eslint", "lint:fix": "standard --parser babel-eslint --fix", "start": "webpack-dev-server -d --inline --hot", - "dist": "webpack -p --config webpack.production.config.js", + "build": "webpack -p --config webpack.production.config.js", "test": "jest", - "test:pub": "npm run dist && npm pack", - "pub": "npm run dist && npm publish", + "test:pub": "npm run build && npm pack", + "pub": "npm run build && npm publish", "changelog": "changelog-maker" }, "peerDependencies": { @@ -63,16 +66,19 @@ "babel-preset-es2015": "^6.14.0", "babel-preset-react": "^6.11.1", "babel-preset-stage-2": "^6.13.0", - "canvas-prebuilt": "^1.6.11", + "canvas": "^2.6.1", "css-loader": "^0.24.0", "enzyme": "^3.10.0", "jest": "^24.8.0", + "jest-environment-jsdom-fifteen": "^1.0.2", + "jest-without-globals": "^0.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-hot-loader": "^1.2.7", "standard": "^13.0.2", "style-loader": "^0.13.1", "webpack": "^1.12.2", - "webpack-dev-server": "^1.10.1" + "webpack-dev-server": "^1.10.1", + "window-resizeto": "0.0.2" } } diff --git a/src/index.js b/src/index.js index e80ab0c..ce553ed 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,7 @@ import React, { Component } from 'react' import SignaturePad from 'signature_pad' import trimCanvas from 'trim-canvas' -export default class SignatureCanvas extends Component { +export class SignatureCanvas extends Component { static propTypes = { // signature_pad's props velocityFilterWeight: PropTypes.number, @@ -139,3 +139,5 @@ export default class SignatureCanvas extends Component { return this._sigPad.toData() } } + +export default SignatureCanvas diff --git a/test-utils/jest-export.js b/test-utils/jest-export.js deleted file mode 100644 index 37d01f5..0000000 --- a/test-utils/jest-export.js +++ /dev/null @@ -1,4 +0,0 @@ -// export Jest as an ES Module (https://github.com/facebook/jest/pull/7571#issuecomment-498634094) -/* global jest */ -export default jest -export const { expect, test, describe, it } = global diff --git a/test-utils/window-resizeTo.js b/test-utils/window-resizeTo.js deleted file mode 100644 index 3366650..0000000 --- a/test-utils/window-resizeTo.js +++ /dev/null @@ -1,10 +0,0 @@ -// polyfill window.resizeTo in jsdom environment -// https://spectrum.chat/testing-library/help-react/how-to-set-window-innerwidth-to-test-mobile~70aa9572-b7cc-4397-92f5-a09d75ed24b8?m=MTU1OTU5MTI2MTI0MQ== -window.resizeTo = function resizeTo (width, height) { - Object.assign(window, { - innerWidth: width, - innerHeight: height, - outerWidth: width, - outerHeight: height - }).dispatchEvent(new window.Event('resize')) -} diff --git a/test-utils/configure-enzyme.js b/test/config/configure-enzyme.js similarity index 100% rename from test-utils/configure-enzyme.js rename to test/config/configure-enzyme.js diff --git a/test-utils/fixtures.js b/test/fixtures.js similarity index 100% rename from test-utils/fixtures.js rename to test/fixtures.js diff --git a/src/index.spec.js b/test/index.spec.js similarity index 97% rename from src/index.spec.js rename to test/index.spec.js index 2bb58c1..f21f65c 100644 --- a/src/index.spec.js +++ b/test/index.spec.js @@ -1,9 +1,9 @@ -import jest, { describe, it, test, expect } from 'jest' +import { jest, describe, it, test, expect } from 'jest-without-globals' import { mount } from 'enzyme' import React from 'react' -import SignatureCanvas from './index.js' -import { propsF, dotF } from '../test-utils/fixtures.js' +import SignatureCanvas from '../src/index.js' +import { propsF, dotF } from './fixtures.js' test('mounts canvas and instance properly', () => { const wrapper = mount()