3 Commits
Author SHA1 Message Date
Christophe Porteneuve 3359972679 Fin P5Ch6 - Snapshots 2017-12-08 16:13:49 +01:00
Christophe Porteneuve 3a13416399 Fin P5Ch5 - Événements 2017-12-08 16:00:12 +01:00
Christophe Porteneuve e63b31b5e5 Fin P5Ch4 - Enzyme 2017-12-08 15:34:25 +01:00
8 changed files with 807 additions and 10 deletions
+442
View File
@@ -4,6 +4,12 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@types/node": {
"version": "8.0.57",
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.57.tgz",
"integrity": "sha512-ZxrhcBxlZA7tn0HFf7ebUYfR9aHyBgjyavBLzyrYMYuAMbONBPY4S5O35562iV2FfwnZCjQky3gTDy1B3jSZ2Q==",
"dev": true
},
"abab": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
@@ -1565,6 +1571,15 @@
"type-detect": "4.0.5"
}
},
"chai-enzyme": {
"version": "1.0.0-beta.0",
"resolved": "https://registry.npmjs.org/chai-enzyme/-/chai-enzyme-1.0.0-beta.0.tgz",
"integrity": "sha512-b2XJjyW1PfnW5a5ZBBcZWZJUhq8CA1kpTyXLf4Nac+EaiTuIyYeYN0Ft0qYoW+clinusKDhvJygiVktjhvvFvg==",
"dev": true,
"requires": {
"html": "1.0.0"
}
},
"chai-jest-diff": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/chai-jest-diff/-/chai-jest-diff-1.0.1.tgz",
@@ -1575,6 +1590,82 @@
"jest-matcher-utils": "20.0.3"
}
},
"chai-jest-snapshot": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/chai-jest-snapshot/-/chai-jest-snapshot-2.0.0.tgz",
"integrity": "sha512-u8jZZjw/0G1t5A8wDfH6K7DAVfMg3g0dsw9wKQURNUyrZX96VojHNrFMmLirq1m0kOvC5icgL/Qh/fu1MZyvUw==",
"dev": true,
"requires": {
"jest-snapshot": "21.2.1",
"lodash.values": "4.3.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
},
"chalk": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
"integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
"dev": true,
"requires": {
"ansi-styles": "3.2.0",
"escape-string-regexp": "1.0.5",
"supports-color": "4.5.0"
}
},
"jest-diff": {
"version": "21.2.1",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz",
"integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==",
"dev": true,
"requires": {
"chalk": "2.3.0",
"diff": "3.4.0",
"jest-get-type": "21.2.0",
"pretty-format": "21.2.1"
}
},
"jest-matcher-utils": {
"version": "21.2.1",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz",
"integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==",
"dev": true,
"requires": {
"chalk": "2.3.0",
"jest-get-type": "21.2.0",
"pretty-format": "21.2.1"
}
},
"jest-snapshot": {
"version": "21.2.1",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz",
"integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==",
"dev": true,
"requires": {
"chalk": "2.3.0",
"jest-diff": "21.2.1",
"jest-matcher-utils": "21.2.1",
"mkdirp": "0.5.1",
"natural-compare": "1.4.0",
"pretty-format": "21.2.1"
}
},
"pretty-format": {
"version": "21.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz",
"integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==",
"dev": true,
"requires": {
"ansi-regex": "3.0.0",
"ansi-styles": "3.2.0"
}
}
}
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
@@ -1610,6 +1701,54 @@
"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
"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.2",
"lodash": "4.17.4",
"parse5": "3.0.3"
},
"dependencies": {
"domhandler": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz",
"integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=",
"dev": true,
"requires": {
"domelementtype": "1.3.0"
}
},
"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.4.1",
"domutils": "1.5.1",
"entities": "1.1.1",
"inherits": "2.0.3",
"readable-stream": "2.3.3"
}
},
"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": "8.0.57"
}
}
}
},
"chokidar": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
@@ -2416,6 +2555,12 @@
"integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==",
"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
},
"dns-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
@@ -2610,6 +2755,59 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
},
"enzyme": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.2.0.tgz",
"integrity": "sha512-l0HcjycivXjB4IXkwuRc1K5z8hzWIVZB2b/Y/H2bao9eFTpBz4ACOwAQf44SgG5Nu3d1jF41LasxDgFWZeeysA==",
"dev": true,
"requires": {
"cheerio": "1.0.0-rc.2",
"function.prototype.name": "1.0.3",
"has": "1.0.1",
"is-subset": "0.1.1",
"lodash": "4.17.4",
"object-is": "1.0.1",
"object.assign": "4.0.4",
"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.0",
"resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.0.tgz",
"integrity": "sha512-OlZJn5PJUJ91EOQQRuISZpXgPlqT9fYR2yBZQPu9UYok+wS19Rn4teXywF34LMcyw2AzE1s0ZRDtcI952/vQHg==",
"dev": true,
"requires": {
"enzyme-adapter-utils": "1.2.0",
"lodash": "4.17.4",
"object.assign": "4.0.4",
"object.values": "1.0.4",
"prop-types": "15.6.0",
"react-test-renderer": "16.2.0"
}
},
"enzyme-adapter-utils": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.2.0.tgz",
"integrity": "sha512-6CeIrmymLWoQgvH5m/ixJLaCsa6pSoWU2nlMeO0nHCZR8LQ+tKzP/jPh4qceTPlB4oFfyMRFeqr0+IryY4gAxg==",
"dev": true,
"requires": {
"lodash": "4.17.4",
"object.assign": "4.0.4",
"prop-types": "15.6.0"
}
},
"enzyme-to-json": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.2.2.tgz",
"integrity": "sha512-Paym79t9PFsTxvazN5+k9aZfoZO+lul/qDLspL1UlNwhbg+RUczVuuP4SO/RZ/sFRxal3dPCl+5VmqtCE1bxBw==",
"dev": true,
"requires": {
"lodash": "4.17.4"
}
},
"errno": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
@@ -3489,6 +3687,15 @@
"mime-types": "2.1.17"
}
},
"formatio": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz",
"integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=",
"dev": true,
"requires": {
"samsam": "1.3.0"
}
},
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -4304,6 +4511,17 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"function.prototype.name": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz",
"integrity": "sha512-5EblxZUdioXi2JiMZ9FUbwYj40eQ9MFHyzFLBSPdlRl3SO8l7SLWuAnQ/at/1Wi4hjJwME/C5WpF2ZfAc8nGNw==",
"dev": true,
"requires": {
"define-properties": "1.1.2",
"function-bind": "1.1.1",
"is-callable": "1.1.3"
}
},
"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",
@@ -4626,6 +4844,15 @@
"wbuf": "1.7.2"
}
},
"html": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/html/-/html-1.0.0.tgz",
"integrity": "sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E=",
"dev": true,
"requires": {
"concat-stream": "1.6.0"
}
},
"html-comment-regex": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
@@ -5159,6 +5386,12 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
"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-svg": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
@@ -5444,6 +5677,12 @@
"jest-util": "20.0.3"
}
},
"jest-get-type": {
"version": "21.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz",
"integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==",
"dev": true
},
"jest-haste-map": {
"version": "20.0.5",
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz",
@@ -5728,6 +5967,12 @@
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
"integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE="
},
"just-extend": {
"version": "1.1.27",
"resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz",
"integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==",
"dev": true
},
"killable": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
@@ -5896,6 +6141,18 @@
"resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
"integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw="
},
"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.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
"integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
"dev": true
},
"lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -5928,11 +6185,23 @@
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
},
"lodash.values": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz",
"integrity": "sha1-o6bCsOvsxcLLocF+bmIP6BtT00c=",
"dev": true
},
"loglevel": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz",
"integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ="
},
"lolex": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.1.tgz",
"integrity": "sha512-mQuW55GhduF3ppo+ZRUTz1PRjEh1hS5BbqU7d8D0ez2OKxHDod7StPPeAVKisZR5aLkHZjdGWSL42LSONUJsZw==",
"dev": true
},
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -6219,11 +6488,43 @@
"xml-char-classes": "1.0.0"
}
},
"nearley": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/nearley/-/nearley-2.11.0.tgz",
"integrity": "sha512-clqqhEuP0ZCJQ85Xv2I/4o2Gs/fvSR6fCg5ZHVE2c8evWyNk2G++ih4JOO3lMb/k/09x6ihQ2nzKUlB/APCWjg==",
"dev": true,
"requires": {
"nomnom": "1.6.2",
"railroad-diagrams": "1.0.0",
"randexp": "0.4.6"
}
},
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
"nise": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/nise/-/nise-1.2.0.tgz",
"integrity": "sha512-q9jXh3UNsMV28KeqI43ILz5+c3l+RiNW8mhurEwCKckuHQbL+hTJIKKTiUlCPKlgQ/OukFvSnKB/Jk3+sFbkGA==",
"dev": true,
"requires": {
"formatio": "1.2.0",
"just-extend": "1.1.27",
"lolex": "1.6.0",
"path-to-regexp": "1.7.0",
"text-encoding": "0.6.4"
},
"dependencies": {
"lolex": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz",
"integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=",
"dev": true
}
}
},
"no-case": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
@@ -6297,6 +6598,24 @@
"resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
"integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="
},
"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.1",
"underscore": "1.4.4"
},
"dependencies": {
"colors": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
"integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
"dev": true
}
}
},
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
@@ -6378,11 +6697,40 @@
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.2.0.tgz",
"integrity": "sha512-smRWXzkvxw72VquyZ0wggySl7PFUtoDhvhpdwgESXxUrH7vVhhp9asfup1+rVLrhsl7L45Ee1Q/l5R2Ul4MwUg=="
},
"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",
"integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
},
"object.assign": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz",
"integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=",
"dev": true,
"requires": {
"define-properties": "1.1.2",
"function-bind": "1.1.1",
"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.10.0",
"function-bind": "1.1.1",
"has": "1.0.1"
}
},
"object.omit": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
@@ -6392,6 +6740,18 @@
"is-extendable": "0.1.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.10.0",
"function-bind": "1.1.1",
"has": "1.0.1"
}
},
"obuf": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz",
@@ -8038,6 +8398,22 @@
"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.15"
}
},
"randomatic": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
@@ -8458,6 +8834,17 @@
}
}
},
"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"
}
},
"read-all-stream": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
@@ -8815,6 +9202,12 @@
"signal-exit": "3.0.2"
}
},
"ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
"dev": true
},
"right-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
@@ -8840,6 +9233,16 @@
"inherits": "2.0.3"
}
},
"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.11.0"
}
},
"run-async": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
@@ -8866,6 +9269,12 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
"samsam": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz",
"integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==",
"dev": true
},
"sane": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz",
@@ -9062,6 +9471,27 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"sinon": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/sinon/-/sinon-4.1.3.tgz",
"integrity": "sha512-c7u0ZuvBRX1eXuB4jN3BRCAOGiUTlM8SE3TxbJHrNiHUKL7wonujMOB6Fi1gQc00U91IscFORQHDga/eccqpbw==",
"dev": true,
"requires": {
"diff": "3.4.0",
"formatio": "1.2.0",
"lodash.get": "4.4.2",
"lolex": "2.3.1",
"nise": "1.2.0",
"supports-color": "4.5.0",
"type-detect": "4.0.5"
}
},
"sinon-chai": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.14.0.tgz",
"integrity": "sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ==",
"dev": true
},
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@@ -9447,6 +9877,12 @@
"require-main-filename": "1.0.1"
}
},
"text-encoding": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz",
"integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=",
"dev": true
},
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -9646,6 +10082,12 @@
}
}
},
"underscore": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
"integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
"dev": true
},
"uniq": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+10 -2
View File
@@ -12,17 +12,25 @@
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"devDependencies": {
"chai": "^4.1.2",
"chai-enzyme": "^1.0.0-beta.0",
"chai-jest-diff": "^1.0.1",
"chai-jest-snapshot": "^2.0.0",
"dirty-chai": "^2.0.1",
"enzyme": "^3.2.0",
"enzyme-adapter-react-16": "^1.1.0",
"enzyme-to-json": "^3.2.2",
"eslint-config-prettier": "^2.6.0",
"eslint-config-react-app": "^2.0.1",
"eslint-plugin-prettier": "^2.3.1",
"prettier": "^1.7.4"
"prettier": "^1.7.4",
"react-test-renderer": "^16.2.0",
"sinon": "^4.1.3",
"sinon-chai": "^2.14.0"
},
"prettier": {
"semi": false,
+1 -1
View File
@@ -9,7 +9,7 @@ import HallOfFame, { FAKE_HOF } from './HallOfFame'
import HighScoreInput from './HighScoreInput'
const SIDE = 6
const SYMBOLS = '😀🎉💖🎩🐶🐱🦄🐬🌍🌛🌞💫🍎🍌🍓🍐🍟🍿'
export const SYMBOLS = '😀🎉💖🎩🐶🐱🦄🐬🌍🌛🌞💫🍎🍌🍓🍐🍟🍿'
const VISUAL_PAUSE_MSECS = 750
class App extends Component {
+33 -5
View File
@@ -1,9 +1,37 @@
import { expect } from 'chai'
import React from 'react'
import ReactDOM from 'react-dom'
import { shallow } from 'enzyme'
import sinon from 'sinon'
import App from './App'
import App, { SYMBOLS } from './App'
import GuessCount from './GuessCount'
it('renders without crashing', () => {
const div = document.createElement('div')
ReactDOM.render(<App />, div)
describe('<App/>', () => {
it('renders without crashing', () => {
const wrapper = shallow(<App />)
})
it('contains a zero-guess counter', () => {
const wrapper = shallow(<App />)
expect(wrapper).to.contain(<GuessCount guesses={0} />)
})
it('has 36 cards', () => {
const wrapper = shallow(<App />)
expect(wrapper.find('Card')).to.have.length(36)
})
it('should match its reference snapshot', () => {
const mock = sinon
.stub(App.prototype, 'generateCards')
.returns([...SYMBOLS.repeat(2)])
try {
const wrapper = shallow(<App />)
expect(wrapper).to.matchSnapshot()
} finally {
mock.restore()
}
})
})
+27
View File
@@ -0,0 +1,27 @@
import { expect } from 'chai'
import React from 'react'
import { shallow } from 'enzyme'
import sinon from 'sinon'
import Card from './Card'
describe('<Card/>', () => {
it('should trigger its `onClick` prop when clicked', () => {
const onClick = sinon.spy()
const wrapper = shallow(
<Card card="😁" feedback="hidden" index={0} onClick={onClick} />
)
wrapper.simulate('click')
expect(onClick).to.have.been.calledWith(0)
})
it('should match its reference snapshot', () => {
const onClick = sinon.spy()
const wrapper = shallow(
<Card card="😁" feedback="hidden" index={0} onClick={onClick} />
)
expect(wrapper).to.matchSnapshot()
})
})
+263
View File
@@ -0,0 +1,263 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<App/> should match its reference snapshot 1`] = `
<div
className="memory"
>
<GuessCount
guesses={0}
/>
<Card
card="😀"
feedback="hidden"
index={0}
key="0"
onClick={[Function]}
/>
<Card
card="🎉"
feedback="hidden"
index={1}
key="1"
onClick={[Function]}
/>
<Card
card="💖"
feedback="hidden"
index={2}
key="2"
onClick={[Function]}
/>
<Card
card="🎩"
feedback="hidden"
index={3}
key="3"
onClick={[Function]}
/>
<Card
card="🐶"
feedback="hidden"
index={4}
key="4"
onClick={[Function]}
/>
<Card
card="🐱"
feedback="hidden"
index={5}
key="5"
onClick={[Function]}
/>
<Card
card="🦄"
feedback="hidden"
index={6}
key="6"
onClick={[Function]}
/>
<Card
card="🐬"
feedback="hidden"
index={7}
key="7"
onClick={[Function]}
/>
<Card
card="🌍"
feedback="hidden"
index={8}
key="8"
onClick={[Function]}
/>
<Card
card="🌛"
feedback="hidden"
index={9}
key="9"
onClick={[Function]}
/>
<Card
card="🌞"
feedback="hidden"
index={10}
key="10"
onClick={[Function]}
/>
<Card
card="💫"
feedback="hidden"
index={11}
key="11"
onClick={[Function]}
/>
<Card
card="🍎"
feedback="hidden"
index={12}
key="12"
onClick={[Function]}
/>
<Card
card="🍌"
feedback="hidden"
index={13}
key="13"
onClick={[Function]}
/>
<Card
card="🍓"
feedback="hidden"
index={14}
key="14"
onClick={[Function]}
/>
<Card
card="🍐"
feedback="hidden"
index={15}
key="15"
onClick={[Function]}
/>
<Card
card="🍟"
feedback="hidden"
index={16}
key="16"
onClick={[Function]}
/>
<Card
card="🍿"
feedback="hidden"
index={17}
key="17"
onClick={[Function]}
/>
<Card
card="😀"
feedback="hidden"
index={18}
key="18"
onClick={[Function]}
/>
<Card
card="🎉"
feedback="hidden"
index={19}
key="19"
onClick={[Function]}
/>
<Card
card="💖"
feedback="hidden"
index={20}
key="20"
onClick={[Function]}
/>
<Card
card="🎩"
feedback="hidden"
index={21}
key="21"
onClick={[Function]}
/>
<Card
card="🐶"
feedback="hidden"
index={22}
key="22"
onClick={[Function]}
/>
<Card
card="🐱"
feedback="hidden"
index={23}
key="23"
onClick={[Function]}
/>
<Card
card="🦄"
feedback="hidden"
index={24}
key="24"
onClick={[Function]}
/>
<Card
card="🐬"
feedback="hidden"
index={25}
key="25"
onClick={[Function]}
/>
<Card
card="🌍"
feedback="hidden"
index={26}
key="26"
onClick={[Function]}
/>
<Card
card="🌛"
feedback="hidden"
index={27}
key="27"
onClick={[Function]}
/>
<Card
card="🌞"
feedback="hidden"
index={28}
key="28"
onClick={[Function]}
/>
<Card
card="💫"
feedback="hidden"
index={29}
key="29"
onClick={[Function]}
/>
<Card
card="🍎"
feedback="hidden"
index={30}
key="30"
onClick={[Function]}
/>
<Card
card="🍌"
feedback="hidden"
index={31}
key="31"
onClick={[Function]}
/>
<Card
card="🍓"
feedback="hidden"
index={32}
key="32"
onClick={[Function]}
/>
<Card
card="🍐"
feedback="hidden"
index={33}
key="33"
onClick={[Function]}
/>
<Card
card="🍟"
feedback="hidden"
index={34}
key="34"
onClick={[Function]}
/>
<Card
card="🍿"
feedback="hidden"
index={35}
key="35"
onClick={[Function]}
/>
</div>
`;
+14
View File
@@ -0,0 +1,14 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<Card/> should match its reference snapshot 1`] = `
<div
className="card hidden"
onClick={[Function]}
>
<span
className="symbol"
>
❓
</span>
</div>
`;
+17 -2
View File
@@ -1,5 +1,20 @@
import Adapter from 'enzyme-adapter-react-16'
import chai from 'chai'
import dirtyChai from 'dirty-chai'
import { configure as configureEnzyme } from 'enzyme'
import chaiJestSnapshot from 'chai-jest-snapshot'
import createChaiEnzyme from 'chai-enzyme'
import createChaiJestDiff from 'chai-jest-diff'
import dirtyChai from 'dirty-chai'
import enzymeToJSON from 'enzyme-to-json/serializer'
import sinonChai from 'sinon-chai'
chai.use(dirtyChai).use(createChaiJestDiff())
chai
.use(dirtyChai)
.use(createChaiJestDiff())
.use(chaiJestSnapshot)
.use(createChaiEnzyme())
.use(sinonChai)
expect.addSnapshotSerializer(enzymeToJSON)
configureEnzyme({ adapter: new Adapter() })