diff --git a/client/package-lock.json b/client/package-lock.json index c3e28bb9e3..15bfc69d26 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -2030,9 +2030,9 @@ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" }, "@testing-library/dom": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.8.1.tgz", - "integrity": "sha512-b+Q4wryafqsSTFBV14cc5xqhN/OVB9oMeUQvZwy1kVx+kdqs4zQAcyvCsFkdcqx7NxibWpUN/fBIUaqyAEhitw==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.10.1.tgz", + "integrity": "sha512-5BPKxaO+zSJDUbVZBRNf9KrmDkm/EcjjaHSg3F9+031VZyPACKXlwLBjVzZxheunT9m72DoIq7WvyE457/Xweg==", "dev": true, "requires": { "@babel/runtime": "^7.6.2", @@ -2044,9 +2044,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", - "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.2.tgz", + "integrity": "sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==", "dev": true, "requires": { "regenerator-runtime": "^0.13.2" @@ -2097,9 +2097,9 @@ } }, "react-is": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", - "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==", + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.11.0.tgz", + "integrity": "sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw==", "dev": true }, "regenerator-runtime": { @@ -2170,9 +2170,9 @@ } }, "@testing-library/react": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.3.0.tgz", - "integrity": "sha512-FTPCwmLo0tLtP50Au2uGz4/N1BcJTnBx4StDVHZ47zPMEj1/+J2rk/RTj8SLoHRKWCtcmhN4wRmudOXQNP29/w==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.3.2.tgz", + "integrity": "sha512-J6ftWtm218tOLS175MF9eWCxGp+X+cUXCpkPIin8KAXWtyZbr9CbqJ8M8QNd6spZxJDAGlw+leLG4MJWLlqVgg==", "dev": true, "requires": { "@babel/runtime": "^7.6.0", @@ -2181,9 +2181,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", - "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.2.tgz", + "integrity": "sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==", "dev": true, "requires": { "regenerator-runtime": "^0.13.2" @@ -2365,9 +2365,9 @@ } }, "@types/react-dom": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.2.tgz", - "integrity": "sha512-hgPbBoI1aTSTvZwo8HYw35UaTldW6n2ETLvHAcfcg1FaOuBV3olmyCe5eMpx2WybWMBPv0MdU2t5GOcQhP+3zA==", + "version": "16.9.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.4.tgz", + "integrity": "sha512-fya9xteU/n90tda0s+FtN5Ym4tbgxpq/hb/Af24dvs6uYnYn+fspaxw5USlw0R8apDNwxsqumdRoCoKitckQqw==", "dev": true, "requires": { "@types/react": "*" @@ -2385,9 +2385,9 @@ "integrity": "sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ==" }, "@types/testing-library__dom": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.5.3.tgz", - "integrity": "sha512-E/LSnbzo25gCLy/YOHKY9KJ+rfI8hy5cfbScyZqVuFw9CUMn1faWEDnxMcVHgjAbWtTStfllB8TwNKCx8bAKeA==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.10.0.tgz", + "integrity": "sha512-mL/GMlyQxiZplbUuFNwA0vAI3k3uJNSf6slr5AVve9TXmfLfyefNT0uHHnxwdYuPMxYD5gI/+dgAvc/5opW9JQ==", "dev": true, "requires": { "pretty-format": "^24.3.0" @@ -2925,17 +2925,6 @@ "react-is": "^16.9.0" }, "dependencies": { - "function.prototype.name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.1.tgz", - "integrity": "sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1", - "functions-have-names": "^1.1.1", - "is-callable": "^1.1.4" - } - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -2955,9 +2944,9 @@ } }, "react-is": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", - "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==" + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.11.0.tgz", + "integrity": "sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw==" } } }, @@ -3226,9 +3215,9 @@ }, "dependencies": { "es-abstract": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz", - "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", "requires": { "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", @@ -3268,13 +3257,55 @@ } }, "array.prototype.flat": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz", - "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.2.tgz", + "integrity": "sha512-VXjh7lAL4KXKF2hY4FnEW9eRW6IhdvFW1sN/JwLbmECbCgACCnBHNyP3lFiYuttr0jxRN9Bsc5+G27dMseSWqQ==", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.15.0", "function-bind": "^1.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "requires": { + "has-symbols": "^1.0.0" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + } } }, "arraybuffer.slice": { @@ -7231,9 +7262,9 @@ } }, "react-is": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", - "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==" + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.11.0.tgz", + "integrity": "sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw==" }, "semver": { "version": "5.7.1", @@ -7255,17 +7286,6 @@ "semver": "^5.7.0" }, "dependencies": { - "function.prototype.name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.1.tgz", - "integrity": "sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1", - "functions-have-names": "^1.1.1", - "is-callable": "^1.1.4" - } - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -7285,9 +7305,9 @@ } }, "react-is": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", - "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==" + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.11.0.tgz", + "integrity": "sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw==" }, "semver": { "version": "5.7.1", @@ -9267,13 +9287,14 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz", - "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.1.tgz", + "integrity": "sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q==", "requires": { - "define-properties": "^1.1.2", + "define-properties": "^1.1.3", "function-bind": "^1.1.1", - "is-callable": "^1.1.3" + "functions-have-names": "^1.1.1", + "is-callable": "^1.1.4" } }, "functional-red-black-tree": { @@ -9282,9 +9303,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "functions-have-names": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.1.1.tgz", - "integrity": "sha512-U0kNHUoxwPNPWOJaMG7Z00d4a/qZVrFtzWJRaK8V9goaVOCXBSQSJpt3MYGNtkScKEBKovxLjnNdC9MlXwo5Pw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.0.tgz", + "integrity": "sha512-zKXyzksTeaCSw5wIX79iCA40YAa6CJMJgNg9wdkU/ERBrIdPSimPICYiLp65lRbSBqtiHql/HZfS2DyI/AH6tQ==" }, "gatsby": { "version": "2.16.4", @@ -11678,9 +11699,9 @@ "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==" }, "handlebars": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.3.1.tgz", - "integrity": "sha512-c0HoNHzDiHpBt4Kqe99N8tdLPKAnGCQ73gYMPWtAYM4PwGnf7xl8PBUHJqh9ijlzt2uQKaSRxbXRt+rZ7M2/kA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", + "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -12000,9 +12021,9 @@ "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" }, "html-element-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.0.1.tgz", - "integrity": "sha512-BZSfdEm6n706/lBfXKWa4frZRZcT5k1cOusw95ijZsHlI+GdgY0v95h6IzO3iIDf2ROwq570YTwqNPqHcNMozw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.1.0.tgz", + "integrity": "sha512-iqiG3dTZmy+uUaTmHarTL+3/A2VW9ox/9uasKEZC+R/wAtUrTcRlXPSaPqsnWPfIu8wqn09jQNwMRqzL54jSYA==", "requires": { "array-filter": "^1.0.0" } @@ -16062,9 +16083,9 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "nearley": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.16.0.tgz", - "integrity": "sha512-Tr9XD3Vt/EujXbZBv6UAHYoLUSMQAxSsTnm9K3koXzjzNWY195NqALeyrzLZBKzAkL3gl92BcSogqrHjD8QuUg==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.19.0.tgz", + "integrity": "sha512-2v52FTw7RPqieZr3Gth1luAXZR7Je6q3KaDHY5bjl/paDUdMu35fZ8ICNgiYJRr3tf3NMvIQQR1r27AvEr9CRA==", "requires": { "commander": "^2.19.0", "moo": "^0.4.3", @@ -21071,13 +21092,55 @@ } }, "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz", + "integrity": "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.13.0", + "function-bind": "^1.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "requires": { + "has-symbols": "^1.0.0" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + } } }, "string.prototype.trimleft": { @@ -21917,20 +21980,20 @@ "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" }, "uglify-js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", - "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "version": "3.6.8", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.8.tgz", + "integrity": "sha512-XhHJ3S3ZyMwP8kY1Gkugqx3CJh2C3O0y8NPiSxtm1tyD/pktLAkFZsFGpuNfTZddKDQ/bbDBLAd2YyA1pbi8HQ==", "dev": true, "optional": true, "requires": { - "commander": "~2.20.0", + "commander": "~2.20.3", "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "optional": true }, @@ -22480,9 +22543,9 @@ } }, "wait-for-expect": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.0.tgz", - "integrity": "sha512-9LyJL+MugZdcQn5V9PBSEC4d2UPTy1xX2U9wTc6LvG/18qeeYqdE/CgmAQJxc/Vcjs+VzH+wiyIXxz05F3nrpQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.1.tgz", + "integrity": "sha512-3Ha7lu+zshEG/CeHdcpmQsZnnZpPj/UsG3DuKO8FskjuDbkx3jE3845H+CuwZjA2YWYDfKMU2KhnCaXMLd3wVw==", "dev": true }, "walker": { diff --git a/client/package.json b/client/package.json index bc606d2d42..da0041e8f4 100644 --- a/client/package.json +++ b/client/package.json @@ -95,7 +95,7 @@ }, "devDependencies": { "@testing-library/jest-dom": "^4.1.2", - "@testing-library/react": "^9.3.0", + "@testing-library/react": "^9.3.2", "autoprefixer": "^9.6.5", "babel-plugin-transform-imports": "^1.5.1", "chokidar": "^2.1.5", diff --git a/client/src/client/frame-runner.js b/client/src/client/frame-runner.js index 9ca9e2dae7..16da84efca 100644 --- a/client/src/client/frame-runner.js +++ b/client/src/client/frame-runner.js @@ -40,11 +40,13 @@ async function initTestFrame(e = {}) { if (e.loadEnzyme) { let Adapter16; /* eslint-disable no-inline-comments */ + [{ default: Enzyme }, { default: Adapter16 }] = await Promise.all([ import(/* webpackChunkName: "enzyme" */ 'enzyme'), import(/* webpackChunkName: "enzyme-adapter" */ 'enzyme-adapter-react-16') ]); /* eslint-enable no-inline-comments */ + Enzyme.configure({ adapter: new Adapter16() }); } diff --git a/client/src/components/Map/Map.test.js b/client/src/components/Map/Map.test.js index 9120db41f0..6e9367bb8b 100644 --- a/client/src/components/Map/Map.test.js +++ b/client/src/components/Map/Map.test.js @@ -1,9 +1,10 @@ /* global expect jest */ +import '@testing-library/jest-dom/extend-expect'; import React from 'react'; -import ShallowRenderer from 'react-test-renderer/shallow'; -import Enzyme, { shallow } from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; +import { render } from '@testing-library/react'; +import { Provider } from 'react-redux'; +import { createStore } from '../../redux/createStore'; import { Map } from './'; import mockChallengeNodes from '../../__mocks__/challenge-nodes'; @@ -11,8 +12,9 @@ import mockIntroNodes from '../../__mocks__/intro-nodes'; import { dasherize } from '../../../../utils/slugs'; -Enzyme.configure({ adapter: new Adapter() }); -const renderer = new ShallowRenderer(); +function renderWithRedux(ui) { + return render({ui}); +} const baseProps = { introNodes: mockIntroNodes, @@ -27,7 +29,7 @@ const baseProps = { window.scrollTo = jest.fn(); test(' snapshot', () => { - const componentToRender = ( + const { container } = renderWithRedux( snapshot', () => { toggleSuperBlock={() => {}} /> ); - const component = renderer.render(componentToRender); - expect(component).toMatchSnapshot('Map'); + + expect(container).toMatchSnapshot('Map'); }); describe('', () => { @@ -61,8 +63,9 @@ describe('', () => { toggleBlock: blockSpy, toggleSuperBlock: superSpy }; - const mapToRender = ; - shallow(mapToRender); + + renderWithRedux(); + expect(blockSpy).toHaveBeenCalledTimes(1); expect(superSpy).toHaveBeenCalledTimes(1); expect(initializeSpy).toHaveBeenCalledTimes(1); @@ -80,8 +83,7 @@ describe('', () => { currentChallengeId }; - const mapToRender = ; - shallow(mapToRender); + renderWithRedux(); expect(blockSpy).toHaveBeenCalledTimes(1); // the block here should always be the first block of the superblock @@ -102,8 +104,7 @@ describe('', () => { currentChallengeId }; - const mapToRender = ; - shallow(mapToRender); + renderWithRedux(); expect(blockSpy).toHaveBeenCalledTimes(1); expect(blockSpy).toHaveBeenCalledWith(idNode.block); @@ -120,8 +121,9 @@ describe('', () => { toggleBlock: blockSpy, toggleSuperBlock: superSpy }; - const mapToRender = ; - shallow(mapToRender); + + renderWithRedux(); + expect(blockSpy).toHaveBeenCalledTimes(1); expect(blockSpy).toHaveBeenCalledWith(defaultNode.block); @@ -135,8 +137,9 @@ describe('', () => { ...baseProps, resetExpansion: expansionSpy }; - const mapToRender = ; - shallow(mapToRender); + + renderWithRedux(); + expect(expansionSpy).toHaveBeenCalledTimes(1); }); }); diff --git a/client/src/components/Map/__snapshots__/Map.test.js.snap b/client/src/components/Map/__snapshots__/Map.test.js.snap index f145b8a26b..f5c5e1140b 100644 --- a/client/src/components/Map/__snapshots__/Map.test.js.snap +++ b/client/src/components/Map/__snapshots__/Map.test.js.snap @@ -1,567 +1,93 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` snapshot: Map 1`] = ` - - + - - - - - - + + + + + + + + + Super Block One Certification (300 hours) + + + + + + + + + + Super Block Two Certification (300 hours) + + + + + + + + + + Super Block Three Certification (300 hours) + + + + + + - - + + `; diff --git a/client/src/components/Map/components/Block.test.js b/client/src/components/Map/components/Block.test.js index 9c2861af74..1c8ef63ee0 100644 --- a/client/src/components/Map/components/Block.test.js +++ b/client/src/components/Map/components/Block.test.js @@ -1,61 +1,50 @@ -/* global expect */ +/* global jest, expect */ +import '@testing-library/jest-dom/extend-expect'; import React from 'react'; -import ShallowRenderer from 'react-test-renderer/shallow'; -import Enzyme from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; -import sinon from 'sinon'; +import { render, fireEvent } from '@testing-library/react'; import { Block } from './Block'; import mockChallengeNodes from '../../../__mocks__/challenge-nodes'; import mockIntroNodes from '../../../__mocks__/intro-nodes'; import mockCompleted from '../../../__mocks__/completedChallengesMock'; -Enzyme.configure({ adapter: new Adapter() }); -const renderer = new ShallowRenderer(); - test(' not expanded snapshot', () => { - const toggleSpy = sinon.spy(); - const toggleMapSpy = sinon.spy(); - const componentToRender = ( + const { container } = render( node.block === 'block-a')} completedChallenges={mockCompleted} intro={mockIntroNodes[0]} isExpanded={false} - toggleBlock={toggleSpy} - toggleMapModal={toggleMapSpy} + toggleBlock={() => {}} + toggleMapModal={() => {}} /> ); - const component = renderer.render(componentToRender); - expect(component).toMatchSnapshot('block-not-expanded'); + expect(container).toMatchSnapshot('block-not-expanded'); }); test(' { - const toggleSpy = sinon.spy(); - const toggleMapSpy = sinon.spy(); - const componentToRender = ( + const { container } = render( node.block === 'block-a')} completedChallenges={mockCompleted} intro={mockIntroNodes[0]} isExpanded={true} - toggleBlock={toggleSpy} - toggleMapModal={toggleMapSpy} + toggleBlock={() => {}} + toggleMapModal={() => {}} /> ); - const component = renderer.render(componentToRender); - - expect(component).toMatchSnapshot('block-expanded'); + expect(container).toMatchSnapshot('block-expanded'); }); -test(' should handle toggle clicks correctly', () => { - const toggleSpy = sinon.spy(); - const toggleMapSpy = sinon.spy(); +test(' should handle toggle clicks correctly', async () => { + const toggleSpy = jest.fn(); + const toggleMapSpy = jest.fn(); + const props = { blockDashedName: 'block-a', challenges: mockChallengeNodes.filter(node => node.block === 'block-a'), @@ -66,30 +55,21 @@ test(' should handle toggle clicks correctly', () => { toggleMapModal: toggleMapSpy }; - const componentToRender = ; + const { container, rerender } = render(); - const enzymeWrapper = Enzyme.shallow(componentToRender); + expect(toggleSpy).not.toHaveBeenCalled(); + expect(container.querySelector('.map-title h4')).toHaveTextContent('Block A'); + expect(container.querySelector('ul').children.length).toBe(0); - expect(toggleSpy.called).toBe(false); - expect( - enzymeWrapper - .find('.map-title') - .find('h4') - .text() - ).toBe('Block A'); + fireEvent.click(container.querySelector('.map-title')); - enzymeWrapper.find('.map-title').simulate('click'); + expect(toggleSpy).toHaveBeenCalledTimes(1); + expect(toggleSpy).toHaveBeenCalledWith('block-a'); - expect(toggleSpy.called).toBe(true); - expect(toggleSpy.calledWithExactly('block-a')).toBe(true); + rerender(); - enzymeWrapper.setProps({ ...props, isExpanded: true }); - - expect( - enzymeWrapper - .find('.map-title') - .find('h4') - .text() - ).toBe('Block A'); - expect(enzymeWrapper.find('ul').length).toBe(1); + expect(container.querySelector('.map-title h4')).toHaveTextContent('Block A'); + expect(container.querySelector('ul').children.length).toBe( + props.challenges.length + (props.intro ? 1 : 0) + ); }); diff --git a/client/src/components/Map/components/SuperBlock.test.js b/client/src/components/Map/components/SuperBlock.test.js index c3f25c81a5..e91853597f 100644 --- a/client/src/components/Map/components/SuperBlock.test.js +++ b/client/src/components/Map/components/SuperBlock.test.js @@ -1,50 +1,49 @@ -/* global expect */ +/* global jest, expect */ +import '@testing-library/jest-dom/extend-expect'; import React from 'react'; -import ShallowRenderer from 'react-test-renderer/shallow'; -import Enzyme from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; -import sinon from 'sinon'; +import { render, fireEvent } from '@testing-library/react'; +import { Provider } from 'react-redux'; +import { createStore } from '../../../redux/createStore'; import { SuperBlock } from './SuperBlock'; import mockChallengeNodes from '../../../__mocks__/challenge-nodes'; import mockIntroNodes from '../../../__mocks__/intro-nodes'; -Enzyme.configure({ adapter: new Adapter() }); -const renderer = new ShallowRenderer(); +function renderWithRedux(ui) { + return render({ui}); +} test(' not expanded snapshot', () => { - const toggleSpy = sinon.spy(); const props = { introNodes: mockIntroNodes, isExpanded: false, nodes: mockChallengeNodes, superBlock: 'Super Block One', - toggleSuperBlock: toggleSpy + toggleSuperBlock: () => {} }; - const componentToRender = ; - const component = renderer.render(componentToRender); - expect(component).toMatchSnapshot('superBlock-not-expanded'); + const { container } = render(); + + expect(container).toMatchSnapshot('superBlock-not-expanded'); }); test(' expanded snapshot', () => { - const toggleSpy = sinon.spy(); const props = { introNodes: mockIntroNodes, isExpanded: true, nodes: mockChallengeNodes, superBlock: 'Super Block One', - toggleSuperBlock: toggleSpy + toggleSuperBlock: () => {} }; - const componentToRender = ; - const component = renderer.render(componentToRender); - expect(component).toMatchSnapshot('superBlock-expanded'); + const { container } = renderWithRedux(); + + expect(container).toMatchSnapshot('superBlock-expanded'); }); test(' { - const toggleSpy = sinon.spy(); + const toggleSpy = jest.fn(); const props = { introNodes: mockIntroNodes, isExpanded: false, @@ -52,30 +51,25 @@ test(' { superBlock: 'Super Block One', toggleSuperBlock: toggleSpy }; - const componentToRender = ; - const enzymeWrapper = Enzyme.shallow(componentToRender); - expect(toggleSpy.called).toBe(false); - expect( - enzymeWrapper - .find('.map-title') - .find('h4') - .text() - ).toBe('Super Block One Certification (300\xa0hours)'); - expect(enzymeWrapper.find('ul').length).toBe(0); + const { container, rerender } = renderWithRedux(); - enzymeWrapper.find('.map-title').simulate('click'); + expect(toggleSpy).not.toHaveBeenCalled(); + expect(container.querySelector('.map-title h4')).toHaveTextContent( + 'Super Block One Certification (300 hours)' + ); + expect(container.querySelector('ul')).not.toBeInTheDocument(); - expect(toggleSpy.called).toBe(true); - expect(toggleSpy.calledWithExactly('Super Block One')).toBe(true); + fireEvent.click(container.querySelector('.map-title')); - enzymeWrapper.setProps({ ...props, isExpanded: true }); + expect(toggleSpy).toHaveBeenCalledTimes(1); + expect(toggleSpy).toHaveBeenCalledWith('Super Block One'); - expect( - enzymeWrapper - .find('.map-title') - .find('h4') - .text() - ).toBe('Super Block One Certification (300\xa0hours)'); - expect(enzymeWrapper.find('ul').length).toBe(1); + rerender( + + + + ); + + expect(container.querySelector('ul')).toBeInTheDocument(); }); diff --git a/client/src/components/Map/components/__snapshots__/Block.test.js.snap b/client/src/components/Map/components/__snapshots__/Block.test.js.snap index 29ecfbfe91..7fcfa27197 100644 --- a/client/src/components/Map/components/__snapshots__/Block.test.js.snap +++ b/client/src/components/Map/components/__snapshots__/Block.test.js.snap @@ -1,218 +1,449 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` not expanded snapshot: block-not-expanded 1`] = ` - - + - - - Block A - - - - + - - - 2/5 - - - - - + + + Block A + + + + + Not Passed + + + + + Not Passed + + + + + + + 2/5 + + + + + + `; exports[` - + - - - Block A - - - - + - - - 2/5 - - - - - - + + Block A + + - - - + + Not Passed + + + + + Not Passed + + + + + + + 2/5 + + + + + - Introduction to Block A - - - - + + IntroInformation + + + + + IntroInformation + + + + + + + + Introduction to Block A + + + - - - + + Passed + + + + + Passed + + + + + + + + + Challenge One + + + - Challenge One - - - - + + Not Passed + + + + + Not Passed + + + + + + + Challenge Two + + + - - - + + Not Passed + + + + + Not Passed + + + + + + + Challenge One + + + - Challenge Two - - - - + + Passed + + + + + Passed + + + + + + + + + Challenge Two + + + - - - - Challenge One - - - - - - - - Challenge Two - - - - - - - - Challenge One - - - - + + + Not Passed + + + + + Not Passed + + + + + + + Challenge One + + + + + `; diff --git a/client/src/components/Map/components/__snapshots__/SuperBlock.test.js.snap b/client/src/components/Map/components/__snapshots__/SuperBlock.test.js.snap index ac74c8c7e8..28f65dc61d 100644 --- a/client/src/components/Map/components/__snapshots__/SuperBlock.test.js.snap +++ b/client/src/components/Map/components/__snapshots__/SuperBlock.test.js.snap @@ -1,158 +1,242 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` expanded snapshot: superBlock-expanded 1`] = ` - - + - - - Super Block One Certification (300 hours) - - - - - - - - + + + + + + Super Block One Certification (300 hours) + + + + + + + + + + Block A + + + + + Not Passed + + + + + Not Passed + + + + + + + 0/2 + + + + + + + + + + + + Block B + + + + + Not Passed + + + + + Not Passed + + + + + + + 0/2 + + + + + + + + + + + + Block C + + + + + Not Passed + + + + + Not Passed + + + + + + + 0/1 + + + + + + + + `; exports[` not expanded snapshot: superBlock-not-expanded 1`] = ` - - + - - - Super Block One Certification (300 hours) - - - + + + + + + Super Block One Certification (300 hours) + + + + `; diff --git a/client/src/components/formHelpers/BlockSaveButton.test.js b/client/src/components/formHelpers/BlockSaveButton.test.js index a15c60d105..ddbdb3a9f5 100644 --- a/client/src/components/formHelpers/BlockSaveButton.test.js +++ b/client/src/components/formHelpers/BlockSaveButton.test.js @@ -1,30 +1,26 @@ /* global expect */ +import '@testing-library/jest-dom/extend-expect'; import React from 'react'; -import renderer from 'react-test-renderer'; -import Enzyme from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; +import { render } from '@testing-library/react'; import BlockSaveButton from './BlockSaveButton'; -Enzyme.configure({ adapter: new Adapter() }); - test(' snapshot', () => { - const component = renderer.create(); - let tree = component.toJSON(); - expect(tree).toMatchSnapshot(); + const { container } = render(); + + expect(container).toMatchSnapshot(); }); test('Button text should default to "Save"', () => { - const enzymeWrapper = Enzyme.render(); + const { getByRole } = render(); - expect(enzymeWrapper.text()).toBe('Save'); + expect(getByRole('button')).toHaveTextContent('Save'); }); test('Button text should match "children"', () => { - const enzymeWrapper = Enzyme.render( - My Text Here - ); + const testText = 'My Text Here'; + const { getByRole } = render({testText}); - expect(enzymeWrapper.text()).toBe('My Text Here'); + expect(getByRole('button')).toHaveTextContent(testText); }); diff --git a/client/src/components/formHelpers/BlockSaveWrapper.test.js b/client/src/components/formHelpers/BlockSaveWrapper.test.js index 535ddca0b5..0c8020797c 100644 --- a/client/src/components/formHelpers/BlockSaveWrapper.test.js +++ b/client/src/components/formHelpers/BlockSaveWrapper.test.js @@ -1,16 +1,12 @@ /* global expect */ import React from 'react'; -import renderer from 'react-test-renderer'; -import Enzyme from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; +import { render } from '@testing-library/react'; import BlockSaveWrapper from './BlockSaveWrapper'; -Enzyme.configure({ adapter: new Adapter() }); - test(' snapshot', () => { - const component = renderer.create(); - let tree = component.toJSON(); - expect(tree).toMatchSnapshot(); + const { container } = render(); + + expect(container).toMatchSnapshot(); }); diff --git a/client/src/components/formHelpers/__snapshots__/BlockSaveButton.test.js.snap b/client/src/components/formHelpers/__snapshots__/BlockSaveButton.test.js.snap index b55c920134..c9c06de6db 100644 --- a/client/src/components/formHelpers/__snapshots__/BlockSaveButton.test.js.snap +++ b/client/src/components/formHelpers/__snapshots__/BlockSaveButton.test.js.snap @@ -1,11 +1,12 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` snapshot 1`] = ` - - Save - + + + Save + + `; diff --git a/client/src/components/formHelpers/__snapshots__/BlockSaveWrapper.test.js.snap b/client/src/components/formHelpers/__snapshots__/BlockSaveWrapper.test.js.snap index 5cd8a7cdf7..b088aec7c3 100644 --- a/client/src/components/formHelpers/__snapshots__/BlockSaveWrapper.test.js.snap +++ b/client/src/components/formHelpers/__snapshots__/BlockSaveWrapper.test.js.snap @@ -1,11 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` snapshot 1`] = ` - + + + `; diff --git a/client/src/components/profile/Profile.test.js b/client/src/components/profile/Profile.test.js index 768bcda955..efded2790e 100644 --- a/client/src/components/profile/Profile.test.js +++ b/client/src/components/profile/Profile.test.js @@ -1,15 +1,11 @@ /* global expect */ +import '@testing-library/jest-dom/extend-expect'; import React from 'react'; -import Enzyme, { shallow } from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; -import Link from '../helpers/Link'; -import renderer from 'react-test-renderer'; +import { render } from '@testing-library/react'; import Profile from './Profile'; -Enzyme.configure({ adapter: new Adapter() }); - const userProps = { user: { profileUI: { @@ -45,7 +41,8 @@ const userProps = { username: 'string', website: 'string', yearsTopContributor: [] - } + }, + navigate: () => {} }; const myProfileProps = { @@ -60,29 +57,26 @@ const notMyProfileProps = { describe('', () => { it('renders the settings button on your own profile', () => { - const profileToRender = ; - const profile = shallow(profileToRender); - expect( - profile - .find(Link) - .first() - .prop('to') - ).toBe('/settings'); + const { getByText } = render(); + + expect(getByText('Update my settings')).toHaveAttribute( + 'href', + '/settings' + ); }); it('renders the report button on another persons profile', () => { - const profileToRender = ; - const profile = shallow(profileToRender); - expect( - profile - .find(Link) - .first() - .prop('to') - ).toBe('/user/string/report-user'); + const { getByText } = render(); + + expect(getByText('Report This User')).toHaveAttribute( + 'href', + '/user/string/report-user' + ); }); it('renders correctly', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + const { container } = render(); + + expect(container).toMatchSnapshot(); }); }); diff --git a/client/src/components/profile/__snapshots__/Profile.test.js.snap b/client/src/components/profile/__snapshots__/Profile.test.js.snap index df36f548fa..baab4753aa 100644 --- a/client/src/components/profile/__snapshots__/Profile.test.js.snap +++ b/client/src/components/profile/__snapshots__/Profile.test.js.snap @@ -1,47 +1,37 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` renders correctly 1`] = ` -Array [ + , + class="spacer" + style="padding: 15px 0px; height: 1px;" + /> @@ -75,19 +63,17 @@ Array [ > @@ -99,19 +85,17 @@ Array [ > @@ -123,19 +107,17 @@ Array [ > @@ -143,7 +125,7 @@ Array [ @ string @@ -151,16 +133,11 @@ Array [ - , -] + + `; diff --git a/client/src/components/settings/Certification.test.js b/client/src/components/settings/Certification.test.js index 3d92157e91..9e0ef74850 100644 --- a/client/src/components/settings/Certification.test.js +++ b/client/src/components/settings/Certification.test.js @@ -1,49 +1,57 @@ /* global expect */ + +import '@testing-library/jest-dom/extend-expect'; import React from 'react'; -import Enzyme from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; +import { render } from '@testing-library/react'; import { CertificationSettings } from './Certification'; -Enzyme.configure({ adapter: new Adapter() }); - describe('', () => { // shallow rendering does not render children component // form buttons are not included in shallow render it('Should render show cert button for calimed legacy cert', () => { - const wrapper = Enzyme.shallow( + const { container } = render( ); expect( - wrapper.find('#button-legacy-data-visualization').props().children - ).toEqual('Show Certification'); + container.querySelector('#button-legacy-data-visualization') + ).toHaveTextContent('Show Certification'); }); it('Should link show cert button to the calimed legacy cert', () => { - const wrapper = Enzyme.shallow( + const { container } = render( ); expect( - wrapper.find('#button-legacy-data-visualization').props().href - ).toEqual('/certification/developementuser/legacy-data-visualization'); + container.querySelector('#button-legacy-data-visualization') + ).toHaveAttribute( + 'href', + '/certification/developementuser/legacy-data-visualization' + ); }); // full forms with unclaimed certs should should not shallow render button it('Should not render show cert button for unclaimed full form', () => { - const wrapper = Enzyme.shallow( + const { container } = render( ); - expect(wrapper.exists('#button-legacy-back-end')).toEqual(false); + + expect( + container.querySelector('#button-legacy-back-end') + ).not.toBeInTheDocument(); }); // empty forms with unclaimed certs should should not shallow render button it('Should not render show cert button for empty form', () => { - const wrapper = Enzyme.shallow( + const { container } = render( ); - expect(wrapper.exists('#button-legacy-front-end')).toEqual(false); + + expect( + container.querySelector('#button-legacy-front-end') + ).not.toBeInTheDocument(); }); }); diff --git a/package-lock.json b/package-lock.json index 88b0224d9a..3bee01e664 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5313,7 +5313,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -5334,12 +5335,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5354,17 +5357,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -5481,7 +5487,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -5493,6 +5500,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5507,6 +5515,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5514,12 +5523,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5538,6 +5549,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5618,7 +5630,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5630,6 +5643,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -5715,7 +5729,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5751,6 +5766,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5770,6 +5786,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5813,12 +5830,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } },