diff --git a/package-lock.json b/package-lock.json
index 347944139..fe3cd5f11 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1602,12 +1602,6 @@
"dev": true,
"optional": true
},
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
- "dev": true
- },
"brace-expansion": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
@@ -1765,31 +1759,6 @@
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
"dev": true
},
- "cheerio": {
- "version": "1.0.0-rc.2",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
- "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
- "dev": true,
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash": "^4.15.0",
- "parse5": "^3.0.1"
- },
- "dependencies": {
- "parse5": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
- "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- }
- }
- },
"chokidar": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
@@ -1933,12 +1902,6 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
- "colors": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
- "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
- "dev": true
- },
"combined-stream": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
@@ -2095,24 +2058,29 @@
"which": "^1.2.9"
}
},
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "css": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz",
+ "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==",
"dev": true,
"requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
+ "inherits": "^2.0.1",
+ "source-map": "^0.1.38",
+ "source-map-resolve": "^0.5.1",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
}
},
- "css-what": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
- "dev": true
- },
"cssom": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
@@ -2313,12 +2281,6 @@
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
- "discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
- "dev": true
- },
"doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -2328,30 +2290,50 @@
"esutils": "^2.0.2"
}
},
- "dom-serializer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dom-testing-library": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/dom-testing-library/-/dom-testing-library-3.3.0.tgz",
+ "integrity": "sha512-on5xM8U+UszlUAmdHVzUnjNIRxM57Sv2k25YFjUcG+aUktYwQG2LJ0HTe8yBkL0Yyfi3iS9xpHRw0y87O+imbA==",
"dev": true,
"requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
+ "mutationobserver-shim": "^0.3.2",
+ "pretty-format": "^22.4.3",
+ "wait-for-expect": "^0.4.0"
},
"dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ },
+ "wait-for-expect": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-0.4.0.tgz",
+ "integrity": "sha512-itHoJUKL5P8abjhWRlp3F5QLDY7LokcJkgD78tjrX08ozBakfy9YD4bgxUVuSld8yqjza3ld6Sj7UMMOH/twFA==",
"dev": true
}
}
},
- "domelementtype": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
- "dev": true
- },
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -2361,25 +2343,6 @@
"webidl-conversions": "^4.0.2"
}
},
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
"ecc-jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
@@ -2398,61 +2361,6 @@
"iconv-lite": "~0.4.13"
}
},
- "entities": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
- "dev": true
- },
- "enzyme": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.3.0.tgz",
- "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==",
- "dev": true,
- "requires": {
- "cheerio": "^1.0.0-rc.2",
- "function.prototype.name": "^1.0.3",
- "has": "^1.0.1",
- "is-boolean-object": "^1.0.0",
- "is-callable": "^1.1.3",
- "is-number-object": "^1.0.3",
- "is-string": "^1.0.4",
- "is-subset": "^0.1.1",
- "lodash": "^4.17.4",
- "object-inspect": "^1.5.0",
- "object-is": "^1.0.1",
- "object.assign": "^4.1.0",
- "object.entries": "^1.0.4",
- "object.values": "^1.0.4",
- "raf": "^3.4.0",
- "rst-selector-parser": "^2.2.3"
- }
- },
- "enzyme-adapter-react-16": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz",
- "integrity": "sha512-kC8pAtU2Jk3OJ0EG8Y2813dg9Ol0TXi7UNxHzHiWs30Jo/hj7alc//G1YpKUsPP1oKl9X+Lkx+WlGJpPYA+nvw==",
- "dev": true,
- "requires": {
- "enzyme-adapter-utils": "^1.3.0",
- "lodash": "^4.17.4",
- "object.assign": "^4.0.4",
- "object.values": "^1.0.4",
- "prop-types": "^15.6.0",
- "react-reconciler": "^0.7.0",
- "react-test-renderer": "^16.0.0-0"
- }
- },
- "enzyme-adapter-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.4.0.tgz",
- "integrity": "sha512-ajvyXQYbmCoKCX/FaraNzBgXDXJBltCd0GdXfKc0DdRPYgCLaZfS6Ts576IFt8aX2GU9ajZv2g5jfcJ+Nttejw==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0",
- "prop-types": "^15.6.0"
- }
- },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -3161,8 +3069,7 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"aproba": {
"version": "1.1.1",
@@ -3228,7 +3135,6 @@
"version": "0.0.9",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"inherits": "~2.0.0"
}
@@ -3237,7 +3143,6 @@
"version": "2.10.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"hoek": "2.x.x"
}
@@ -3254,8 +3159,7 @@
"buffer-shims": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"caseless": {
"version": "0.12.0",
@@ -3272,14 +3176,12 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"combined-stream": {
"version": "1.0.5",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"delayed-stream": "~1.0.0"
}
@@ -3292,20 +3194,17 @@
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"core-util-is": {
"version": "1.0.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"cryptiles": {
"version": "2.0.5",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"boom": "2.x.x"
}
@@ -3345,8 +3244,7 @@
"delayed-stream": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"delegates": {
"version": "1.0.0",
@@ -3378,8 +3276,7 @@
"extsprintf": {
"version": "1.0.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"forever-agent": {
"version": "0.6.1",
@@ -3407,7 +3304,6 @@
"version": "1.0.11",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"graceful-fs": "^4.1.2",
"inherits": "~2.0.0",
@@ -3475,8 +3371,7 @@
"graceful-fs": {
"version": "4.1.11",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"har-schema": {
"version": "1.0.5",
@@ -3504,7 +3399,6 @@
"version": "3.1.3",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"boom": "2.x.x",
"cryptiles": "2.x.x",
@@ -3552,7 +3446,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -3566,8 +3459,7 @@
"isarray": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"isstream": {
"version": "0.1.2",
@@ -3640,14 +3532,12 @@
"mime-db": {
"version": "1.27.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"mime-types": {
"version": "2.1.15",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"mime-db": "~1.27.0"
}
@@ -3663,14 +3553,12 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"mkdirp": {
"version": "0.5.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -3725,8 +3613,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"oauth-sign": {
"version": "0.8.2",
@@ -3784,8 +3671,7 @@
"process-nextick-args": {
"version": "1.0.7",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"punycode": {
"version": "1.4.1",
@@ -3823,7 +3709,6 @@
"version": "2.2.9",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"buffer-shims": "~1.0.0",
"core-util-is": "~1.0.0",
@@ -3875,8 +3760,7 @@
"safe-buffer": {
"version": "5.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"semver": {
"version": "5.3.0",
@@ -3900,7 +3784,6 @@
"version": "1.0.9",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"hoek": "2.x.x"
}
@@ -3934,7 +3817,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -3945,7 +3827,6 @@
"version": "1.0.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"safe-buffer": "^5.0.1"
}
@@ -3960,7 +3841,6 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -3975,7 +3855,6 @@
"version": "2.2.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"block-stream": "*",
"fstream": "^1.0.2",
@@ -4031,8 +3910,7 @@
"util-deprecate": {
"version": "1.0.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"uuid": {
"version": "3.0.1",
@@ -4071,25 +3949,6 @@
"integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
"dev": true
},
- "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==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "is-callable": "^1.1.3"
- },
- "dependencies": {
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- }
- }
- },
"functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
@@ -4265,12 +4124,6 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
- },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -4361,20 +4214,6 @@
"whatwg-encoding": "^1.0.1"
}
},
- "htmlparser2": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -4433,6 +4272,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -4556,12 +4401,6 @@
"binary-extensions": "^1.0.0"
}
},
- "is-boolean-object": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz",
- "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=",
- "dev": true
- },
"is-buffer": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
@@ -4698,12 +4537,6 @@
"kind-of": "^3.0.2"
}
},
- "is-number-object": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz",
- "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=",
- "dev": true
- },
"is-path-cwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
@@ -4783,18 +4616,6 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
- "is-string": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
- "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
- "dev": true
- },
- "is-subset": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
- "dev": true
- },
"is-symbol": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
@@ -5188,6 +5009,104 @@
"detect-newline": "^2.1.0"
}
},
+ "jest-dom": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/jest-dom/-/jest-dom-1.12.0.tgz",
+ "integrity": "sha512-G8LplxieRJDOmTNJN2SzctewT9HoslclwzEW8znch98gSw5KeajIbporSqUuWHPRB8q8UQl0OI6AtUjGrNcniQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "css": "^2.2.3",
+ "jest-diff": "^22.4.3",
+ "jest-matcher-utils": "^22.4.3",
+ "pretty-format": "^23.0.1",
+ "redent": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "jest-diff": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
+ "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "diff": "^3.2.0",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
+ "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
"jest-each": {
"version": "23.4.0",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.4.0.tgz",
@@ -6050,12 +5969,6 @@
"integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==",
"dev": true
},
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
- "dev": true
- },
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -6230,18 +6143,18 @@
"minimist": "0.0.8"
}
},
- "moo": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz",
- "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
+ "mutationobserver-shim": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz",
+ "integrity": "sha1-9NXa56SXGiIHkU+1qQ69UUtlrMo=",
+ "dev": true
+ },
"mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
@@ -6300,19 +6213,6 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "nearley": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.0.tgz",
- "integrity": "sha512-ZjzdO+yBtMrRrBbr+BJ35ECla6PGCAb/6hqpBQe7bmhEJabQ4rpVdj4sadP1Z1jQGyaDmm1GciQWsGVxIZ3uJA==",
- "dev": true,
- "requires": {
- "moo": "^0.4.3",
- "nomnom": "~1.6.2",
- "railroad-diagrams": "^1.0.0",
- "randexp": "0.4.6",
- "semver": "^5.4.1"
- }
- },
"nice-try": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz",
@@ -6346,16 +6246,6 @@
"which": "^1.3.0"
}
},
- "nomnom": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz",
- "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=",
- "dev": true,
- "requires": {
- "colors": "0.5.x",
- "underscore": "~1.4.4"
- }
- },
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
@@ -6426,15 +6316,6 @@
"which": "^1.2.10"
}
},
- "nth-check": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
- "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -6480,18 +6361,6 @@
}
}
},
- "object-inspect": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
- "dev": true
- },
- "object-is": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
- "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
- "dev": true
- },
"object-keys": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
@@ -6515,38 +6384,6 @@
}
}
},
- "object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
- },
- "dependencies": {
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- }
- }
- },
- "object.entries": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
- "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"object.getownpropertydescriptors": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
@@ -6584,18 +6421,6 @@
}
}
},
- "object.values": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
- "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -6954,31 +6779,6 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
- "raf": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
- "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
- "dev": true,
- "requires": {
- "performance-now": "^2.1.0"
- }
- },
- "railroad-diagrams": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=",
- "dev": true
- },
- "randexp": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
- "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
- "requires": {
- "discontinuous-range": "1.0.0",
- "ret": "~0.1.10"
- }
- },
"randomatic": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
@@ -7044,39 +6844,19 @@
"prop-types": "^15.6.0"
}
},
- "react-is": {
- "version": "16.4.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.1.tgz",
- "integrity": "sha512-xpb0PpALlFWNw/q13A+1aHeyJyLYCg0/cCHPUA43zYluZuIPHaHL3k8OBsTgQtxqW0FhyDEMvi8fZ/+7+r4OSQ==",
- "dev": true
- },
"react-lifecycles-compat": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
- "react-reconciler": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.7.0.tgz",
- "integrity": "sha512-50JwZ3yNyMS8fchN+jjWEJOH3Oze7UmhxeoJLn2j6f3NjpfCRbcmih83XTWmzqtar/ivd5f7tvQhvvhism2fgg==",
- "dev": true,
- "requires": {
- "fbjs": "^0.8.16",
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0"
- }
- },
- "react-test-renderer": {
- "version": "16.3.2",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.3.2.tgz",
- "integrity": "sha512-lL8WHIpCTMdSe+CRkt0rfMxBkJFyhVrpdQ54BaJRIrXf9aVmbeHbRA8GFRpTvohPN5tPzMabmrzW2PUfWCfWwQ==",
+ "react-testing-library": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/react-testing-library/-/react-testing-library-5.0.0.tgz",
+ "integrity": "sha512-blIVFDHj0j2klvcrudvz8BnMJ3xoGBBh2P0R70JTvlj7uH4rd3oSKcG0BeFolfbNahv6Gz2RZ+S3WCHg/iVSZA==",
"dev": true,
"requires": {
- "fbjs": "^0.8.16",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0",
- "react-is": "^16.3.2"
+ "dom-testing-library": "^3.1.0",
+ "wait-for-expect": "^1.0.0"
}
},
"read-pkg": {
@@ -7168,6 +6948,16 @@
}
}
},
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
"redux": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz",
@@ -7559,16 +7349,6 @@
"minimatch": "^3.0.2"
}
},
- "rst-selector-parser": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz",
- "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=",
- "dev": true,
- "requires": {
- "lodash.flattendeep": "^4.4.0",
- "nearley": "^2.7.10"
- }
- },
"rsvp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
@@ -8899,6 +8679,12 @@
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
"dev": true
},
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
@@ -9494,12 +9280,6 @@
"dev": true,
"optional": true
},
- "underscore": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
- "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
- "dev": true
- },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
@@ -9680,6 +9460,12 @@
"browser-process-hrtime": "^0.1.2"
}
},
+ "wait-for-expect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-1.0.0.tgz",
+ "integrity": "sha512-I6OlPKnd4qVdKJf1Gjx9M9qQjIk29rALoUkjwIKa9pNDCdzUuJTfaNv1mtsm2QdSvF0ZQogrWJMifTN1lUeXig==",
+ "dev": true
+ },
"walker": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
diff --git a/package.json b/package.json
index 2237fee36..a597f5f18 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,7 @@
"build:umd:min": "cross-env BABEL_ENV=rollup NODE_ENV=production rollup -c -o dist/react-redux.min.js",
"build": "npm run build:commonjs && npm run build:es && npm run build:umd && npm run build:umd:min",
"clean": "rimraf lib dist es coverage",
- "lint": "eslint src test/utils test/components test/getTestDeps.js",
+ "lint": "eslint src test/utils test/components",
"prepare": "npm run clean && npm run build",
"test": "node ./test/run-tests.js",
"coverage": "codecov"
@@ -81,18 +81,17 @@
"create-react-class": "^15.6.3",
"cross-env": "^5.2.0",
"cross-spawn": "^6.0.5",
- "enzyme": "^3.3.0",
- "enzyme-adapter-react-16": "^1.1.1",
"es3ify": "^0.2.0",
"eslint": "^4.19.1",
"eslint-plugin-import": "^2.12.0",
"eslint-plugin-react": "^7.9.1",
"glob": "^7.1.1",
"jest": "^23.4.1",
+ "jest-dom": "^1.12.0",
"npm-run": "^5.0.1",
"react": "^16.3.2",
"react-dom": "^16.3.2",
- "react-test-renderer": "^16.3.2",
+ "react-testing-library": "^5.0.0",
"redux": "^4.0.0",
"rimraf": "^2.6.2",
"rollup": "^0.61.1",
diff --git a/test/components/Provider.spec.js b/test/components/Provider.spec.js
index 5c7080bf6..039d9e2a9 100644
--- a/test/components/Provider.spec.js
+++ b/test/components/Provider.spec.js
@@ -5,22 +5,28 @@ import PropTypes from 'prop-types'
import semver from 'semver'
import { createStore } from 'redux'
import { Provider, createProvider, connect } from '../../src/index.js'
-import { TestRenderer, enzyme } from '../getTestDeps.js'
+import * as rtl from 'react-testing-library'
+import 'jest-dom/extend-expect'
describe('React', () => {
describe('Provider', () => {
- const createChild = (storeKey = 'store') => {
- class Child extends Component {
- render() {
- return
- }
+ afterEach(() => rtl.cleanup())
+ const createChild = (storeKey = 'store') => {
+ class Child extends Component {
+ render() {
+ return (
+
+ {storeKey} - {this.context[storeKey] && this.context[storeKey].mine ? this.context[storeKey].mine : ''}
+
+ )
}
+ }
- Child.contextTypes = {
- [storeKey]: PropTypes.object.isRequired
- }
+ Child.contextTypes = {
+ [storeKey]: PropTypes.object.isRequired
+ }
- return Child
+ return Child
}
const Child = createChild();
@@ -34,33 +40,33 @@ describe('React', () => {
const spy = jest.spyOn(console, 'error').mockImplementation(() => {})
try {
- expect(() => enzyme.mount(
+ expect(() => rtl.render(
)).not.toThrow()
if (semver.lt(React.version, '15.0.0')) {
- expect(() => enzyme.mount(
+ expect(() => rtl.render(
)).toThrow(/children with exactly one child/)
} else {
- expect(() => enzyme.mount(
+ expect(() => rtl.render(
)).toThrow(/a single React element child/)
}
if (semver.lt(React.version, '15.0.0')) {
- expect(() => enzyme.mount(
+ expect(() => rtl.render(
)).toThrow(/children with exactly one child/)
} else {
- expect(() => enzyme.mount(
+ expect(() => rtl.render(
@@ -75,47 +81,52 @@ describe('React', () => {
it('should add the store to the child context', () => {
const store = createStore(() => ({}))
+ store.mine = 'hi'
const spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
expect(spy).toHaveBeenCalledTimes(0)
spy.mockRestore()
-
- const child = testRenderer.find(Child).instance()
- expect(child.context.store).toBe(store)
+
+ expect(tester.getByTestId('store')).toHaveTextContent('store - hi')
})
it('should add the store to the child context using a custom store key', () => {
- const store = createStore(() => ({}))
- const CustomProvider = createProvider('customStoreKey');
- const CustomChild = createChild('customStoreKey');
-
- const spy = jest.spyOn(console, 'error').mockImplementation(() => {});
- const testRenderer = enzyme.mount(
-
-
-
- )
- expect(spy).toHaveBeenCalledTimes(0)
- spy.mockRestore()
+ const store = createStore(() => ({}))
+ store.mine = 'hi'
+ const CustomProvider = createProvider('customStoreKey');
+ const CustomChild = createChild('customStoreKey');
+
+ const spy = jest.spyOn(console, 'error').mockImplementation(() => {});
+ const tester = rtl.render(
+
+
+
+ )
+ expect(spy).toHaveBeenCalledTimes(0)
+ spy.mockRestore()
- const child = testRenderer.find(CustomChild).instance()
- expect(child.context.customStoreKey).toBe(store)
+ expect(tester.getByTestId('store')).toHaveTextContent('customStoreKey - hi')
})
it('should warn once when receiving a new store in props', () => {
const store1 = createStore((state = 10) => state + 1)
+ store1.mine = '1'
const store2 = createStore((state = 10) => state * 2)
+ store2.mine = '2'
const store3 = createStore((state = 10) => state * state)
+ store3.mine = '3'
+ let externalSetState
class ProviderContainer extends Component {
constructor() {
super()
this.state = { store: store1 }
+ externalSetState = this.setState.bind(this)
}
render() {
return (
@@ -126,14 +137,13 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount()
- const child = testRenderer.find(Child).instance()
- expect(child.context.store.getState()).toEqual(11)
+ const tester = rtl.render()
+ expect(tester.getByTestId('store')).toHaveTextContent('store - 1')
let spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- testRenderer.setState({ store: store2 })
-
- expect(child.context.store.getState()).toEqual(11)
+ externalSetState({ store: store2 })
+
+ expect(tester.getByTestId('store')).toHaveTextContent('store - 1')
expect(spy).toHaveBeenCalledTimes(1)
expect(spy.mock.calls[0][0]).toBe(
' does not support changing `store` on the fly. ' +
@@ -145,9 +155,9 @@ describe('React', () => {
spy.mockRestore()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- testRenderer.setState({ store: store3 })
-
- expect(child.context.store.getState()).toEqual(11)
+ externalSetState({ store: store3 })
+
+ expect(tester.getByTestId('store')).toHaveTextContent('store - 1')
expect(spy).toHaveBeenCalledTimes(0)
spy.mockRestore()
})
@@ -168,7 +178,7 @@ describe('React', () => {
render() { return }
}
- enzyme.mount()
+ rtl.render()
expect(innerMapStateToProps).toHaveBeenCalledTimes(1)
innerStore.dispatch({ type: 'INC'})
@@ -216,7 +226,7 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
@@ -229,8 +239,8 @@ describe('React', () => {
expect(childMapStateInvokes).toBe(2)
// setState calls DOM handlers are batched
- const button = testRenderer.find('button')
- button.prop('onClick')()
+ const button = tester.getByText('change')
+ rtl.fireEvent.click(button)
expect(childMapStateInvokes).toBe(3)
// Provider uses unstable_batchedUpdates() under the hood
@@ -245,7 +255,7 @@ describe('React', () => {
const spy = jest.spyOn(console, 'error').mockImplementation(() => {})
const store = createStore(() => ({}))
- TestRenderer.create(
+ rtl.render(
diff --git a/test/components/connect.spec.js b/test/components/connect.spec.js
index 9d2c82822..3535bd8ed 100644
--- a/test/components/connect.spec.js
+++ b/test/components/connect.spec.js
@@ -6,13 +6,34 @@ import PropTypes from 'prop-types'
import ReactDOM from 'react-dom'
import { createStore } from 'redux'
import { createProvider, connect } from '../../src/index.js'
-import { TestRenderer, enzyme } from '../getTestDeps.js'
+import * as rtl from 'react-testing-library'
+import 'jest-dom/extend-expect'
describe('React', () => {
describe('connect', () => {
+ const propMapper = prop => {
+ switch (typeof prop) {
+ case 'object':
+ case 'boolean':
+ return JSON.stringify(prop)
+ case 'function':
+ if (prop.mine) {
+ return '[my function ' + prop.name + ']'
+ }
+ return '[function ' + prop.name + ']'
+ default:
+ return prop
+ }
+ }
class Passthrough extends Component {
render() {
- return
+ return (
+
+ {Object.keys(this.props).map(prop => (
+ - {propMapper(this.props[prop])}
+ ))}
+
+ )
}
}
@@ -72,24 +93,23 @@ describe('React', () => {
container.forceUpdate()
}
+ afterEach(() => rtl.cleanup())
+
it('should receive the store in the context', () => {
- const store = createStore(() => ({}))
+ const store = createStore(() => ({ hi: 'there' }))
- @connect()
+ @connect(state => state)
class Container extends Component {
render() {
return
}
}
- const testRenderer = enzyme.mount(
-
-
-
- )
+ const tester = rtl.render(
+
+ )
- const container = testRenderer.find(Container)
- expect(container.instance().context.store).toBe(store)
+ expect(tester.getByTestId('hi')).toHaveTextContent('there')
})
it('should pass state and props to the given component', () => {
@@ -99,26 +119,22 @@ describe('React', () => {
hello: 'world'
}))
- @connect(({ foo, baz }) => ({ foo, baz }))
+ @connect(({ foo, baz }) => ({ foo, baz }), {})
class Container extends Component {
render() {
return
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
- const stub = testRenderer.find(Passthrough)
- expect(stub.prop('pass')).toEqual('through')
- expect(stub.prop('foo')).toEqual('bar')
- expect(stub.prop('baz')).toEqual(42)
- expect(stub.prop('hello')).toEqual(undefined)
- expect(() =>
- testRenderer.find(Container)
- ).not.toThrow()
+ expect(tester.getByTestId('pass')).toHaveTextContent('through')
+ expect(tester.getByTestId('foo')).toHaveTextContent('bar')
+ expect(tester.getByTestId('baz')).toHaveTextContent('42')
+ expect(tester.queryByTestId('hello')).toBe(null)
})
it('should subscribe class components to the store changes', () => {
@@ -131,32 +147,30 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
-
- expect(testRenderer.find(Passthrough).prop('string')).toBe('')
+ expect(tester.getByTestId('string')).toHaveTextContent('')
store.dispatch({ type: 'APPEND', body: 'a' })
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
store.dispatch({ type: 'APPEND', body: 'b' })
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('string')).toBe('ab')
+ expect(tester.getByTestId('string')).toHaveTextContent('ab')
})
it('should subscribe pure function components to the store changes', () => {
const store = createStore(stringBuilder)
- let Container = connect(
- state => ({ string: state })
+ const Container = connect(
+ state => ({ string: state }), {}
)(function Container(props) {
- return
+ return
})
const spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- const testRenderer = enzyme.mount(
+
+ const tester = rtl.render(
@@ -164,26 +178,24 @@ describe('React', () => {
expect(spy).toHaveBeenCalledTimes(0)
spy.mockRestore()
- expect(testRenderer.find(Passthrough).prop('string')).toBe('')
+ expect(tester.getByTestId('string')).toHaveTextContent('')
store.dispatch({ type: 'APPEND', body: 'a' })
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
store.dispatch({ type: 'APPEND', body: 'b' })
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('string')).toBe('ab')
+ expect(tester.getByTestId('string')).toHaveTextContent('ab')
})
it('should retain the store\'s context', () => {
const store = new ContextBoundStore(stringBuilder)
let Container = connect(
- state => ({ string: state })
+ state => ({ string: state }), {}
)(function Container(props) {
return
})
const spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
@@ -191,16 +203,15 @@ describe('React', () => {
expect(spy).toHaveBeenCalledTimes(0)
spy.mockRestore()
- expect(testRenderer.find(Passthrough).prop('string')).toBe('')
+ expect(tester.getByTestId('string')).toHaveTextContent('')
store.dispatch({ type: 'APPEND', body: 'a' })
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
})
it('should handle dispatches before componentDidMount', () => {
const store = createStore(stringBuilder)
- @connect(state => ({ string: state }) )
+ @connect(state => ({ string: state }), {})
class Container extends Component {
componentDidMount() {
store.dispatch({ type: 'APPEND', body: 'a' })
@@ -210,15 +221,12 @@ describe('React', () => {
return
}
}
-
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
-
- const stub = testRenderer.find(Passthrough)
- expect(stub.prop('string')).toBe('a')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
})
it('should handle additional prop changes in addition to slice', () => {
@@ -226,7 +234,7 @@ describe('React', () => {
foo: 'bar'
}))
- @connect(state => state)
+ @connect(state => state, {})
class ConnectContainer extends Component {
render() {
return (
@@ -260,16 +268,16 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount()
- const stub = testRenderer.find(Passthrough)
- expect(stub.prop('foo')).toEqual('bar')
- expect(stub.prop('pass')).toEqual('through')
+ const tester = rtl.render()
+
+ expect(tester.getByTestId('foo')).toHaveTextContent('bar')
+ expect(tester.getByTestId('pass')).toHaveTextContent('through')
})
it('should handle unexpected prop changes with forceUpdate()', () => {
const store = createStore(() => ({}))
- @connect(state => state)
+ @connect(state => state, {})
class ConnectContainer extends Component {
render() {
return (
@@ -299,9 +307,9 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount()
- const stub = testRenderer.find(Passthrough)
- expect(stub.prop('bar')).toEqual('foo')
+ const tester = rtl.render()
+
+ expect(tester.getByTestId('bar')).toHaveTextContent('foo')
})
it('should remove undefined props', () => {
@@ -326,21 +334,18 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
container = instance} />
)
- expect(testRenderer.find(Passthrough).instance().props).toEqual({
- x: true
- })
+ expect(tester.getByTestId('x')).toHaveTextContent('true')
props = {}
container.forceUpdate()
- expect(testRenderer.find(Passthrough).instance().props).toEqual({
- })
+ expect(tester.queryByTestId('x')).toBe(null)
})
it('should remove undefined props without mapDispatch', () => {
@@ -365,30 +370,21 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
container = instance} />
)
- const propsBefore = {
- ...testRenderer.find(Passthrough).instance().props
- }
+ expect(tester.getAllByTitle('prop').length).toBe(2)
+ expect(tester.getByTestId('dispatch')).toHaveTextContent('[function dispatch]')
+ expect(tester.getByTestId('x')).toHaveTextContent('true')
props = {}
container.forceUpdate()
- const propsAfter = {
- ...testRenderer.find(Passthrough).instance().props
- }
-
- expect(propsBefore).toEqual({
- dispatch: store.dispatch,
- x: true
- })
- expect(propsAfter).toEqual({
- dispatch: store.dispatch,
- }, 'x prop must be removed')
+ expect(tester.getAllByTitle('prop').length).toBe(1)
+ expect(tester.getByTestId('dispatch')).toHaveTextContent('[function dispatch]')
})
it('should ignore deep mutations in props', () => {
@@ -433,10 +429,9 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount()
- const stub = testRenderer.find(Passthrough)
- expect(stub.prop('foo')).toEqual('bar')
- expect(stub.prop('pass')).toEqual('')
+ const tester = rtl.render()
+ expect(tester.getByTestId('foo')).toHaveTextContent('bar')
+ expect(tester.getByTestId('pass')).toHaveTextContent('')
})
it('should allow for merge to incorporate state and prop changes', () => {
@@ -449,6 +444,8 @@ describe('React', () => {
}
}
+ let merged
+ let externalSetState
@connect(
state => ({ stateThing: state }),
dispatch => ({
@@ -457,10 +454,13 @@ describe('React', () => {
(stateProps, actionProps, parentProps) => ({
...stateProps,
...actionProps,
- mergedDoSomething(thing) {
- const seed = stateProps.stateThing === '' ? 'HELLO ' : ''
- actionProps.doSomething(seed + thing + parentProps.extra)
- }
+ mergedDoSomething: (() => {
+ merged = function mergedDoSomething(thing) {
+ const seed = stateProps.stateThing === '' ? 'HELLO ' : ''
+ actionProps.doSomething(seed + thing + parentProps.extra)
+ }
+ return merged
+ })()
})
)
class Container extends Component {
@@ -473,6 +473,7 @@ describe('React', () => {
constructor() {
super()
this.state = { extra: 'z' }
+ externalSetState = this.setState.bind(this)
}
render() {
@@ -484,25 +485,23 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount()
- const stub = () => testRenderer.find(Passthrough)
- expect(stub().prop('stateThing')).toBe('')
- stub().prop('mergedDoSomething')('a')
- testRenderer.update()
- expect(stub().prop('stateThing')).toBe('HELLO az')
- stub().prop('mergedDoSomething')('b')
- testRenderer.update()
- expect(stub().prop('stateThing')).toBe('HELLO azbz')
- testRenderer.setState({ extra: 'Z' })
- stub().prop('mergedDoSomething')('c')
- testRenderer.update()
- expect(stub().prop('stateThing')).toBe('HELLO azbzcZ')
+ const tester = rtl.render()
+
+ expect(tester.getByTestId('stateThing')).toHaveTextContent('')
+ merged('a')
+ expect(tester.getByTestId('stateThing')).toHaveTextContent('HELLO az')
+ merged('b')
+ expect(tester.getByTestId('stateThing')).toHaveTextContent('HELLO azbz')
+ externalSetState({ extra: 'Z' })
+ merged('c')
+ expect(tester.getByTestId('stateThing')).toHaveTextContent('HELLO azbzcZ')
})
it('should merge actionProps into WrappedComponent', () => {
const store = createStore(() => ({
foo: 'bar'
}))
+ store.dispatch.mine = 'hi'
@connect(
state => state,
@@ -514,19 +513,14 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
- const stub = testRenderer.find(Passthrough)
- expect(stub.prop('dispatch')).toEqual(store.dispatch)
- expect(stub.prop('foo')).toEqual('bar')
- expect(() =>
- testRenderer.find(Container)
- ).not.toThrow()
- const decorated = testRenderer.find(Container)
- expect(decorated.instance().isSubscribed()).toBe(true)
+
+ expect(tester.getByTestId('dispatch')).toHaveTextContent('[my function dispatch]')
+ expect(tester.getByTestId('foo')).toHaveTextContent('bar')
})
it('should not invoke mapState when props change if it only has one argument', () => {
@@ -566,7 +560,7 @@ describe('React', () => {
}
let outerComponent
- enzyme.mount(
+ rtl.render(
outerComponent = c} />
@@ -613,7 +607,7 @@ describe('React', () => {
}
let outerComponent
- enzyme.mount(
+ rtl.render(
outerComponent = c} />
@@ -661,7 +655,7 @@ describe('React', () => {
}
let outerComponent
- enzyme.mount(
+ rtl.render(
outerComponent = c} />
@@ -713,7 +707,7 @@ describe('React', () => {
}
let outerComponent
- enzyme.mount(
+ rtl.render(
outerComponent = c} />
@@ -761,7 +755,7 @@ describe('React', () => {
}
let outerComponent
- enzyme.mount(
+ rtl.render(
outerComponent = c} />
@@ -810,7 +804,7 @@ describe('React', () => {
}
let outerComponent
- enzyme.mount(
+ rtl.render(
outerComponent = c} />
@@ -829,6 +823,7 @@ describe('React', () => {
const store = createStore(() => ({
foo: 'bar'
}))
+ store.dispatch.mine = 'hi'
function runCheck(...connectArgs) {
@connect(...connectArgs)
@@ -838,20 +833,14 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
- const stub = testRenderer.find(Passthrough)
- expect(stub.prop('dispatch')).toEqual(store.dispatch)
- expect(stub.prop('foo')).toBe(undefined)
- expect(stub.prop('pass')).toEqual('through')
- expect(() =>
- testRenderer.find(Container)
- ).not.toThrow()
- const decorated = testRenderer.find(Container)
- expect(decorated.instance().isSubscribed()).toBe(false)
+ expect(tester.getByTestId('dispatch')).toHaveTextContent('[my function dispatch]')
+ expect(tester.queryByTestId('foo')).toBe(null)
+ expect(tester.getByTestId('pass')).toHaveTextContent('through')
}
runCheck()
@@ -1108,15 +1097,13 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
-
- const stub = testRenderer.find(Passthrough)
expect(spy).toHaveBeenCalledTimes(1)
- expect(stub.prop('string')).toBe('')
+ expect(tester.getByTestId('string')).toHaveTextContent('')
store.dispatch({ type: 'APPEND', body: 'a' })
expect(spy).toHaveBeenCalledTimes(2)
store.dispatch({ type: 'APPEND', body: 'b' })
@@ -1128,6 +1115,7 @@ describe('React', () => {
it('should shallowly compare the merged state to prevent unnecessary updates', () => {
const store = createStore(stringBuilder)
const spy = jest.fn(() => ({}))
+ const tree = {}
function render({ string, pass }) {
spy()
return
@@ -1152,6 +1140,7 @@ describe('React', () => {
constructor(props) {
super(props)
this.state = { pass: '' }
+ tree.setState = this.setState.bind(this)
}
render() {
@@ -1163,62 +1152,53 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount()
- const tree = testRenderer.instance()
+ const tester = rtl.render()
expect(spy).toHaveBeenCalledTimes(1)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('')
- expect(testRenderer.find(Passthrough).prop('pass')).toBe('')
+ expect(tester.getByTestId('string')).toHaveTextContent('')
+ expect(tester.getByTestId('pass')).toHaveTextContent('')
store.dispatch({ type: 'APPEND', body: 'a' })
- testRenderer.update()
expect(spy).toHaveBeenCalledTimes(2)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
- expect(testRenderer.find(Passthrough).prop('pass')).toBe('')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
+ expect(tester.getByTestId('pass')).toHaveTextContent('')
tree.setState({ pass: '' })
- testRenderer.update()
expect(spy).toHaveBeenCalledTimes(2)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
- expect(testRenderer.find(Passthrough).prop('pass')).toBe('')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
+ expect(tester.getByTestId('pass')).toHaveTextContent('')
tree.setState({ pass: 'through' })
- testRenderer.update()
expect(spy).toHaveBeenCalledTimes(3)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
- expect(testRenderer.find(Passthrough).prop('pass')).toBe('through')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
+ expect(tester.getByTestId('pass')).toHaveTextContent('through')
tree.setState({ pass: 'through' })
- testRenderer.update()
expect(spy).toHaveBeenCalledTimes(3)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
- expect(testRenderer.find(Passthrough).prop('pass')).toBe('through')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
+ expect(tester.getByTestId('pass')).toHaveTextContent('through')
const obj = { prop: 'val' }
tree.setState({ pass: obj })
- testRenderer.update()
expect(spy).toHaveBeenCalledTimes(4)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
- expect(testRenderer.find(Passthrough).prop('pass')).toBe(obj)
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
+ expect(tester.getByTestId('pass')).toHaveTextContent('{"prop":"val"}')
tree.setState({ pass: obj })
- testRenderer.update()
expect(spy).toHaveBeenCalledTimes(4)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
- expect(testRenderer.find(Passthrough).prop('pass')).toBe(obj)
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
+ expect(tester.getByTestId('pass')).toHaveTextContent('{"prop":"val"}')
const obj2 = Object.assign({}, obj, { val: 'otherval' })
tree.setState({ pass: obj2 })
- testRenderer.update()
expect(spy).toHaveBeenCalledTimes(5)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
- expect(testRenderer.find(Passthrough).prop('pass')).toBe(obj2)
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
+ expect(tester.getByTestId('pass')).toHaveTextContent('{"prop":"val","val":"otherval"}')
obj2.val = 'mutation'
tree.setState({ pass: obj2 })
- testRenderer.update()
expect(spy).toHaveBeenCalledTimes(5)
- expect(testRenderer.find(Passthrough).prop('string')).toBe('a')
- expect(testRenderer.find(Passthrough).prop('passVal')).toBe('otherval')
+ expect(tester.getByTestId('string')).toHaveTextContent('a')
+ expect(tester.getByTestId('pass')).toHaveTextContent('{"prop":"val","val":"otherval"}')
})
it('should throw an error if a component is not passed to the function returned by connect', () => {
@@ -1243,7 +1223,7 @@ describe('React', () => {
function AwesomeMap() { }
let spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => 1, () => ({}), () => ({}))}
@@ -1253,9 +1233,10 @@ describe('React', () => {
/mapStateToProps\(\) in Connect\(Container\) must return a plain object/
)
spy.mockRestore()
+ rtl.cleanup()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => 'hey', () => ({}), () => ({}))}
@@ -1265,9 +1246,10 @@ describe('React', () => {
/mapStateToProps\(\) in Connect\(Container\) must return a plain object/
)
spy.mockRestore()
+ rtl.cleanup()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => new AwesomeMap(), () => ({}), () => ({}))}
@@ -1277,9 +1259,10 @@ describe('React', () => {
/mapStateToProps\(\) in Connect\(Container\) must return a plain object/
)
spy.mockRestore()
+ rtl.cleanup()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => ({}), () => 1, () => ({}))}
@@ -1289,9 +1272,10 @@ describe('React', () => {
/mapDispatchToProps\(\) in Connect\(Container\) must return a plain object/
)
spy.mockRestore()
+ rtl.cleanup()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => ({}), () => 'hey', () => ({}))}
@@ -1301,9 +1285,10 @@ describe('React', () => {
/mapDispatchToProps\(\) in Connect\(Container\) must return a plain object/
)
spy.mockRestore()
+ rtl.cleanup()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => ({}), () => new AwesomeMap(), () => ({}))}
@@ -1313,9 +1298,10 @@ describe('React', () => {
/mapDispatchToProps\(\) in Connect\(Container\) must return a plain object/
)
spy.mockRestore()
+ rtl.cleanup()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => ({}), () => ({}), () => 1)}
@@ -1325,9 +1311,10 @@ describe('React', () => {
/mergeProps\(\) in Connect\(Container\) must return a plain object/
)
spy.mockRestore()
+ rtl.cleanup()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => ({}), () => ({}), () => 'hey')}
@@ -1337,9 +1324,10 @@ describe('React', () => {
/mergeProps\(\) in Connect\(Container\) must return a plain object/
)
spy.mockRestore()
+ rtl.cleanup()
spy = jest.spyOn(console, 'error').mockImplementation(() => {})
- enzyme.mount(
+ rtl.render(
{makeContainer(() => ({}), () => ({}), () => new AwesomeMap())}
@@ -1391,23 +1379,21 @@ describe('React', () => {
}
let container
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
container = instance} />
)
- expect(testRenderer.find(Passthrough).prop('foo')).toEqual(undefined)
- expect(testRenderer.find(Passthrough).prop('scooby')).toEqual('doo')
+ expect(tester.queryByTestId('foo')).toBe(null)
+ expect(tester.getByTestId('scooby')).toHaveTextContent('doo')
imitateHotReloading(ContainerBefore, ContainerAfter, container)
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('foo')).toEqual('baz')
- expect(testRenderer.find(Passthrough).prop('scooby')).toEqual('foo')
+ expect(tester.getByTestId('foo')).toHaveTextContent('baz')
+ expect(tester.getByTestId('scooby')).toHaveTextContent('foo')
imitateHotReloading(ContainerBefore, ContainerNext, container)
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('foo')).toEqual('bar')
- expect(testRenderer.find(Passthrough).prop('scooby')).toEqual('boo')
+ expect(tester.getByTestId('foo')).toHaveTextContent('bar')
+ expect(tester.getByTestId('scooby')).toHaveTextContent('boo')
})
it('should persist listeners through hot update', () => {
@@ -1456,7 +1442,7 @@ describe('React', () => {
}
let container
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
container = instance}/>
@@ -1465,9 +1451,8 @@ describe('React', () => {
imitateHotReloading(ParentBefore, ParentAfter, container)
store.dispatch({type: ACTION_TYPE})
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('actions')).toEqual(1)
+ expect(tester.getByTestId('actions')).toHaveTextContent('1')
})
it('should set the displayName correctly', () => {
@@ -1553,7 +1538,7 @@ describe('React', () => {
getState: () => expectedState
}
- enzyme.mount()
+ rtl.render()
expect(actualState).toEqual(expectedState)
})
@@ -1571,7 +1556,7 @@ describe('React', () => {
const Decorated = decorator(Container)
expect(() =>
- enzyme.mount()
+ rtl.render()
).toThrow(
/Could not find "store"/
)
@@ -1591,19 +1576,24 @@ describe('React', () => {
const decorator = connect(state => state)
const Decorated = decorator(Container)
- const testRenderer = enzyme.mount(
+ class Wrapper extends Component {
+ render() {
+ return (
+ comp && comp.getWrappedInstance()}/>
+ )
+ }
+ }
+
+ expect(() => rtl.render(
-
+
- )
-
- const decorated = testRenderer.find(Decorated)
- expect(() => decorated.instance().getWrappedInstance()).toThrow(
+ )).toThrow(
/To access the wrapped instance, you need to specify \{ withRef: true \} in the options argument of the connect\(\) call\./
)
})
- it('should return the instance of the wrapped component for use in calling child methods', () => {
+ it('should return the instance of the wrapped component for use in calling child methods', async (done) => {
const store = createStore(() => ({}))
const someData = {
@@ -1616,24 +1606,36 @@ describe('React', () => {
}
render() {
- return
+ return
}
}
const decorator = connect(state => state, null, null, { withRef: true })
const Decorated = decorator(Container)
- const testRenderer = enzyme.mount(
+ let ref
+
+ class Wrapper extends Component {
+ render() {
+ return (
+ {
+ if (!comp) return
+ ref = comp.getWrappedInstance()
+ }}/>
+ )
+ }
+ }
+
+ const tester = rtl.render(
-
+
)
- const decorated = testRenderer.find(Decorated)
+ await rtl.waitForElement(() => tester.getByTestId('loaded'))
- expect(() => decorated.someInstanceMethod()).toThrow()
- expect(decorated.instance().getWrappedInstance().someInstanceMethod()).toBe(someData)
- expect(decorated.instance().wrappedInstance.someInstanceMethod()).toBe(someData)
+ expect(ref.someInstanceMethod()).toBe(someData)
+ done()
})
it('should wrap impure components without supressing updates', () => {
@@ -1652,10 +1654,12 @@ describe('React', () => {
const decorator = connect(state => state, null, null, { pure: false })
const Decorated = decorator(ImpureComponent)
+ let externalSetState
class StatefulWrapper extends Component {
constructor() {
super()
this.state = { value: 0 }
+ externalSetState = this.setState.bind(this)
}
getChildContext() {
@@ -1673,18 +1677,15 @@ describe('React', () => {
statefulValue: PropTypes.number
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
- const target = testRenderer.find(Passthrough)
- const wrapper = testRenderer.find(StatefulWrapper).instance()
- expect(target.prop('statefulValue')).toEqual(0)
- wrapper.setState({ value: 1 })
- testRenderer.update()
- expect(testRenderer.find(Passthrough).prop('statefulValue')).toEqual(1)
+ expect(tester.getByTestId('statefulValue')).toHaveTextContent('0')
+ externalSetState({ value: 1 })
+ expect(tester.getByTestId('statefulValue')).toHaveTextContent('1')
})
it('calls mapState and mapDispatch for impure components', () => {
@@ -1713,12 +1714,16 @@ describe('React', () => {
)
const Decorated = decorator(ImpureComponent)
+ let externalSetState
+ let storeGetter
class StatefulWrapper extends Component {
constructor() {
super()
+ storeGetter = { storeKey: 'foo' }
this.state = {
- storeGetter: { storeKey: 'foo' }
+ storeGetter
}
+ externalSetState = this.setState.bind(this)
}
render() {
return
@@ -1726,28 +1731,23 @@ describe('React', () => {
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
- const target = testRenderer.find(Passthrough)
- const wrapper = testRenderer.find(StatefulWrapper).instance()
-
expect(mapStateSpy).toHaveBeenCalledTimes(2)
expect(mapDispatchSpy).toHaveBeenCalledTimes(2)
- expect(target.prop('statefulValue')).toEqual('foo')
+ expect(tester.getByTestId('statefulValue')).toHaveTextContent('foo')
// Impure update
- const storeGetter = wrapper.state.storeGetter
storeGetter.storeKey = 'bar'
- wrapper.setState({ storeGetter })
- testRenderer.update()
+ externalSetState({ storeGetter })
expect(mapStateSpy).toHaveBeenCalledTimes(3)
expect(mapDispatchSpy).toHaveBeenCalledTimes(3)
- expect(testRenderer.find(Passthrough).prop('statefulValue')).toEqual('bar')
+ expect(tester.getByTestId('statefulValue')).toHaveTextContent('bar')
})
it('should pass state consistently to mapState', () => {
@@ -1785,7 +1785,7 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
@@ -1800,8 +1800,8 @@ describe('React', () => {
expect(childMapStateInvokes).toBe(2)
// setState calls DOM handlers are batched
- const button = testRenderer.find('button')
- button.prop('onClick')()
+ const button = tester.getByText('change')
+ rtl.fireEvent.click(button)
expect(childMapStateInvokes).toBe(3)
store.dispatch({ type: 'APPEND', body: 'd' })
@@ -1824,7 +1824,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -1857,7 +1857,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -1907,7 +1907,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -1950,7 +1950,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -1986,7 +1986,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -2050,7 +2050,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -2074,7 +2074,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -2110,7 +2110,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -2189,7 +2189,7 @@ describe('React', () => {
}
}
- enzyme.mount(
+ rtl.render(
@@ -2205,7 +2205,7 @@ describe('React', () => {
const spy = jest.spyOn(console, 'error').mockImplementation(() => {})
try {
- enzyme.mount(
+ rtl.render(
@@ -2266,7 +2266,7 @@ describe('React', () => {
}
const store = createStore((state = 0, action) => (action.type === 'INC' ? state + 1 : state))
- enzyme.mount()
+ rtl.render()
expect(mapStateToProps).toHaveBeenCalledTimes(1)
store.dispatch({ type: 'INC' })
@@ -2288,7 +2288,7 @@ describe('React', () => {
class C extends React.Component { render() { return {this.props.count}
}}
const store = createStore((state = 0, action) => (action.type === 'INC' ? state += 1 : state))
- enzyme.mount()
+ rtl.render()
store.dispatch({ type: 'INC' })
})
@@ -2320,7 +2320,7 @@ describe('React', () => {
render() { return {this.props.count}
}
}
- enzyme.mount()
+ rtl.render()
expect(mapStateToPropsB).toHaveBeenCalledTimes(1)
expect(mapStateToPropsC).toHaveBeenCalledTimes(1)
expect(mapStateToPropsD).toHaveBeenCalledTimes(1)
@@ -2350,7 +2350,7 @@ describe('React', () => {
}
}
- TestRenderer.create(
+ rtl.render(
@@ -2363,6 +2363,7 @@ describe('React', () => {
it('should receive the store in the context using a custom store key', () => {
const store = createStore(() => ({}))
+ store.dispatch.mine = 'hi'
const CustomProvider = createProvider('customStoreKey')
const connectOptions = { storeKey: 'customStoreKey' }
@@ -2373,14 +2374,13 @@ describe('React', () => {
}
}
- const testRenderer = enzyme.mount(
+ const tester = rtl.render(
)
- const container = testRenderer.find(Container)
- expect(container.instance().store).toBe(store)
+ expect(tester.getByTestId('dispatch')).toHaveTextContent('[my function dispatch]')
})
})
})
diff --git a/test/install-test-deps.js b/test/install-test-deps.js
index a5be46af6..7ff9e2471 100644
--- a/test/install-test-deps.js
+++ b/test/install-test-deps.js
@@ -27,12 +27,12 @@ readdirSync(join(__dirname, 'react')).forEach(version => {
join(__dirname, 'react', version, 'src', 'connect'),
join(__dirname, 'react', version, 'src', 'utils'),
]
+ if (!existsSync(join(__dirname, 'react', version, 'test'))) {
+ throw new Error(`react version ${version}'s "test" directory is missing, cannot run tests`)
+ }
if (!existsSync(join(__dirname, 'react', version, 'src'))) {
mkdirSync(join(__dirname, 'react', version, 'src'))
}
- if (!existsSync(join(__dirname, 'react', version))) {
- throw new Error(`getTestDeps.js is missing from react version ${version}'s "test" directory, cannot run tests`)
- }
console.log('Copying test files')
tests.forEach((dir, i) => {
if (existsSync(dest[i])) {
diff --git a/test/react/0.14/package-lock.json b/test/react/0.14/package-lock.json
index 68c5a4966..1331318ca 100644
--- a/test/react/0.14/package-lock.json
+++ b/test/react/0.14/package-lock.json
@@ -30,12 +30,6 @@
}
}
},
- "@types/node": {
- "version": "10.5.4",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz",
- "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==",
- "dev": true
- },
"abab": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
@@ -624,12 +618,6 @@
"tweetnacl": "^0.14.3"
}
},
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
- "dev": true
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -765,20 +753,6 @@
"supports-color": "^5.3.0"
}
},
- "cheerio": {
- "version": "1.0.0-rc.2",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
- "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
- "dev": true,
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash": "^4.15.0",
- "parse5": "^3.0.1"
- }
- },
"ci-info": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
@@ -845,12 +819,6 @@
"integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
"dev": true
},
- "colors": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
- "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
- "dev": true
- },
"combined-stream": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
@@ -970,24 +938,29 @@
"which": "^1.2.9"
}
},
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "css": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz",
+ "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==",
"dev": true,
"requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
+ "inherits": "^2.0.1",
+ "source-map": "^0.1.38",
+ "source-map-resolve": "^0.5.1",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
}
},
- "css-what": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
- "dev": true
- },
"cssom": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
@@ -1175,36 +1148,41 @@
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
- "discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
- "dev": true
- },
- "dom-serializer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dom-testing-library": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/dom-testing-library/-/dom-testing-library-3.3.0.tgz",
+ "integrity": "sha512-on5xM8U+UszlUAmdHVzUnjNIRxM57Sv2k25YFjUcG+aUktYwQG2LJ0HTe8yBkL0Yyfi3iS9xpHRw0y87O+imbA==",
"dev": true,
"requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
+ "mutationobserver-shim": "^0.3.2",
+ "pretty-format": "^22.4.3",
+ "wait-for-expect": "^0.4.0"
},
"dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ },
+ "wait-for-expect": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-0.4.0.tgz",
+ "integrity": "sha512-itHoJUKL5P8abjhWRlp3F5QLDY7LokcJkgD78tjrX08ozBakfy9YD4bgxUVuSld8yqjza3ld6Sj7UMMOH/twFA==",
"dev": true
}
}
},
- "domelementtype": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
- "dev": true
- },
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -1214,25 +1192,6 @@
"webidl-conversions": "^4.0.2"
}
},
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -1253,12 +1212,6 @@
"iconv-lite": "~0.4.13"
}
},
- "entities": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
- "dev": true
- },
"envify": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz",
@@ -1269,53 +1222,6 @@
"through": "~2.3.4"
}
},
- "enzyme": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.3.0.tgz",
- "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==",
- "dev": true,
- "requires": {
- "cheerio": "^1.0.0-rc.2",
- "function.prototype.name": "^1.0.3",
- "has": "^1.0.1",
- "is-boolean-object": "^1.0.0",
- "is-callable": "^1.1.3",
- "is-number-object": "^1.0.3",
- "is-string": "^1.0.4",
- "is-subset": "^0.1.1",
- "lodash": "^4.17.4",
- "object-inspect": "^1.5.0",
- "object-is": "^1.0.1",
- "object.assign": "^4.1.0",
- "object.entries": "^1.0.4",
- "object.values": "^1.0.4",
- "raf": "^3.4.0",
- "rst-selector-parser": "^2.2.3"
- }
- },
- "enzyme-adapter-react-14": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-14/-/enzyme-adapter-react-14-1.0.6.tgz",
- "integrity": "sha512-r29GLbJdaoZt2WfZpEj4KMZGuD2jkKaN/wzT4x+mkw0j85uJt8hm1MUfIAAV2yCdsQjBWPQZQgXjTvPQS66cww==",
- "dev": true,
- "requires": {
- "enzyme-adapter-utils": "^1.4.0",
- "object.assign": "^4.1.0",
- "object.values": "^1.0.4",
- "prop-types": "^15.6.0",
- "react-is": "^16.4.1"
- }
- },
- "enzyme-adapter-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.4.0.tgz",
- "integrity": "sha512-ajvyXQYbmCoKCX/FaraNzBgXDXJBltCd0GdXfKc0DdRPYgCLaZfS6Ts576IFt8aX2GU9ajZv2g5jfcJ+Nttejw==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0",
- "prop-types": "^15.6.0"
- }
- },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -2319,17 +2225,6 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
- "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==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "is-callable": "^1.1.3"
- }
- },
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
@@ -2467,12 +2362,6 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
- },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -2530,20 +2419,6 @@
"whatwg-encoding": "^1.0.1"
}
},
- "htmlparser2": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -2580,6 +2455,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2626,12 +2507,6 @@
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
- "is-boolean-object": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz",
- "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=",
- "dev": true
- },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -2765,12 +2640,6 @@
"kind-of": "^3.0.2"
}
},
- "is-number-object": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz",
- "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=",
- "dev": true
- },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -2807,18 +2676,6 @@
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"dev": true
},
- "is-string": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
- "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
- "dev": true
- },
- "is-subset": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
- "dev": true
- },
"is-symbol": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
@@ -3243,6 +3100,75 @@
"detect-newline": "^2.1.0"
}
},
+ "jest-dom": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/jest-dom/-/jest-dom-1.12.0.tgz",
+ "integrity": "sha512-G8LplxieRJDOmTNJN2SzctewT9HoslclwzEW8znch98gSw5KeajIbporSqUuWHPRB8q8UQl0OI6AtUjGrNcniQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "css": "^2.2.3",
+ "jest-diff": "^22.4.3",
+ "jest-matcher-utils": "^22.4.3",
+ "pretty-format": "^23.0.1",
+ "redent": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
+ "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "diff": "^3.2.0",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
+ "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ }
+ }
+ },
"jest-each": {
"version": "23.4.0",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.4.0.tgz",
@@ -3858,12 +3784,6 @@
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
"dev": true
},
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
- "dev": true
- },
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -4082,18 +4002,18 @@
"minimist": "0.0.8"
}
},
- "moo": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz",
- "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
+ "mutationobserver-shim": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz",
+ "integrity": "sha1-9NXa56SXGiIHkU+1qQ69UUtlrMo=",
+ "dev": true
+ },
"nan": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
@@ -4134,19 +4054,6 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "nearley": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.0.tgz",
- "integrity": "sha512-ZjzdO+yBtMrRrBbr+BJ35ECla6PGCAb/6hqpBQe7bmhEJabQ4rpVdj4sadP1Z1jQGyaDmm1GciQWsGVxIZ3uJA==",
- "dev": true,
- "requires": {
- "moo": "^0.4.3",
- "nomnom": "~1.6.2",
- "railroad-diagrams": "^1.0.0",
- "randexp": "0.4.6",
- "semver": "^5.4.1"
- }
- },
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
@@ -4175,16 +4082,6 @@
"which": "^1.3.0"
}
},
- "nomnom": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz",
- "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=",
- "dev": true,
- "requires": {
- "colors": "0.5.x",
- "underscore": "~1.4.4"
- }
- },
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
@@ -4215,15 +4112,6 @@
"path-key": "^2.0.0"
}
},
- "nth-check": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
- "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -4270,18 +4158,6 @@
}
}
},
- "object-inspect": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
- "dev": true
- },
- "object-is": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
- "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
- "dev": true
- },
"object-keys": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
@@ -4297,30 +4173,6 @@
"isobject": "^3.0.0"
}
},
- "object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
- }
- },
- "object.entries": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
- "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"object.getownpropertydescriptors": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
@@ -4350,18 +4202,6 @@
"isobject": "^3.0.1"
}
},
- "object.values": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
- "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -4466,15 +4306,6 @@
"error-ex": "^1.2.0"
}
},
- "parse5": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
- "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -4639,24 +4470,6 @@
"sisteransi": "^0.1.1"
}
},
- "prop-types": {
- "version": "15.6.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
- "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
- "dev": true,
- "requires": {
- "loose-envify": "^1.3.1",
- "object-assign": "^4.1.1"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- }
- }
- },
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -4687,31 +4500,6 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
- "raf": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
- "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
- "dev": true,
- "requires": {
- "performance-now": "^2.1.0"
- }
- },
- "railroad-diagrams": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=",
- "dev": true
- },
- "randexp": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
- "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
- "requires": {
- "discontinuous-range": "1.0.0",
- "ret": "~0.1.10"
- }
- },
"randomatic": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
@@ -4747,40 +4535,20 @@
"fbjs": "^0.6.1"
}
},
- "react-addons-test-utils": {
- "version": "0.14.8",
- "resolved": "https://registry.npmjs.org/react-addons-test-utils/-/react-addons-test-utils-0.14.8.tgz",
- "integrity": "sha1-3N3AOecfw8gdgDOOU6NxTxTUHh8=",
- "dev": true
- },
"react-dom": {
"version": "0.14.9",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz",
"integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=",
"dev": true
},
- "react-is": {
- "version": "16.4.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.1.tgz",
- "integrity": "sha512-xpb0PpALlFWNw/q13A+1aHeyJyLYCg0/cCHPUA43zYluZuIPHaHL3k8OBsTgQtxqW0FhyDEMvi8fZ/+7+r4OSQ==",
- "dev": true
- },
- "react-test-renderer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-1.1.0.tgz",
- "integrity": "sha1-D6o1os1xoUmaHj1yJno0/LHjUO8=",
+ "react-testing-library": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/react-testing-library/-/react-testing-library-5.0.0.tgz",
+ "integrity": "sha512-blIVFDHj0j2klvcrudvz8BnMJ3xoGBBh2P0R70JTvlj7uH4rd3oSKcG0BeFolfbNahv6Gz2RZ+S3WCHg/iVSZA==",
"dev": true,
"requires": {
- "object-assign": "^4.1.0",
- "react-addons-test-utils": "^0.14.0 || ^15.0.0"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- }
+ "dom-testing-library": "^3.1.0",
+ "wait-for-expect": "^1.0.0"
}
},
"read-pkg": {
@@ -4854,6 +4622,16 @@
}
}
},
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -5051,16 +4829,6 @@
}
}
},
- "rst-selector-parser": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz",
- "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=",
- "dev": true,
- "requires": {
- "lodash.flattendeep": "^4.4.0",
- "nearley": "^2.7.10"
- }
- },
"rsvp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
@@ -5547,6 +5315,12 @@
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
"dev": true
},
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
"supports-color": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
@@ -5803,12 +5577,6 @@
"dev": true,
"optional": true
},
- "underscore": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
- "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
- "dev": true
- },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
@@ -5948,6 +5716,12 @@
"browser-process-hrtime": "^0.1.2"
}
},
+ "wait-for-expect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-1.0.0.tgz",
+ "integrity": "sha512-I6OlPKnd4qVdKJf1Gjx9M9qQjIk29rALoUkjwIKa9pNDCdzUuJTfaNv1mtsm2QdSvF0ZQogrWJMifTN1lUeXig==",
+ "dev": true
+ },
"walker": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
diff --git a/test/react/0.14/package.json b/test/react/0.14/package.json
index a259a3afe..272fcf248 100644
--- a/test/react/0.14/package.json
+++ b/test/react/0.14/package.json
@@ -2,13 +2,11 @@
"private": true,
"devDependencies": {
"create-react-class": "^15.6.3",
- "enzyme": "^3.3.0",
- "enzyme-adapter-react-14": "^1.0.6",
"jest": "^23.4.2",
+ "jest-dom": "^1.12.0",
"react": "^0.14.9",
- "react-addons-test-utils": "^0.14.8",
"react-dom": "^0.14.8",
- "react-test-renderer": "^1"
+ "react-testing-library": "^5.0.0"
},
"jest": {
"testURL": "http://localhost",
diff --git a/test/react/15/package-lock.json b/test/react/15/package-lock.json
index 4e22b2c46..7151faddc 100644
--- a/test/react/15/package-lock.json
+++ b/test/react/15/package-lock.json
@@ -30,12 +30,6 @@
}
}
},
- "@types/node": {
- "version": "10.5.4",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz",
- "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==",
- "dev": true
- },
"abab": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
@@ -594,12 +588,6 @@
"tweetnacl": "^0.14.3"
}
},
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
- "dev": true
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -742,20 +730,6 @@
"supports-color": "^5.3.0"
}
},
- "cheerio": {
- "version": "1.0.0-rc.2",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
- "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
- "dev": true,
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash": "^4.15.0",
- "parse5": "^3.0.1"
- }
- },
"ci-info": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
@@ -843,12 +817,6 @@
"integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
"dev": true
},
- "colors": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
- "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
- "dev": true
- },
"combined-stream": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
@@ -922,24 +890,29 @@
"which": "^1.2.9"
}
},
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "css": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz",
+ "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==",
"dev": true,
"requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
+ "inherits": "^2.0.1",
+ "source-map": "^0.1.38",
+ "source-map-resolve": "^0.5.1",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
}
},
- "css-what": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
- "dev": true
- },
"cssom": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
@@ -1103,36 +1076,41 @@
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
- "discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
- "dev": true
- },
- "dom-serializer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dom-testing-library": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/dom-testing-library/-/dom-testing-library-3.3.0.tgz",
+ "integrity": "sha512-on5xM8U+UszlUAmdHVzUnjNIRxM57Sv2k25YFjUcG+aUktYwQG2LJ0HTe8yBkL0Yyfi3iS9xpHRw0y87O+imbA==",
"dev": true,
"requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
+ "mutationobserver-shim": "^0.3.2",
+ "pretty-format": "^22.4.3",
+ "wait-for-expect": "^0.4.0"
},
"dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ },
+ "wait-for-expect": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-0.4.0.tgz",
+ "integrity": "sha512-itHoJUKL5P8abjhWRlp3F5QLDY7LokcJkgD78tjrX08ozBakfy9YD4bgxUVuSld8yqjza3ld6Sj7UMMOH/twFA==",
"dev": true
}
}
},
- "domelementtype": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
- "dev": true
- },
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -1142,25 +1120,6 @@
"webidl-conversions": "^4.0.2"
}
},
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -1181,59 +1140,6 @@
"iconv-lite": "~0.4.13"
}
},
- "entities": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
- "dev": true
- },
- "enzyme": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.3.0.tgz",
- "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==",
- "dev": true,
- "requires": {
- "cheerio": "^1.0.0-rc.2",
- "function.prototype.name": "^1.0.3",
- "has": "^1.0.1",
- "is-boolean-object": "^1.0.0",
- "is-callable": "^1.1.3",
- "is-number-object": "^1.0.3",
- "is-string": "^1.0.4",
- "is-subset": "^0.1.1",
- "lodash": "^4.17.4",
- "object-inspect": "^1.5.0",
- "object-is": "^1.0.1",
- "object.assign": "^4.1.0",
- "object.entries": "^1.0.4",
- "object.values": "^1.0.4",
- "raf": "^3.4.0",
- "rst-selector-parser": "^2.2.3"
- }
- },
- "enzyme-adapter-react-15": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-15/-/enzyme-adapter-react-15-1.0.6.tgz",
- "integrity": "sha512-6JfDjraNOGuTXklmApZlvEoR0VawzFzjWcrMXcNuRE/Xe7y9eFl7tIxD3GLDbg13KWHbIcY6/XbvcMM4LjLPcg==",
- "dev": true,
- "requires": {
- "enzyme-adapter-utils": "^1.4.0",
- "object.assign": "^4.1.0",
- "object.values": "^1.0.4",
- "prop-types": "^15.6.0",
- "react-is": "^16.4.1"
- }
- },
- "enzyme-adapter-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.4.0.tgz",
- "integrity": "sha512-ajvyXQYbmCoKCX/FaraNzBgXDXJBltCd0GdXfKc0DdRPYgCLaZfS6Ts576IFt8aX2GU9ajZv2g5jfcJ+Nttejw==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0",
- "prop-types": "^15.6.0"
- }
- },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -2222,17 +2128,6 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
- "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==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "is-callable": "^1.1.3"
- }
- },
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
@@ -2380,12 +2275,6 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
- },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -2443,20 +2332,6 @@
"whatwg-encoding": "^1.0.1"
}
},
- "htmlparser2": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -2493,6 +2368,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2539,12 +2420,6 @@
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
- "is-boolean-object": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz",
- "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=",
- "dev": true
- },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -2675,12 +2550,6 @@
"kind-of": "^3.0.2"
}
},
- "is-number-object": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz",
- "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=",
- "dev": true
- },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -2717,18 +2586,6 @@
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"dev": true
},
- "is-string": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
- "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
- "dev": true
- },
- "is-subset": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
- "dev": true
- },
"is-symbol": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
@@ -3006,6 +2863,75 @@
"detect-newline": "^2.1.0"
}
},
+ "jest-dom": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/jest-dom/-/jest-dom-1.12.0.tgz",
+ "integrity": "sha512-G8LplxieRJDOmTNJN2SzctewT9HoslclwzEW8znch98gSw5KeajIbporSqUuWHPRB8q8UQl0OI6AtUjGrNcniQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "css": "^2.2.3",
+ "jest-diff": "^22.4.3",
+ "jest-matcher-utils": "^22.4.3",
+ "pretty-format": "^23.0.1",
+ "redent": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
+ "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "diff": "^3.2.0",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
+ "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ }
+ }
+ },
"jest-each": {
"version": "23.4.0",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.4.0.tgz",
@@ -3492,12 +3418,6 @@
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
"dev": true
},
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
- "dev": true
- },
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -3716,18 +3636,18 @@
"minimist": "0.0.8"
}
},
- "moo": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz",
- "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
+ "mutationobserver-shim": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz",
+ "integrity": "sha1-9NXa56SXGiIHkU+1qQ69UUtlrMo=",
+ "dev": true
+ },
"nan": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
@@ -3768,19 +3688,6 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "nearley": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.0.tgz",
- "integrity": "sha512-ZjzdO+yBtMrRrBbr+BJ35ECla6PGCAb/6hqpBQe7bmhEJabQ4rpVdj4sadP1Z1jQGyaDmm1GciQWsGVxIZ3uJA==",
- "dev": true,
- "requires": {
- "moo": "^0.4.3",
- "nomnom": "~1.6.2",
- "railroad-diagrams": "^1.0.0",
- "randexp": "0.4.6",
- "semver": "^5.4.1"
- }
- },
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
@@ -3809,16 +3716,6 @@
"which": "^1.3.0"
}
},
- "nomnom": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz",
- "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=",
- "dev": true,
- "requires": {
- "colors": "0.5.x",
- "underscore": "~1.4.4"
- }
- },
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
@@ -3849,15 +3746,6 @@
"path-key": "^2.0.0"
}
},
- "nth-check": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
- "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -3904,18 +3792,6 @@
}
}
},
- "object-inspect": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
- "dev": true
- },
- "object-is": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
- "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
- "dev": true
- },
"object-keys": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
@@ -3931,30 +3807,6 @@
"isobject": "^3.0.0"
}
},
- "object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
- }
- },
- "object.entries": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
- "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"object.getownpropertydescriptors": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
@@ -3984,18 +3836,6 @@
"isobject": "^3.0.1"
}
},
- "object.values": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
- "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -4111,15 +3951,6 @@
"error-ex": "^1.2.0"
}
},
- "parse5": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
- "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -4304,31 +4135,6 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
- "raf": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
- "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
- "dev": true,
- "requires": {
- "performance-now": "^2.1.0"
- }
- },
- "railroad-diagrams": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=",
- "dev": true
- },
- "randexp": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
- "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
- "requires": {
- "discontinuous-range": "1.0.0",
- "ret": "~0.1.10"
- }
- },
"randomatic": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
@@ -4379,20 +4185,14 @@
"prop-types": "^15.5.10"
}
},
- "react-is": {
- "version": "16.4.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.1.tgz",
- "integrity": "sha512-xpb0PpALlFWNw/q13A+1aHeyJyLYCg0/cCHPUA43zYluZuIPHaHL3k8OBsTgQtxqW0FhyDEMvi8fZ/+7+r4OSQ==",
- "dev": true
- },
- "react-test-renderer": {
- "version": "15.6.2",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-15.6.2.tgz",
- "integrity": "sha1-0DM0NPwsQ4CSaWyncNpe1IA376g=",
+ "react-testing-library": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/react-testing-library/-/react-testing-library-5.0.0.tgz",
+ "integrity": "sha512-blIVFDHj0j2klvcrudvz8BnMJ3xoGBBh2P0R70JTvlj7uH4rd3oSKcG0BeFolfbNahv6Gz2RZ+S3WCHg/iVSZA==",
"dev": true,
"requires": {
- "fbjs": "^0.8.9",
- "object-assign": "^4.1.0"
+ "dom-testing-library": "^3.1.0",
+ "wait-for-expect": "^1.0.0"
}
},
"read-pkg": {
@@ -4461,6 +4261,16 @@
"util.promisify": "^1.0.0"
}
},
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -4642,16 +4452,6 @@
"glob": "^7.0.5"
}
},
- "rst-selector-parser": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz",
- "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=",
- "dev": true,
- "requires": {
- "lodash.flattendeep": "^4.4.0",
- "nearley": "^2.7.10"
- }
- },
"rsvp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
@@ -5108,6 +4908,12 @@
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
"dev": true
},
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
"supports-color": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
@@ -5312,12 +5118,6 @@
"dev": true,
"optional": true
},
- "underscore": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
- "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
- "dev": true
- },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
@@ -5457,6 +5257,12 @@
"browser-process-hrtime": "^0.1.2"
}
},
+ "wait-for-expect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-1.0.0.tgz",
+ "integrity": "sha512-I6OlPKnd4qVdKJf1Gjx9M9qQjIk29rALoUkjwIKa9pNDCdzUuJTfaNv1mtsm2QdSvF0ZQogrWJMifTN1lUeXig==",
+ "dev": true
+ },
"walker": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
diff --git a/test/react/15/package.json b/test/react/15/package.json
index 7dcc9c515..a6f7f8951 100644
--- a/test/react/15/package.json
+++ b/test/react/15/package.json
@@ -2,12 +2,11 @@
"private": true,
"devDependencies": {
"create-react-class": "^15.6.3",
- "enzyme": "^3.3.0",
- "enzyme-adapter-react-15": "^1.0.6",
"jest": "^23.4.2",
+ "jest-dom": "^1.12.0",
"react": "15.6",
"react-dom": "15.6",
- "react-test-renderer": "15.6"
+ "react-testing-library": "^5.0.0"
},
"jest": {
"testURL": "http://localhost",
diff --git a/test/react/16.2/package-lock.json b/test/react/16.2/package-lock.json
index 2eaab9872..4196a617a 100644
--- a/test/react/16.2/package-lock.json
+++ b/test/react/16.2/package-lock.json
@@ -30,12 +30,6 @@
}
}
},
- "@types/node": {
- "version": "10.5.4",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz",
- "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==",
- "dev": true
- },
"abab": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
@@ -594,12 +588,6 @@
"tweetnacl": "^0.14.3"
}
},
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
- "dev": true
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -742,20 +730,6 @@
"supports-color": "^5.3.0"
}
},
- "cheerio": {
- "version": "1.0.0-rc.2",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
- "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
- "dev": true,
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash": "^4.15.0",
- "parse5": "^3.0.1"
- }
- },
"ci-info": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
@@ -843,12 +817,6 @@
"integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
"dev": true
},
- "colors": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
- "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
- "dev": true
- },
"combined-stream": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
@@ -922,24 +890,29 @@
"which": "^1.2.9"
}
},
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "css": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz",
+ "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==",
"dev": true,
"requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
+ "inherits": "^2.0.1",
+ "source-map": "^0.1.38",
+ "source-map-resolve": "^0.5.1",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
}
},
- "css-what": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
- "dev": true
- },
"cssom": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
@@ -1103,36 +1076,41 @@
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
- "discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
- "dev": true
- },
- "dom-serializer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dom-testing-library": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/dom-testing-library/-/dom-testing-library-3.3.0.tgz",
+ "integrity": "sha512-on5xM8U+UszlUAmdHVzUnjNIRxM57Sv2k25YFjUcG+aUktYwQG2LJ0HTe8yBkL0Yyfi3iS9xpHRw0y87O+imbA==",
"dev": true,
"requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
+ "mutationobserver-shim": "^0.3.2",
+ "pretty-format": "^22.4.3",
+ "wait-for-expect": "^0.4.0"
},
"dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ },
+ "wait-for-expect": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-0.4.0.tgz",
+ "integrity": "sha512-itHoJUKL5P8abjhWRlp3F5QLDY7LokcJkgD78tjrX08ozBakfy9YD4bgxUVuSld8yqjza3ld6Sj7UMMOH/twFA==",
"dev": true
}
}
},
- "domelementtype": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
- "dev": true
- },
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -1142,25 +1120,6 @@
"webidl-conversions": "^4.0.2"
}
},
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -1181,61 +1140,6 @@
"iconv-lite": "~0.4.13"
}
},
- "entities": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
- "dev": true
- },
- "enzyme": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.3.0.tgz",
- "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==",
- "dev": true,
- "requires": {
- "cheerio": "^1.0.0-rc.2",
- "function.prototype.name": "^1.0.3",
- "has": "^1.0.1",
- "is-boolean-object": "^1.0.0",
- "is-callable": "^1.1.3",
- "is-number-object": "^1.0.3",
- "is-string": "^1.0.4",
- "is-subset": "^0.1.1",
- "lodash": "^4.17.4",
- "object-inspect": "^1.5.0",
- "object-is": "^1.0.1",
- "object.assign": "^4.1.0",
- "object.entries": "^1.0.4",
- "object.values": "^1.0.4",
- "raf": "^3.4.0",
- "rst-selector-parser": "^2.2.3"
- }
- },
- "enzyme-adapter-react-16": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz",
- "integrity": "sha512-kC8pAtU2Jk3OJ0EG8Y2813dg9Ol0TXi7UNxHzHiWs30Jo/hj7alc//G1YpKUsPP1oKl9X+Lkx+WlGJpPYA+nvw==",
- "dev": true,
- "requires": {
- "enzyme-adapter-utils": "^1.3.0",
- "lodash": "^4.17.4",
- "object.assign": "^4.0.4",
- "object.values": "^1.0.4",
- "prop-types": "^15.6.0",
- "react-reconciler": "^0.7.0",
- "react-test-renderer": "^16.0.0-0"
- }
- },
- "enzyme-adapter-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.4.0.tgz",
- "integrity": "sha512-ajvyXQYbmCoKCX/FaraNzBgXDXJBltCd0GdXfKc0DdRPYgCLaZfS6Ts576IFt8aX2GU9ajZv2g5jfcJ+Nttejw==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0",
- "prop-types": "^15.6.0"
- }
- },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -2224,17 +2128,6 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
- "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==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "is-callable": "^1.1.3"
- }
- },
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
@@ -2382,12 +2275,6 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
- },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -2445,20 +2332,6 @@
"whatwg-encoding": "^1.0.1"
}
},
- "htmlparser2": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -2495,6 +2368,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2541,12 +2420,6 @@
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
- "is-boolean-object": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz",
- "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=",
- "dev": true
- },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -2677,12 +2550,6 @@
"kind-of": "^3.0.2"
}
},
- "is-number-object": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz",
- "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=",
- "dev": true
- },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -2719,18 +2586,6 @@
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"dev": true
},
- "is-string": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
- "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
- "dev": true
- },
- "is-subset": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
- "dev": true
- },
"is-symbol": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
@@ -3008,6 +2863,75 @@
"detect-newline": "^2.1.0"
}
},
+ "jest-dom": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/jest-dom/-/jest-dom-1.12.0.tgz",
+ "integrity": "sha512-G8LplxieRJDOmTNJN2SzctewT9HoslclwzEW8znch98gSw5KeajIbporSqUuWHPRB8q8UQl0OI6AtUjGrNcniQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "css": "^2.2.3",
+ "jest-diff": "^22.4.3",
+ "jest-matcher-utils": "^22.4.3",
+ "pretty-format": "^23.0.1",
+ "redent": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
+ "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "diff": "^3.2.0",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
+ "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ }
+ }
+ },
"jest-each": {
"version": "23.4.0",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.4.0.tgz",
@@ -3494,12 +3418,6 @@
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
"dev": true
},
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
- "dev": true
- },
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -3718,18 +3636,18 @@
"minimist": "0.0.8"
}
},
- "moo": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz",
- "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
+ "mutationobserver-shim": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz",
+ "integrity": "sha1-9NXa56SXGiIHkU+1qQ69UUtlrMo=",
+ "dev": true
+ },
"nan": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
@@ -3770,19 +3688,6 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "nearley": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.0.tgz",
- "integrity": "sha512-ZjzdO+yBtMrRrBbr+BJ35ECla6PGCAb/6hqpBQe7bmhEJabQ4rpVdj4sadP1Z1jQGyaDmm1GciQWsGVxIZ3uJA==",
- "dev": true,
- "requires": {
- "moo": "^0.4.3",
- "nomnom": "~1.6.2",
- "railroad-diagrams": "^1.0.0",
- "randexp": "0.4.6",
- "semver": "^5.4.1"
- }
- },
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
@@ -3811,16 +3716,6 @@
"which": "^1.3.0"
}
},
- "nomnom": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz",
- "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=",
- "dev": true,
- "requires": {
- "colors": "0.5.x",
- "underscore": "~1.4.4"
- }
- },
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
@@ -3851,15 +3746,6 @@
"path-key": "^2.0.0"
}
},
- "nth-check": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
- "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -3906,18 +3792,6 @@
}
}
},
- "object-inspect": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
- "dev": true
- },
- "object-is": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
- "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
- "dev": true
- },
"object-keys": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
@@ -3933,30 +3807,6 @@
"isobject": "^3.0.0"
}
},
- "object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
- }
- },
- "object.entries": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
- "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"object.getownpropertydescriptors": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
@@ -3986,18 +3836,6 @@
"isobject": "^3.0.1"
}
},
- "object.values": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
- "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -4113,15 +3951,6 @@
"error-ex": "^1.2.0"
}
},
- "parse5": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
- "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -4306,31 +4135,6 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
- "raf": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
- "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
- "dev": true,
- "requires": {
- "performance-now": "^2.1.0"
- }
- },
- "railroad-diagrams": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=",
- "dev": true
- },
- "randexp": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
- "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
- "requires": {
- "discontinuous-range": "1.0.0",
- "ret": "~0.1.10"
- }
- },
"randomatic": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
@@ -4380,27 +4184,14 @@
"prop-types": "^15.6.0"
}
},
- "react-reconciler": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.7.0.tgz",
- "integrity": "sha512-50JwZ3yNyMS8fchN+jjWEJOH3Oze7UmhxeoJLn2j6f3NjpfCRbcmih83XTWmzqtar/ivd5f7tvQhvvhism2fgg==",
+ "react-testing-library": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/react-testing-library/-/react-testing-library-5.0.0.tgz",
+ "integrity": "sha512-blIVFDHj0j2klvcrudvz8BnMJ3xoGBBh2P0R70JTvlj7uH4rd3oSKcG0BeFolfbNahv6Gz2RZ+S3WCHg/iVSZA==",
"dev": true,
"requires": {
- "fbjs": "^0.8.16",
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0"
- }
- },
- "react-test-renderer": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz",
- "integrity": "sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==",
- "dev": true,
- "requires": {
- "fbjs": "^0.8.16",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0"
+ "dom-testing-library": "^3.1.0",
+ "wait-for-expect": "^1.0.0"
}
},
"read-pkg": {
@@ -4469,6 +4260,16 @@
"util.promisify": "^1.0.0"
}
},
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -4650,16 +4451,6 @@
"glob": "^7.0.5"
}
},
- "rst-selector-parser": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz",
- "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=",
- "dev": true,
- "requires": {
- "lodash.flattendeep": "^4.4.0",
- "nearley": "^2.7.10"
- }
- },
"rsvp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
@@ -5116,6 +4907,12 @@
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
"dev": true
},
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
"supports-color": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
@@ -5320,12 +5117,6 @@
"dev": true,
"optional": true
},
- "underscore": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
- "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
- "dev": true
- },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
@@ -5465,6 +5256,12 @@
"browser-process-hrtime": "^0.1.2"
}
},
+ "wait-for-expect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-1.0.0.tgz",
+ "integrity": "sha512-I6OlPKnd4qVdKJf1Gjx9M9qQjIk29rALoUkjwIKa9pNDCdzUuJTfaNv1mtsm2QdSvF0ZQogrWJMifTN1lUeXig==",
+ "dev": true
+ },
"walker": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
diff --git a/test/react/16.2/package.json b/test/react/16.2/package.json
index ec365eda0..8203406ef 100644
--- a/test/react/16.2/package.json
+++ b/test/react/16.2/package.json
@@ -2,12 +2,11 @@
"private": true,
"devDependencies": {
"create-react-class": "^15.6.3",
- "enzyme": "^3.3.0",
- "enzyme-adapter-react-16": "^1.0.6",
"jest": "^23.4.2",
+ "jest-dom": "^1.12.0",
"react": "16.2",
"react-dom": "16.2",
- "react-test-renderer": "16.2"
+ "react-testing-library": "^5.0.0"
},
"jest": {
"testURL": "http://localhost",
diff --git a/test/react/16.3/package-lock.json b/test/react/16.3/package-lock.json
index 9cd3b6ac0..876549adc 100644
--- a/test/react/16.3/package-lock.json
+++ b/test/react/16.3/package-lock.json
@@ -30,12 +30,6 @@
}
}
},
- "@types/node": {
- "version": "10.5.4",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz",
- "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==",
- "dev": true
- },
"abab": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
@@ -594,12 +588,6 @@
"tweetnacl": "^0.14.3"
}
},
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
- "dev": true
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -742,20 +730,6 @@
"supports-color": "^5.3.0"
}
},
- "cheerio": {
- "version": "1.0.0-rc.2",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
- "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
- "dev": true,
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash": "^4.15.0",
- "parse5": "^3.0.1"
- }
- },
"ci-info": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
@@ -843,12 +817,6 @@
"integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
"dev": true
},
- "colors": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
- "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
- "dev": true
- },
"combined-stream": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
@@ -922,24 +890,29 @@
"which": "^1.2.9"
}
},
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "css": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz",
+ "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==",
"dev": true,
"requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
+ "inherits": "^2.0.1",
+ "source-map": "^0.1.38",
+ "source-map-resolve": "^0.5.1",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
}
},
- "css-what": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
- "dev": true
- },
"cssom": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
@@ -1103,36 +1076,41 @@
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
- "discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
- "dev": true
- },
- "dom-serializer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dom-testing-library": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/dom-testing-library/-/dom-testing-library-3.3.0.tgz",
+ "integrity": "sha512-on5xM8U+UszlUAmdHVzUnjNIRxM57Sv2k25YFjUcG+aUktYwQG2LJ0HTe8yBkL0Yyfi3iS9xpHRw0y87O+imbA==",
"dev": true,
"requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
+ "mutationobserver-shim": "^0.3.2",
+ "pretty-format": "^22.4.3",
+ "wait-for-expect": "^0.4.0"
},
"dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ },
+ "wait-for-expect": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-0.4.0.tgz",
+ "integrity": "sha512-itHoJUKL5P8abjhWRlp3F5QLDY7LokcJkgD78tjrX08ozBakfy9YD4bgxUVuSld8yqjza3ld6Sj7UMMOH/twFA==",
"dev": true
}
}
},
- "domelementtype": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
- "dev": true
- },
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -1142,25 +1120,6 @@
"webidl-conversions": "^4.0.2"
}
},
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -1181,61 +1140,6 @@
"iconv-lite": "~0.4.13"
}
},
- "entities": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
- "dev": true
- },
- "enzyme": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.3.0.tgz",
- "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==",
- "dev": true,
- "requires": {
- "cheerio": "^1.0.0-rc.2",
- "function.prototype.name": "^1.0.3",
- "has": "^1.0.1",
- "is-boolean-object": "^1.0.0",
- "is-callable": "^1.1.3",
- "is-number-object": "^1.0.3",
- "is-string": "^1.0.4",
- "is-subset": "^0.1.1",
- "lodash": "^4.17.4",
- "object-inspect": "^1.5.0",
- "object-is": "^1.0.1",
- "object.assign": "^4.1.0",
- "object.entries": "^1.0.4",
- "object.values": "^1.0.4",
- "raf": "^3.4.0",
- "rst-selector-parser": "^2.2.3"
- }
- },
- "enzyme-adapter-react-16": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz",
- "integrity": "sha512-kC8pAtU2Jk3OJ0EG8Y2813dg9Ol0TXi7UNxHzHiWs30Jo/hj7alc//G1YpKUsPP1oKl9X+Lkx+WlGJpPYA+nvw==",
- "dev": true,
- "requires": {
- "enzyme-adapter-utils": "^1.3.0",
- "lodash": "^4.17.4",
- "object.assign": "^4.0.4",
- "object.values": "^1.0.4",
- "prop-types": "^15.6.0",
- "react-reconciler": "^0.7.0",
- "react-test-renderer": "^16.0.0-0"
- }
- },
- "enzyme-adapter-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.4.0.tgz",
- "integrity": "sha512-ajvyXQYbmCoKCX/FaraNzBgXDXJBltCd0GdXfKc0DdRPYgCLaZfS6Ts576IFt8aX2GU9ajZv2g5jfcJ+Nttejw==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0",
- "prop-types": "^15.6.0"
- }
- },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -2224,17 +2128,6 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
- "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==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "is-callable": "^1.1.3"
- }
- },
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
@@ -2382,12 +2275,6 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
- },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -2445,20 +2332,6 @@
"whatwg-encoding": "^1.0.1"
}
},
- "htmlparser2": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -2495,6 +2368,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2541,12 +2420,6 @@
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
- "is-boolean-object": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz",
- "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=",
- "dev": true
- },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -2677,12 +2550,6 @@
"kind-of": "^3.0.2"
}
},
- "is-number-object": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz",
- "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=",
- "dev": true
- },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -2719,18 +2586,6 @@
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"dev": true
},
- "is-string": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
- "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
- "dev": true
- },
- "is-subset": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
- "dev": true
- },
"is-symbol": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
@@ -3008,6 +2863,75 @@
"detect-newline": "^2.1.0"
}
},
+ "jest-dom": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/jest-dom/-/jest-dom-1.12.0.tgz",
+ "integrity": "sha512-G8LplxieRJDOmTNJN2SzctewT9HoslclwzEW8znch98gSw5KeajIbporSqUuWHPRB8q8UQl0OI6AtUjGrNcniQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "css": "^2.2.3",
+ "jest-diff": "^22.4.3",
+ "jest-matcher-utils": "^22.4.3",
+ "pretty-format": "^23.0.1",
+ "redent": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
+ "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "diff": "^3.2.0",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
+ "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ }
+ }
+ },
"jest-each": {
"version": "23.4.0",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.4.0.tgz",
@@ -3494,12 +3418,6 @@
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
"dev": true
},
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
- "dev": true
- },
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -3718,18 +3636,18 @@
"minimist": "0.0.8"
}
},
- "moo": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz",
- "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
+ "mutationobserver-shim": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz",
+ "integrity": "sha1-9NXa56SXGiIHkU+1qQ69UUtlrMo=",
+ "dev": true
+ },
"nan": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
@@ -3770,19 +3688,6 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "nearley": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.0.tgz",
- "integrity": "sha512-ZjzdO+yBtMrRrBbr+BJ35ECla6PGCAb/6hqpBQe7bmhEJabQ4rpVdj4sadP1Z1jQGyaDmm1GciQWsGVxIZ3uJA==",
- "dev": true,
- "requires": {
- "moo": "^0.4.3",
- "nomnom": "~1.6.2",
- "railroad-diagrams": "^1.0.0",
- "randexp": "0.4.6",
- "semver": "^5.4.1"
- }
- },
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
@@ -3811,16 +3716,6 @@
"which": "^1.3.0"
}
},
- "nomnom": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz",
- "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=",
- "dev": true,
- "requires": {
- "colors": "0.5.x",
- "underscore": "~1.4.4"
- }
- },
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
@@ -3851,15 +3746,6 @@
"path-key": "^2.0.0"
}
},
- "nth-check": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
- "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -3906,18 +3792,6 @@
}
}
},
- "object-inspect": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
- "dev": true
- },
- "object-is": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
- "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
- "dev": true
- },
"object-keys": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
@@ -3933,30 +3807,6 @@
"isobject": "^3.0.0"
}
},
- "object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
- }
- },
- "object.entries": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
- "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"object.getownpropertydescriptors": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
@@ -3986,18 +3836,6 @@
"isobject": "^3.0.1"
}
},
- "object.values": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
- "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -4113,15 +3951,6 @@
"error-ex": "^1.2.0"
}
},
- "parse5": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
- "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -4306,31 +4135,6 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
- "raf": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
- "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
- "dev": true,
- "requires": {
- "performance-now": "^2.1.0"
- }
- },
- "railroad-diagrams": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=",
- "dev": true
- },
- "randexp": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
- "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
- "requires": {
- "discontinuous-range": "1.0.0",
- "ret": "~0.1.10"
- }
- },
"randomatic": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
@@ -4380,34 +4184,14 @@
"prop-types": "^15.6.0"
}
},
- "react-is": {
- "version": "16.4.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.1.tgz",
- "integrity": "sha512-xpb0PpALlFWNw/q13A+1aHeyJyLYCg0/cCHPUA43zYluZuIPHaHL3k8OBsTgQtxqW0FhyDEMvi8fZ/+7+r4OSQ==",
- "dev": true
- },
- "react-reconciler": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.7.0.tgz",
- "integrity": "sha512-50JwZ3yNyMS8fchN+jjWEJOH3Oze7UmhxeoJLn2j6f3NjpfCRbcmih83XTWmzqtar/ivd5f7tvQhvvhism2fgg==",
+ "react-testing-library": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/react-testing-library/-/react-testing-library-5.0.0.tgz",
+ "integrity": "sha512-blIVFDHj0j2klvcrudvz8BnMJ3xoGBBh2P0R70JTvlj7uH4rd3oSKcG0BeFolfbNahv6Gz2RZ+S3WCHg/iVSZA==",
"dev": true,
"requires": {
- "fbjs": "^0.8.16",
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0"
- }
- },
- "react-test-renderer": {
- "version": "16.3.2",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.3.2.tgz",
- "integrity": "sha512-lL8WHIpCTMdSe+CRkt0rfMxBkJFyhVrpdQ54BaJRIrXf9aVmbeHbRA8GFRpTvohPN5tPzMabmrzW2PUfWCfWwQ==",
- "dev": true,
- "requires": {
- "fbjs": "^0.8.16",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0",
- "react-is": "^16.3.2"
+ "dom-testing-library": "^3.1.0",
+ "wait-for-expect": "^1.0.0"
}
},
"read-pkg": {
@@ -4476,6 +4260,16 @@
"util.promisify": "^1.0.0"
}
},
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -4657,16 +4451,6 @@
"glob": "^7.0.5"
}
},
- "rst-selector-parser": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz",
- "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=",
- "dev": true,
- "requires": {
- "lodash.flattendeep": "^4.4.0",
- "nearley": "^2.7.10"
- }
- },
"rsvp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
@@ -5123,6 +4907,12 @@
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
"dev": true
},
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
"supports-color": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
@@ -5327,12 +5117,6 @@
"dev": true,
"optional": true
},
- "underscore": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
- "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
- "dev": true
- },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
@@ -5472,6 +5256,12 @@
"browser-process-hrtime": "^0.1.2"
}
},
+ "wait-for-expect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-1.0.0.tgz",
+ "integrity": "sha512-I6OlPKnd4qVdKJf1Gjx9M9qQjIk29rALoUkjwIKa9pNDCdzUuJTfaNv1mtsm2QdSvF0ZQogrWJMifTN1lUeXig==",
+ "dev": true
+ },
"walker": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
diff --git a/test/react/16.3/package.json b/test/react/16.3/package.json
index 305ecbdb7..87dbb8138 100644
--- a/test/react/16.3/package.json
+++ b/test/react/16.3/package.json
@@ -2,12 +2,11 @@
"private": true,
"devDependencies": {
"create-react-class": "^15.6.3",
- "enzyme": "^3.3.0",
- "enzyme-adapter-react-16": "^1.0.6",
"jest": "^23.4.2",
+ "jest-dom": "^1.12.0",
"react": "16.3",
"react-dom": "16.3",
- "react-test-renderer": "16.3"
+ "react-testing-library": "^5.0.0"
},
"jest": {
"testURL": "http://localhost",
diff --git a/test/react/16.4/package-lock.json b/test/react/16.4/package-lock.json
index d792a1dce..48e815edb 100644
--- a/test/react/16.4/package-lock.json
+++ b/test/react/16.4/package-lock.json
@@ -30,12 +30,6 @@
}
}
},
- "@types/node": {
- "version": "10.5.4",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz",
- "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==",
- "dev": true
- },
"abab": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
@@ -594,12 +588,6 @@
"tweetnacl": "^0.14.3"
}
},
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
- "dev": true
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -742,20 +730,6 @@
"supports-color": "^5.3.0"
}
},
- "cheerio": {
- "version": "1.0.0-rc.2",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
- "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
- "dev": true,
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash": "^4.15.0",
- "parse5": "^3.0.1"
- }
- },
"ci-info": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
@@ -843,12 +817,6 @@
"integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
"dev": true
},
- "colors": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
- "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
- "dev": true
- },
"combined-stream": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
@@ -922,24 +890,29 @@
"which": "^1.2.9"
}
},
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "css": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz",
+ "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==",
"dev": true,
"requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
+ "inherits": "^2.0.1",
+ "source-map": "^0.1.38",
+ "source-map-resolve": "^0.5.1",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
}
},
- "css-what": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
- "dev": true
- },
"cssom": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
@@ -1103,36 +1076,41 @@
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
- "discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
- "dev": true
- },
- "dom-serializer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dom-testing-library": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/dom-testing-library/-/dom-testing-library-3.3.0.tgz",
+ "integrity": "sha512-on5xM8U+UszlUAmdHVzUnjNIRxM57Sv2k25YFjUcG+aUktYwQG2LJ0HTe8yBkL0Yyfi3iS9xpHRw0y87O+imbA==",
"dev": true,
"requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
+ "mutationobserver-shim": "^0.3.2",
+ "pretty-format": "^22.4.3",
+ "wait-for-expect": "^0.4.0"
},
"dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ },
+ "wait-for-expect": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-0.4.0.tgz",
+ "integrity": "sha512-itHoJUKL5P8abjhWRlp3F5QLDY7LokcJkgD78tjrX08ozBakfy9YD4bgxUVuSld8yqjza3ld6Sj7UMMOH/twFA==",
"dev": true
}
}
},
- "domelementtype": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
- "dev": true
- },
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -1142,25 +1120,6 @@
"webidl-conversions": "^4.0.2"
}
},
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -1181,61 +1140,6 @@
"iconv-lite": "~0.4.13"
}
},
- "entities": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
- "dev": true
- },
- "enzyme": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.3.0.tgz",
- "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==",
- "dev": true,
- "requires": {
- "cheerio": "^1.0.0-rc.2",
- "function.prototype.name": "^1.0.3",
- "has": "^1.0.1",
- "is-boolean-object": "^1.0.0",
- "is-callable": "^1.1.3",
- "is-number-object": "^1.0.3",
- "is-string": "^1.0.4",
- "is-subset": "^0.1.1",
- "lodash": "^4.17.4",
- "object-inspect": "^1.5.0",
- "object-is": "^1.0.1",
- "object.assign": "^4.1.0",
- "object.entries": "^1.0.4",
- "object.values": "^1.0.4",
- "raf": "^3.4.0",
- "rst-selector-parser": "^2.2.3"
- }
- },
- "enzyme-adapter-react-16": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz",
- "integrity": "sha512-kC8pAtU2Jk3OJ0EG8Y2813dg9Ol0TXi7UNxHzHiWs30Jo/hj7alc//G1YpKUsPP1oKl9X+Lkx+WlGJpPYA+nvw==",
- "dev": true,
- "requires": {
- "enzyme-adapter-utils": "^1.3.0",
- "lodash": "^4.17.4",
- "object.assign": "^4.0.4",
- "object.values": "^1.0.4",
- "prop-types": "^15.6.0",
- "react-reconciler": "^0.7.0",
- "react-test-renderer": "^16.0.0-0"
- }
- },
- "enzyme-adapter-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.4.0.tgz",
- "integrity": "sha512-ajvyXQYbmCoKCX/FaraNzBgXDXJBltCd0GdXfKc0DdRPYgCLaZfS6Ts576IFt8aX2GU9ajZv2g5jfcJ+Nttejw==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0",
- "prop-types": "^15.6.0"
- }
- },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -2224,17 +2128,6 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
- "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==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "is-callable": "^1.1.3"
- }
- },
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
@@ -2382,12 +2275,6 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
- },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -2445,20 +2332,6 @@
"whatwg-encoding": "^1.0.1"
}
},
- "htmlparser2": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -2495,6 +2368,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2541,12 +2420,6 @@
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
- "is-boolean-object": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz",
- "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=",
- "dev": true
- },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -2677,12 +2550,6 @@
"kind-of": "^3.0.2"
}
},
- "is-number-object": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz",
- "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=",
- "dev": true
- },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -2719,18 +2586,6 @@
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"dev": true
},
- "is-string": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
- "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
- "dev": true
- },
- "is-subset": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
- "dev": true
- },
"is-symbol": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
@@ -3008,6 +2863,75 @@
"detect-newline": "^2.1.0"
}
},
+ "jest-dom": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/jest-dom/-/jest-dom-1.12.0.tgz",
+ "integrity": "sha512-G8LplxieRJDOmTNJN2SzctewT9HoslclwzEW8znch98gSw5KeajIbporSqUuWHPRB8q8UQl0OI6AtUjGrNcniQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "css": "^2.2.3",
+ "jest-diff": "^22.4.3",
+ "jest-matcher-utils": "^22.4.3",
+ "pretty-format": "^23.0.1",
+ "redent": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
+ "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "diff": "^3.2.0",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
+ "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "jest-get-type": "^22.4.3",
+ "pretty-format": "^22.4.3"
+ },
+ "dependencies": {
+ "pretty-format": {
+ "version": "22.4.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
+ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
+ }
+ }
+ }
+ }
+ }
+ },
"jest-each": {
"version": "23.4.0",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.4.0.tgz",
@@ -3494,12 +3418,6 @@
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
"dev": true
},
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
- "dev": true
- },
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -3718,18 +3636,18 @@
"minimist": "0.0.8"
}
},
- "moo": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz",
- "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
+ "mutationobserver-shim": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz",
+ "integrity": "sha1-9NXa56SXGiIHkU+1qQ69UUtlrMo=",
+ "dev": true
+ },
"nan": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
@@ -3770,19 +3688,6 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "nearley": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.0.tgz",
- "integrity": "sha512-ZjzdO+yBtMrRrBbr+BJ35ECla6PGCAb/6hqpBQe7bmhEJabQ4rpVdj4sadP1Z1jQGyaDmm1GciQWsGVxIZ3uJA==",
- "dev": true,
- "requires": {
- "moo": "^0.4.3",
- "nomnom": "~1.6.2",
- "railroad-diagrams": "^1.0.0",
- "randexp": "0.4.6",
- "semver": "^5.4.1"
- }
- },
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
@@ -3811,16 +3716,6 @@
"which": "^1.3.0"
}
},
- "nomnom": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz",
- "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=",
- "dev": true,
- "requires": {
- "colors": "0.5.x",
- "underscore": "~1.4.4"
- }
- },
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
@@ -3851,15 +3746,6 @@
"path-key": "^2.0.0"
}
},
- "nth-check": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
- "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -3906,18 +3792,6 @@
}
}
},
- "object-inspect": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
- "dev": true
- },
- "object-is": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
- "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
- "dev": true
- },
"object-keys": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
@@ -3933,30 +3807,6 @@
"isobject": "^3.0.0"
}
},
- "object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
- }
- },
- "object.entries": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
- "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"object.getownpropertydescriptors": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
@@ -3986,18 +3836,6 @@
"isobject": "^3.0.1"
}
},
- "object.values": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
- "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.6.1",
- "function-bind": "^1.1.0",
- "has": "^1.0.1"
- }
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -4113,15 +3951,6 @@
"error-ex": "^1.2.0"
}
},
- "parse5": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
- "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -4306,31 +4135,6 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
- "raf": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
- "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
- "dev": true,
- "requires": {
- "performance-now": "^2.1.0"
- }
- },
- "railroad-diagrams": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=",
- "dev": true
- },
- "randexp": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
- "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
- "requires": {
- "discontinuous-range": "1.0.0",
- "ret": "~0.1.10"
- }
- },
"randomatic": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
@@ -4380,34 +4184,14 @@
"prop-types": "^15.6.0"
}
},
- "react-is": {
- "version": "16.4.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.1.tgz",
- "integrity": "sha512-xpb0PpALlFWNw/q13A+1aHeyJyLYCg0/cCHPUA43zYluZuIPHaHL3k8OBsTgQtxqW0FhyDEMvi8fZ/+7+r4OSQ==",
- "dev": true
- },
- "react-reconciler": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.7.0.tgz",
- "integrity": "sha512-50JwZ3yNyMS8fchN+jjWEJOH3Oze7UmhxeoJLn2j6f3NjpfCRbcmih83XTWmzqtar/ivd5f7tvQhvvhism2fgg==",
+ "react-testing-library": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/react-testing-library/-/react-testing-library-5.0.0.tgz",
+ "integrity": "sha512-blIVFDHj0j2klvcrudvz8BnMJ3xoGBBh2P0R70JTvlj7uH4rd3oSKcG0BeFolfbNahv6Gz2RZ+S3WCHg/iVSZA==",
"dev": true,
"requires": {
- "fbjs": "^0.8.16",
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0"
- }
- },
- "react-test-renderer": {
- "version": "16.4.1",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.4.1.tgz",
- "integrity": "sha512-wyyiPxRZOTpKnNIgUBOB6xPLTpIzwcQMIURhZvzUqZzezvHjaGNsDPBhMac5fIY3Jf5NuKxoGvV64zDSOECPPQ==",
- "dev": true,
- "requires": {
- "fbjs": "^0.8.16",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0",
- "react-is": "^16.4.1"
+ "dom-testing-library": "^3.1.0",
+ "wait-for-expect": "^1.0.0"
}
},
"read-pkg": {
@@ -4476,6 +4260,16 @@
"util.promisify": "^1.0.0"
}
},
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -4657,16 +4451,6 @@
"glob": "^7.0.5"
}
},
- "rst-selector-parser": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz",
- "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=",
- "dev": true,
- "requires": {
- "lodash.flattendeep": "^4.4.0",
- "nearley": "^2.7.10"
- }
- },
"rsvp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
@@ -5123,6 +4907,12 @@
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
"dev": true
},
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
"supports-color": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
@@ -5327,12 +5117,6 @@
"dev": true,
"optional": true
},
- "underscore": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
- "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
- "dev": true
- },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
@@ -5472,6 +5256,12 @@
"browser-process-hrtime": "^0.1.2"
}
},
+ "wait-for-expect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-1.0.0.tgz",
+ "integrity": "sha512-I6OlPKnd4qVdKJf1Gjx9M9qQjIk29rALoUkjwIKa9pNDCdzUuJTfaNv1mtsm2QdSvF0ZQogrWJMifTN1lUeXig==",
+ "dev": true
+ },
"walker": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
diff --git a/test/react/16.4/package.json b/test/react/16.4/package.json
index d1791a27f..ffab3ce8d 100644
--- a/test/react/16.4/package.json
+++ b/test/react/16.4/package.json
@@ -2,12 +2,11 @@
"private": true,
"devDependencies": {
"create-react-class": "^15.6.3",
- "enzyme": "^3.3.0",
- "enzyme-adapter-react-16": "^1.0.6",
"jest": "^23.4.2",
+ "jest-dom": "^1.12.0",
"react": "16.4",
"react-dom": "16.4",
- "react-test-renderer": "16.4"
+ "react-testing-library": "^5.0.0"
},
"jest": {
"testURL": "http://localhost",
diff --git a/wallaby.js b/wallaby.js
new file mode 100644
index 000000000..011a89690
--- /dev/null
+++ b/wallaby.js
@@ -0,0 +1,23 @@
+module.exports = function(wallaby) {
+ return {
+ files: [
+ { pattern: 'test/**/*.spec.js', ignore: true },
+ 'src/**/*.js*',
+ 'test/getTestDeps.js'
+ ],
+ tests: [
+ { pattern: 'node_modules/*', ignore: true, instrument: false },
+ { pattern: 'test/react/**/*.spec.js', ignore: true, instrument: false },
+ 'test/**/*.spec.js*',
+ ],
+ compilers: {
+ '**/*.js': wallaby.compilers.babel({
+ babel: require('babel-core'),
+ }),
+ },
+ env: {
+ type: 'node'
+ },
+ testFramework: 'jest'
+ }
+}