diff --git a/.aat.yml b/.aat.yml deleted file mode 100755 index ecd6067f1..000000000 --- a/.aat.yml +++ /dev/null @@ -1,68 +0,0 @@ -# optional - Specify the rule pack server to use. (Where to pull the rules and engine from) -# Default: https://cc-rules.w3ibm.mybluemix.net/js/latest/ -rulePack: https://cc-rules.w3ibm.mybluemix.net/js/latest/ - -# optional - Specify one or many policies to scan. -# i.e. For one policy use policies: CI162_5_2_DCP080115 -# i.e. Multiple policies: CI162_5_2_DCP080115,CI162_5_2_DCP070116 or refer to below as a list -# Default: CI162_5_2_DCP070116 -policies: - - CI162_5_2_DCP070116 - - CI162_5_2_DCP080115 - -# optional - Specify one or many violation levels on which to fail the test -# i.e. If specified violation then the testcase will only fail if -# a violation is found uring the scan. -# i.e. failLevels: violation -# i.e. failLevels: violation,potential violation or refer to below as a list -# Default: violation, potentialviolation -failLevels: - - violation - -# optional - Specify one or many violation levels which should be reported -# i.e. If specified violation then in the report it would only contain -# results which are level of violation. -# i.e. reportLevels: violation -# i.e. reportLevels: violation,potentialviolation or refer to below as a list -# Default: violation, potentialviolation, recommendation, potentialrecommendation, manual -reportLevels: - - violation - -# Optional - Specify if screenshoot should be captured of the current page that is being scanned -# If the browser in use provides screen capture capability -# Default: true -captureScreenshots: true - -# Optional - Which type should the results be outputted to -# outputFormat: json,csv -# Default: json -outputFormat: - - json - -# Optional - Specify labels that you would like associated to your scan -# -# i.e. -# label: Firefox,master,V12,Linux -# label: -# - Firefox -# - master -# - V12 -# - Linux -# Default: N/A -label: - - Chrome - - master - -# optional - Where the scan results should be saved -# Default: results -outputFolder: a11y/results - -# optional - Where baselines are stored -# Default: baselines -baselineFolder: a11y/baselines - -# optional - Should Hidden content be scanned -# true --> Yes scan hidden content -# false --> Don't scan hidden content -# Default: true -checkHiddenContent: true diff --git a/.all-contributorsrc b/.all-contributorsrc deleted file mode 100755 index f53bfa71b..000000000 --- a/.all-contributorsrc +++ /dev/null @@ -1,557 +0,0 @@ -{ - "projectName": "wfp-ui", - "projectOwner": "wfp", - "files": [ - "README.md" - ], - "imageSize": 100, - "commit": true, - "contributors": [ - { - "login": "hellobrian", - "name": "Brian Han", - "avatar_url": "https://avatars3.githubusercontent.com/u/4185382?v=4", - "profile": "https://github.com/hellobrian", - "contributions": [ - "code" - ] - }, - { - "login": "chrisdhanaraj", - "name": "Chris Dhanaraj", - "avatar_url": "https://avatars2.githubusercontent.com/u/1266014?v=4", - "profile": "http://twitter.com/chrisdhanaraj", - "contributions": [ - "code" - ] - }, - { - "login": "nsand", - "name": "Nick Sandonato", - "avatar_url": "https://avatars0.githubusercontent.com/u/181819?v=4", - "profile": "https://github.com/nsand", - "contributions": [ - "code" - ] - }, - { - "login": "tw15egan", - "name": "TJ Egan", - "avatar_url": "https://avatars1.githubusercontent.com/u/11928039?v=4", - "profile": "http://tw15egan.github.io/portfolio", - "contributions": [ - "code" - ] - }, - { - "login": "marijohannessen", - "name": "Mari Johannessen", - "avatar_url": "https://avatars0.githubusercontent.com/u/5447411?v=4", - "profile": "http://www.marijohannessen.com", - "contributions": [ - "code" - ] - }, - { - "login": "sam1463", - "name": "Sam Doyle", - "avatar_url": "https://avatars1.githubusercontent.com/u/8836958?v=4", - "profile": "https://github.com/sam1463", - "contributions": [ - "code" - ] - }, - { - "login": "shimmerjs", - "name": "alex weidner", - "avatar_url": "https://avatars0.githubusercontent.com/u/6420214?v=4", - "profile": "https://github.com/shimmerjs", - "contributions": [ - "code" - ] - }, - { - "login": "CiaranHannigan", - "name": "Ciaran Hannigan", - "avatar_url": "https://avatars0.githubusercontent.com/u/13645183?v=4", - "profile": "https://github.com/CiaranHannigan", - "contributions": [ - "code" - ] - }, - { - "login": "iangfleming", - "name": "Ian Fleming", - "avatar_url": "https://avatars2.githubusercontent.com/u/5481782?v=4", - "profile": "http://ianfleming.me/", - "contributions": [ - "code" - ] - }, - { - "login": "eddiemonge", - "name": "Eddie Monge", - "avatar_url": "https://avatars3.githubusercontent.com/u/127535?v=4", - "profile": "http://eddiemonge.com", - "contributions": [ - "code" - ] - }, - { - "login": "reicruz", - "name": "Reinaldo Cruz", - "avatar_url": "https://avatars3.githubusercontent.com/u/4438261?v=4", - "profile": "http://www.reicruz.com/", - "contributions": [ - "code" - ] - }, - { - "login": "ycao56", - "name": "Yu Cao", - "avatar_url": "https://avatars3.githubusercontent.com/u/16092291?v=4", - "profile": "https://github.com/ycao56", - "contributions": [ - "code" - ] - }, - { - "login": "mbecvarik", - "name": "Megan Becvarik", - "avatar_url": "https://avatars1.githubusercontent.com/u/20566244?v=4", - "profile": "https://github.com/mbecvarik", - "contributions": [ - "code" - ] - }, - { - "login": "AsthaJain1", - "name": "Astha", - "avatar_url": "https://avatars0.githubusercontent.com/u/21059894?v=4", - "profile": "https://github.com/AsthaJain1", - "contributions": [ - "code" - ] - }, - { - "login": "jlengstorf", - "name": "Jason Lengstorf", - "avatar_url": "https://avatars2.githubusercontent.com/u/163561?v=4", - "profile": "https://code.lengstorf.com", - "contributions": [ - "code" - ] - }, - { - "login": "nfriedly", - "name": "Nathan Friedly", - "avatar_url": "https://avatars3.githubusercontent.com/u/114976?v=4", - "profile": "http://nfriedly.com/", - "contributions": [ - "code" - ] - }, - { - "login": "mhamann", - "name": "Matt Hamann", - "avatar_url": "https://avatars2.githubusercontent.com/u/130131?v=4", - "profile": "http://mhamann.com", - "contributions": [ - "code" - ] - }, - { - "login": "gferreri", - "name": "Greg", - "avatar_url": "https://avatars1.githubusercontent.com/u/2159110?v=4", - "profile": "https://github.com/gferreri", - "contributions": [ - "code" - ] - }, - { - "login": "AnthonyOliveri", - "name": "Anthony Oliveri", - "avatar_url": "https://avatars0.githubusercontent.com/u/5459406?v=4", - "profile": "https://github.com/AnthonyOliveri", - "contributions": [ - "code" - ] - }, - { - "login": "jlpadilla", - "name": "Jorge Padilla", - "avatar_url": "https://avatars3.githubusercontent.com/u/4671325?v=4", - "profile": "https://github.com/jlpadilla", - "contributions": [ - "code" - ] - }, - { - "login": "germanattanasio", - "name": "German Attanasio", - "avatar_url": "https://avatars3.githubusercontent.com/u/313157?v=4", - "profile": "http://germanattanasio.com", - "contributions": [ - "code" - ] - }, - { - "login": "ritch", - "name": "Ritchie Martori", - "avatar_url": "https://avatars1.githubusercontent.com/u/462228?v=4", - "profile": "https://github.com/ritch", - "contributions": [ - "code" - ] - }, - { - "login": "asudoh", - "name": "Akira Sudoh", - "avatar_url": "https://avatars1.githubusercontent.com/u/1259051?v=4", - "profile": "http://streetphoto.jp/", - "contributions": [ - "code" - ] - }, - { - "login": "holmansze", - "name": "holmansze", - "avatar_url": "https://avatars1.githubusercontent.com/u/30137991?v=4", - "profile": "https://github.com/holmansze", - "contributions": [ - "code" - ] - }, - { - "login": "joshblack", - "name": "Josh Black", - "avatar_url": "https://avatars1.githubusercontent.com/u/3901764?v=4", - "profile": "https://github.com/joshblack", - "contributions": [ - "code", - "doc", - "example", - "infra" - ] - }, - { - "login": "tay-aitken", - "name": "Tayler Aitken", - "avatar_url": "https://avatars0.githubusercontent.com/u/29312997?v=4", - "profile": "http://tayleraitken.com", - "contributions": [ - "design", - "doc" - ] - }, - { - "login": "bsonefeld", - "name": "Bethany Sonefeld", - "avatar_url": "https://avatars2.githubusercontent.com/u/11233508?v=4", - "profile": "http://www.bethanysonefeld.com", - "contributions": [ - "design" - ] - }, - { - "login": "DmitriWolf", - "name": "Dmitri Wolf", - "avatar_url": "https://avatars3.githubusercontent.com/u/1697656?v=4", - "profile": "https://github.com/DmitriWolf", - "contributions": [ - "code" - ] - }, - { - "login": "jamesvclements", - "name": "James", - "avatar_url": "https://avatars2.githubusercontent.com/u/20052710?v=4", - "profile": "https://github.com/jamesvclements", - "contributions": [ - "code" - ] - }, - { - "login": "keithkade", - "name": "Kade Keith", - "avatar_url": "https://avatars0.githubusercontent.com/u/2426829?v=4", - "profile": "http://kadekeith.me/", - "contributions": [ - "code" - ] - }, - { - "login": "miramurali23", - "name": "Mira Murali", - "avatar_url": "https://avatars1.githubusercontent.com/u/11800028?v=4", - "profile": "https://github.com/miramurali23", - "contributions": [ - "code" - ] - }, - { - "login": "alisonemiller", - "name": "alisonemiller", - "avatar_url": "https://avatars2.githubusercontent.com/u/17085131?v=4", - "profile": "https://github.com/alisonemiller", - "contributions": [ - "code" - ] - }, - { - "login": "bjones526", - "name": "bjones526", - "avatar_url": "https://avatars0.githubusercontent.com/u/8770483?v=4", - "profile": "https://github.com/bjones526", - "contributions": [ - "code" - ] - }, - { - "login": "sandhya-r-reddy", - "name": "sandhya-r-reddy", - "avatar_url": "https://avatars2.githubusercontent.com/u/32277486?v=4", - "profile": "https://github.com/sandhya-r-reddy", - "contributions": [ - "code" - ] - }, - { - "login": "alisonjoseph", - "name": "Alison Joseph", - "avatar_url": "https://avatars0.githubusercontent.com/u/2753488?v=4", - "profile": "https://github.com/alisonjoseph", - "contributions": [ - "code" - ] - }, - { - "login": "ereneld", - "name": "Dogukan", - "avatar_url": "https://avatars0.githubusercontent.com/u/14316696?v=4", - "profile": "https://github.com/ereneld", - "contributions": [ - "code" - ] - }, - { - "login": "ehdsouza", - "name": "Erika Dsouza", - "avatar_url": "https://avatars2.githubusercontent.com/u/13935994?v=4", - "profile": "https://github.com/ehdsouza", - "contributions": [ - "code" - ] - }, - { - "login": "jschaftenaar", - "name": "Jeroen Schaftenaar", - "avatar_url": "https://avatars2.githubusercontent.com/u/4943036?v=4", - "profile": "https://github.com/jschaftenaar", - "contributions": [ - "code" - ] - }, - { - "login": "jmeis", - "name": "Joseph Meis", - "avatar_url": "https://avatars1.githubusercontent.com/u/16617646?v=4", - "profile": "http://bluemix.net", - "contributions": [ - "code" - ] - }, - { - "login": "psachs21", - "name": "Paul Sachs", - "avatar_url": "https://avatars2.githubusercontent.com/u/11449728?v=4", - "profile": "https://github.com/psachs21", - "contributions": [ - "code" - ] - }, - { - "login": "ryanomackey", - "name": "Ryan Mackey", - "avatar_url": "https://avatars2.githubusercontent.com/u/17710824?v=4", - "profile": "https://github.com/ryanomackey", - "contributions": [ - "code" - ] - }, - { - "login": "tonitagd", - "name": "Toni", - "avatar_url": "https://avatars2.githubusercontent.com/u/4289301?v=4", - "profile": "https://github.com/tonitagd", - "contributions": [ - "code" - ] - }, - { - "login": "shyfruan", - "name": "shyfruan", - "avatar_url": "https://avatars3.githubusercontent.com/u/29720673?v=4", - "profile": "https://github.com/shyfruan", - "contributions": [ - "code" - ] - }, - { - "login": "JMGordon", - "name": "Joseph Gordon", - "avatar_url": "https://avatars1.githubusercontent.com/u/7243419?s=400&v=4", - "profile": "https://github.com/JMGordon", - "contributions": [ - "code" - ] - }, - { - "login": "loganmccaul", - "name": "Logan McCaul", - "avatar_url": "https://avatars3.githubusercontent.com/u/7374889?s=400&v=4", - "profile": "https://github.com/loganmccaul", - "contributions": [ - "code" - ] - }, - { - "login": "asfordmatt", - "name": "Matt Chapman", - "avatar_url": "https://avatars2.githubusercontent.com/u/14233261?s=400&v=4", - "profile": "https://github.com/asfordmatt", - "contributions": [ - "code" - ] - }, - { - "login": "scottdickerson", - "name": "Scott Dickerson", - "avatar_url": "https://avatars1.githubusercontent.com/u/6663002?s=400&v=4", - "profile": "https://github.com/scottdickerson", - "contributions": [ - "code" - ] - }, - { - "login": "kant", - "name": "Darío Hereñú", - "avatar_url": "https://avatars3.githubusercontent.com/u/32717?s=400&v=4", - "profile": "https://github.com/kant", - "contributions": [ - "code" - ] - }, - { - "login": "jzhang300", - "name": "James Zhang", - "avatar_url": "https://avatars3.githubusercontent.com/u/1449523?s=400&v=4", - "profile": "https://github.com/jzhang300", - "contributions": [ - "code" - ] - }, - { - "login": "michead", - "name": "Simone Riccardelli", - "avatar_url": "https://avatars0.githubusercontent.com/u/6776917?s=400&v=4", - "profile": "https://github.com/michead", - "contributions": [ - "code" - ] - }, - { - "login": "Tom-Danger-Bryant", - "name": "Tom", - "avatar_url": "https://avatars2.githubusercontent.com/u/7711697?s=400&v=4", - "profile": "https://github.com/Tom-Danger-Bryant", - "contributions": [ - "code" - ] - }, - { - "login": "zeusorion", - "name": "Zeus Courtois", - "avatar_url": "https://avatars2.githubusercontent.com/u/2263351?s=400&v=4", - "profile": "https://github.com/zeusorion", - "contributions": [ - "code" - ] - }, - { - "login": "ajdaniel", - "name": "Andrew Daniel", - "avatar_url": "https://avatars1.githubusercontent.com/u/867941?v=4", - "profile": "http://www.andrewdaniel.co.uk", - "contributions": [ - "bug", - "code" - ] - }, - { - "login": "AndySeymour2904", - "name": "Andy", - "avatar_url": "https://avatars1.githubusercontent.com/u/36265276?v=4", - "profile": "https://github.com/AndySeymour2904", - "contributions": [ - "bug", - "code" - ] - }, - { - "login": "nicholaslee119", - "name": "Nicholas Lee", - "avatar_url": "https://avatars3.githubusercontent.com/u/7650400?v=4", - "profile": "https://github.com/nicholaslee119", - "contributions": [ - "code" - ] - }, - { - "login": "davidmenendez", - "name": "David Menendez", - "avatar_url": "https://avatars1.githubusercontent.com/u/6370760?v=4", - "profile": "http://davidmenendez.net", - "contributions": [ - "code" - ] - }, - { - "login": "pfarkya", - "name": "Prashant Farkya", - "avatar_url": "https://avatars0.githubusercontent.com/u/14758158?v=4", - "profile": "https://github.com/pfarkya", - "contributions": [ - "code" - ] - }, - { - "login": "neonwarp", - "name": "Tibor Cz", - "avatar_url": "https://avatars1.githubusercontent.com/u/4045950?v=4", - "profile": "https://neonwarp.github.io", - "contributions": [ - "doc" - ] - }, - { - "login": "nelsonchen90", - "name": "Xixiang Chen", - "avatar_url": "https://avatars3.githubusercontent.com/u/10108576?v=4", - "profile": "https://github.com/nelsonchen90", - "contributions": [ - "code" - ] - }, - { - "login": "s100", - "name": "s100", - "avatar_url": "https://avatars1.githubusercontent.com/u/9932290?v=4", - "profile": "https://github.com/s100", - "contributions": [ - "code" - ] - } - ] -} diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 7bd62a10f..000000000 --- a/.eslintrc +++ /dev/null @@ -1,50 +0,0 @@ -{ - "extends": ["react-app", "plugin:jsx-a11y/recommended"], - "plugins": ["react", "jsdoc", "jsx-a11y"], - "rules": { - "no-console": 2, - "react/jsx-uses-vars": 1, - "react/jsx-uses-react": 1, - "react/no-find-dom-node": 1, - "import/no-webpack-loader-syntax": "off", - "jsdoc/check-param-names": 2, - "jsdoc/check-tag-names": 2, - "jsdoc/check-types": 2, - "jsx-a11y/no-static-element-interactions": 1, - "jsx-a11y/no-noninteractive-element-interactions": 1, - "jsx-a11y/click-events-have-key-events": 1, - "jsx-a11y/anchor-is-valid": 1, - "jsx-a11y/href-no-hash": "off", - "jsx-a11y/interactive-supports-focus": 1, - "jsx-a11y/label-has-for": [ - 1, - { - "components": ["Label"], - "required": { - "some": ["nesting", "id"] - }, - "allowChildren": true - } - ] - }, - "env": { - "node": true, - "browser": true, - "es6": true, - "jest": true, - "jasmine": true - }, - "globals": { - "__DEV__": true - }, - "settings": { - "jsdoc": { - "tagNamePreference": { - "augments": "extends" - } - }, - "react": { - "version": "detect" - } - } -} diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8f3c47387..4571b5468 100755 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ -Closes @wfp/ui# +Closes @un/react# {{short description}} @@ -6,12 +6,12 @@ Closes @wfp/ui# **New** -* {{new thing}} +- {{new thing}} **Changed** -* {{change thing}} +- {{change thing}} **Removed** -* {{removed thing}} +- {{removed thing}} diff --git a/.gitignore b/.gitignore index a792a03f3..41c89c52f 100755 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,16 @@ # Ignore generated folders node_modules -/es -lib +es umd +next source docs -assets -!src/assets css dist +build +build/* +**/build +/build # Logs *.log @@ -19,6 +21,8 @@ dist .idea .vscode .env +.env.local +.env.production # Coverage directory used by tools like Istanbul coverage @@ -30,4 +34,11 @@ a11y/results # package-lock.json # Jest Test results -jest-test-results.json \ No newline at end of file +jest-test-results.json + +# Carbon generated +packages/icons/src/legacy/* +packages/pictograms/es/* +actions/copy-carbon/output/* + +.npmrc \ No newline at end of file diff --git a/.jest-test-results.json b/.jest-test-results.json deleted file mode 100644 index 4d9d1bfd0..000000000 --- a/.jest-test-results.json +++ /dev/null @@ -1 +0,0 @@ -{"numFailedTestSuites":9,"numFailedTests":58,"numPassedTestSuites":50,"numPassedTests":525,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":59,"numTotalTests":583,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":6,"total":6,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1604862134604,"success":false,"testResults":[{"assertionResults":[{"ancestorTitles":["childrenOfType"],"failureMessages":[],"fullName":"childrenOfType should validate children of a given element type","location":null,"status":"passed","title":"should validate children of a given element type"},{"ancestorTitles":["childrenOfType"],"failureMessages":[],"fullName":"childrenOfType should warn with an invalid prop type for an invalid element child type","location":null,"status":"passed","title":"should warn with an invalid prop type for an invalid element child type"},{"ancestorTitles":["childrenOfType"],"failureMessages":[],"fullName":"childrenOfType should validate children of a given stateless functional component type","location":null,"status":"passed","title":"should validate children of a given stateless functional component type"},{"ancestorTitles":["childrenOfType"],"failureMessages":[],"fullName":"childrenOfType should warn with an invalid prop type for an invalid SFC child type","location":null,"status":"passed","title":"should warn with an invalid prop type for an invalid SFC child type"},{"ancestorTitles":["childrenOfType"],"failureMessages":[],"fullName":"childrenOfType should validate children of a given class component type","location":null,"status":"passed","title":"should validate children of a given class component type"},{"ancestorTitles":["childrenOfType"],"failureMessages":[],"fullName":"childrenOfType should warn with an invalid prop type for an invalid class component child type","location":null,"status":"passed","title":"should warn with an invalid prop type for an invalid class component child type"},{"ancestorTitles":["childrenOfType"],"failureMessages":[],"fullName":"childrenOfType should work with `isRequired`","location":null,"status":"passed","title":"should work with `isRequired`"}],"endTime":1604862140725,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/prop-types/__tests__/childrenOfType-test.js","startTime":1604862136817,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["getDisplayName"],"failureMessages":[],"fullName":"getDisplayName should get the name from a React element","location":null,"status":"passed","title":"should get the name from a React element"},{"ancestorTitles":["getDisplayName"],"failureMessages":[],"fullName":"getDisplayName should get the name from a Stateless Functional Component","location":null,"status":"passed","title":"should get the name from a Stateless Functional Component"},{"ancestorTitles":["getDisplayName"],"failureMessages":[],"fullName":"getDisplayName should get the displayName from a class Component","location":null,"status":"passed","title":"should get the displayName from a class Component"}],"endTime":1604862140885,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/prop-types/tools/__tests__/getDisplayName-test.js","startTime":1604862136961,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["childrenOf"],"failureMessages":[],"fullName":"childrenOf should validate children of a given enum of types","location":null,"status":"passed","title":"should validate children of a given enum of types"},{"ancestorTitles":["childrenOf"],"failureMessages":[],"fullName":"childrenOf should warn with an invalid prop type for an invalid type","location":null,"status":"passed","title":"should warn with an invalid prop type for an invalid type"},{"ancestorTitles":["childrenOf"],"failureMessages":[],"fullName":"childrenOf should work with `isRequired`","location":null,"status":"passed","title":"should work with `isRequired`"}],"endTime":1604862141030,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/prop-types/__tests__/childrenOf-test.js","startTime":1604862136907,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["FormError","Renders as expected"],"failureMessages":[],"fullName":"FormError Renders as expected should use the appropriate link class","location":null,"status":"passed","title":"should use the appropriate link class"}],"endTime":1604862141210,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/FormError/FormError-test.js","startTime":1604862136926,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Credits","Renders as expected"],"failureMessages":[],"fullName":"Credits Renders as expected should use the appropriate link class","location":null,"status":"passed","title":"should use the appropriate link class"},{"ancestorTitles":["Credits","Renders as expected"],"failureMessages":[],"fullName":"Credits Renders as expected should inherit the href property","location":null,"status":"passed","title":"should inherit the href property"},{"ancestorTitles":["Credits","Renders as expected"],"failureMessages":[],"fullName":"Credits Renders as expected should include child content","location":null,"status":"passed","title":"should include child content"},{"ancestorTitles":["Credits","Renders as expected"],"failureMessages":[],"fullName":"Credits Renders as expected should all for custom classes to be applied","location":null,"status":"passed","title":"should all for custom classes to be applied"}],"endTime":1604862141387,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Credits/Credits-test.js","startTime":1604862137300,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["InputGroup","renders as expected","wrapping div"],"failureMessages":[],"fullName":"InputGroup renders as expected wrapping div renders a div","location":null,"status":"passed","title":"renders a div"},{"ancestorTitles":["InputGroup","renders as expected","wrapping div"],"failureMessages":[],"fullName":"InputGroup renders as expected wrapping div sets classes that are passed via className prop","location":null,"status":"passed","title":"sets classes that are passed via className prop"},{"ancestorTitles":["InputGroup","renders as expected","wrapping div"],"failureMessages":[],"fullName":"InputGroup renders as expected wrapping div sets disabled attribute if disabled prop is set","location":null,"status":"passed","title":"sets disabled attribute if disabled prop is set"},{"ancestorTitles":["InputGroup","renders as expected","children"],"failureMessages":[],"fullName":"InputGroup renders as expected children renders expected number of children","location":null,"status":"passed","title":"renders expected number of children"},{"ancestorTitles":["InputGroup","renders as expected","children"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/InputGroup/InputGroup-test.js:41:54)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup renders as expected children should set checked property based on defaultSelected prop","location":null,"status":"failed","title":"should set checked property based on defaultSelected prop"},{"ancestorTitles":["InputGroup","renders as expected","children"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/InputGroup/InputGroup-test.js:46:55)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup renders as expected children should set checked property based on valueSelected prop","location":null,"status":"failed","title":"should set checked property based on valueSelected prop"},{"ancestorTitles":["InputGroup","renders as expected","children"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32m\"gender\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/InputGroup/InputGroup-test.js:53:41)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup renders as expected children should set expected props on children","location":null,"status":"failed","title":"should set expected props on children"},{"ancestorTitles":["InputGroup","onChange event"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/InputGroup/InputGroup-test.js:72:42)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup onChange event first child should not have checked set initially","location":null,"status":"failed","title":"first child should not have checked set initially"},{"ancestorTitles":["InputGroup","onChange event"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/InputGroup/InputGroup-test.js:78:65)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup onChange event invoking onChange sets checked on correct child","location":null,"status":"failed","title":"invoking onChange sets checked on correct child"},{"ancestorTitles":["InputGroup","onChange event"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mjest.fn()\u001b[39m\u001b[2m).\u001b[22mtoBeCalledWith\u001b[2m(\u001b[22m\u001b[32m...expected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: \u001b[32m\"male\"\u001b[39m, \u001b[32m\"gender\"\u001b[39m, \u001b[32m{\"test\": \"test event\"}\u001b[39m\n\nNumber of calls: \u001b[31m0\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/InputGroup/InputGroup-test.js:82:7)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup onChange event should invoke onChange with correct arguments","location":null,"status":"failed","title":"should invoke onChange with correct arguments"},{"ancestorTitles":["InputGroup","onChange event"],"failureMessages":[],"fullName":"InputGroup onChange event calling onChange with same args should not call onChange prop","location":null,"status":"passed","title":"calling onChange with same args should not call onChange prop"},{"ancestorTitles":["InputGroup","Getting derived state from props"],"failureMessages":[],"fullName":"InputGroup Getting derived state from props should initialize the current selection from props","location":null,"status":"passed","title":"should initialize the current selection from props"},{"ancestorTitles":["InputGroup","Getting derived state from props"],"failureMessages":[],"fullName":"InputGroup Getting derived state from props should change the current selection upon change in props","location":null,"status":"passed","title":"should change the current selection upon change in props"},{"ancestorTitles":["InputGroup","Getting derived state from props"],"failureMessages":[],"fullName":"InputGroup Getting derived state from props should avoid change the current selection upon setting props, unless there the value actually changes","location":null,"status":"passed","title":"should avoid change the current selection upon setting props, unless there the value actually changes"}],"endTime":1604862141243,"message":"\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › renders as expected › children › should set checked property based on defaultSelected prop\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mtrue\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 39 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 40 | \u001b[39m it(\u001b[32m'should set checked property based on defaultSelected prop'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 41 | \u001b[39m expect(radioButton()\u001b[33m.\u001b[39mlast()\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 42 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 43 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 44 | \u001b[39m it(\u001b[32m'should set checked property based on valueSelected prop'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/InputGroup/InputGroup-test.js\u001b[39m\u001b[0m\u001b[2m:41:54)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › renders as expected › children › should set checked property based on valueSelected prop\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mtrue\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 44 | \u001b[39m it(\u001b[32m'should set checked property based on valueSelected prop'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 45 | \u001b[39m wrapper\u001b[33m.\u001b[39msetProps({ valueSelected\u001b[33m:\u001b[39m \u001b[32m'male'\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 46 | \u001b[39m expect(radioButton()\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 47 | \u001b[39m wrapper\u001b[33m.\u001b[39msetProps({ valueSelected\u001b[33m:\u001b[39m \u001b[32m'female'\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 48 | \u001b[39m expect(radioButton()\u001b[33m.\u001b[39mlast()\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 49 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/InputGroup/InputGroup-test.js\u001b[39m\u001b[0m\u001b[2m:46:55)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › renders as expected › children › should set expected props on children\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32m\"gender\"\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 51 | \u001b[39m it(\u001b[32m'should set expected props on children'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 52 | \u001b[39m \u001b[36mconst\u001b[39m firstChild \u001b[33m=\u001b[39m radioButton()\u001b[33m.\u001b[39mfirst()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 53 | \u001b[39m expect(firstChild\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mname)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'gender'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 54 | \u001b[39m expect(firstChild\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mvalue)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'male'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 55 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 56 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/InputGroup/InputGroup-test.js\u001b[39m\u001b[0m\u001b[2m:53:41)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › onChange event › first child should not have checked set initially\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mfalse\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 70 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 71 | \u001b[39m it(\u001b[32m'first child should not have checked set initially'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 72 | \u001b[39m expect(firstRadio\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mfalse\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 73 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 74 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 75 | \u001b[39m it(\u001b[32m'invoking onChange sets checked on correct child'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/InputGroup/InputGroup-test.js\u001b[39m\u001b[0m\u001b[2m:72:42)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › onChange event › invoking onChange sets checked on correct child\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mtrue\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 76 | \u001b[39m firstRadio\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39monChange(\u001b[33m...\u001b[39margs)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 77 | \u001b[39m wrapper\u001b[33m.\u001b[39mupdate()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 78 | \u001b[39m expect(wrapper\u001b[33m.\u001b[39mfind(\u001b[33mRadioButton\u001b[39m)\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 79 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 80 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 81 | \u001b[39m it(\u001b[32m'should invoke onChange with correct arguments'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/InputGroup/InputGroup-test.js\u001b[39m\u001b[0m\u001b[2m:78:65)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › onChange event › should invoke onChange with correct arguments\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mjest.fn()\u001b[39m\u001b[2m).\u001b[22mtoBeCalledWith\u001b[2m(\u001b[22m\u001b[32m...expected\u001b[39m\u001b[2m)\u001b[22m\n\n Expected: \u001b[32m\"male\"\u001b[39m, \u001b[32m\"gender\"\u001b[39m, \u001b[32m{\"test\": \"test event\"}\u001b[39m\n\n Number of calls: \u001b[31m0\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 80 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 81 | \u001b[39m it(\u001b[32m'should invoke onChange with correct arguments'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 82 | \u001b[39m expect(onChange)\u001b[33m.\u001b[39mtoBeCalledWith(\u001b[33m...\u001b[39margs)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 83 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 84 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 85 | \u001b[39m it(\u001b[32m'calling onChange with same args should not call onChange prop'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/InputGroup/InputGroup-test.js\u001b[39m\u001b[0m\u001b[2m:82:7)\u001b[22m\u001b[2m\u001b[22m\n","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/InputGroup/InputGroup-test.js","startTime":1604862136893,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["Tag","Renders as expected"],"failureMessages":[],"fullName":"Tag Renders as expected should render with the appropriate type","location":null,"status":"passed","title":"should render with the appropriate type"},{"ancestorTitles":["Tag","Renders as expected"],"failureMessages":[],"fullName":"Tag Renders as expected should provide a default label based on the type","location":null,"status":"passed","title":"should provide a default label based on the type"},{"ancestorTitles":["Tag"],"failureMessages":[],"fullName":"Tag should allow for a custom label","location":null,"status":"passed","title":"should allow for a custom label"},{"ancestorTitles":["Tag"],"failureMessages":[],"fullName":"Tag should support extra class names","location":null,"status":"passed","title":"should support extra class names"},{"ancestorTitles":["TagSkeleton","Renders as expected"],"failureMessages":[],"fullName":"TagSkeleton Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862142298,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Tag/Tag-test.js","startTime":1604862138141,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Breadcrumb","Renders as expected"],"failureMessages":[],"fullName":"Breadcrumb Renders as expected renders a breadcrumb","location":null,"status":"passed","title":"renders a breadcrumb"},{"ancestorTitles":["Breadcrumb","Renders as expected"],"failureMessages":[],"fullName":"Breadcrumb Renders as expected should use the appropriate breadcrumb class","location":null,"status":"passed","title":"should use the appropriate breadcrumb class"},{"ancestorTitles":["Breadcrumb","Renders as expected"],"failureMessages":[],"fullName":"Breadcrumb Renders as expected should add extra classes that are passed via className","location":null,"status":"passed","title":"should add extra classes that are passed via className"},{"ancestorTitles":["Breadcrumb","Renders as expected"],"failureMessages":[],"fullName":"Breadcrumb Renders as expected should render children as expected","location":null,"status":"passed","title":"should render children as expected"},{"ancestorTitles":["Breadcrumb","Renders as expected"],"failureMessages":[],"fullName":"Breadcrumb Renders as expected should render children content as expected","location":null,"status":"passed","title":"should render children content as expected"},{"ancestorTitles":["BreadcrumbSkeleton","Renders as expected"],"failureMessages":[],"fullName":"BreadcrumbSkeleton Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862142320,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Breadcrumb/Breadcrumb-test.js","startTime":1604862140829,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Icon","Renders as expected"],"failureMessages":[],"fullName":"Icon Renders as expected Renders `description` as expected","location":null,"status":"passed","title":"Renders `description` as expected"},{"ancestorTitles":["Icon","Renders as expected"],"failureMessages":[],"fullName":"Icon Renders as expected should have a default role prop","location":null,"status":"passed","title":"should have a default role prop"},{"ancestorTitles":["Icon","Renders as expected"],"failureMessages":[],"fullName":"Icon Renders as expected should have expected viewBox on ","location":null,"status":"passed","title":"should have expected viewBox on "},{"ancestorTitles":["Icon","Renders as expected"],"failureMessages":[],"fullName":"Icon Renders as expected should add extra classes that are passed via className","location":null,"status":"passed","title":"should add extra classes that are passed via className"},{"ancestorTitles":["Icon","Renders as expected"],"failureMessages":[],"fullName":"Icon Renders as expected should recieve width props","location":null,"status":"passed","title":"should recieve width props"},{"ancestorTitles":["Icon","Renders as expected"],"failureMessages":[],"fullName":"Icon Renders as expected should recieve height props","location":null,"status":"passed","title":"should recieve height props"},{"ancestorTitles":["Icon","Renders as expected"],"failureMessages":[],"fullName":"Icon Renders as expected should recieve style props","location":null,"status":"passed","title":"should recieve style props"},{"ancestorTitles":["Icon","svgShapes"],"failureMessages":[],"fullName":"Icon svgShapes returns empty when given an icon with no valid svgProp","location":null,"status":"passed","title":"returns empty when given an icon with no valid svgProp"},{"ancestorTitles":["Icon","isPrefixed"],"failureMessages":[],"fullName":"Icon isPrefixed returns true when given a name with icon-- prefix","location":null,"status":"passed","title":"returns true when given a name with icon-- prefix"},{"ancestorTitles":["Icon","isPrefixed"],"failureMessages":[],"fullName":"Icon isPrefixed returns false when given a name without icon-- prefix","location":null,"status":"passed","title":"returns false when given a name without icon-- prefix"}],"endTime":1604862142322,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Icon/Icon-test.js","startTime":1604862137804,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Link","Renders as expected"],"failureMessages":[],"fullName":"Link Renders as expected should use the appropriate link class","location":null,"status":"passed","title":"should use the appropriate link class"},{"ancestorTitles":["Link","Renders as expected"],"failureMessages":[],"fullName":"Link Renders as expected should all for custom classes to be applied","location":null,"status":"passed","title":"should all for custom classes to be applied"}],"endTime":1604862143074,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/ReadMore/ReadMore-test.js","startTime":1604862141772,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m2\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Select/Select-test.js:31:40)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Select Renders as expected selectContainer renders a container","location":null,"status":"failed","title":"renders a container"},{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":[],"fullName":"Select Renders as expected selectContainer renders the down arrow icon","location":null,"status":"passed","title":"renders the down arrow icon"},{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":[],"fullName":"Select Renders as expected selectContainer should use correct icon","location":null,"status":"passed","title":"should use correct icon"},{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":["Error: Method “hasClass” is meant to be run on 1 node. 2 found instead.\n at ReactWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:1168:13)\n at ReactWrapper.hasClass (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:935:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Select/Select-test.js:44:32)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Select Renders as expected selectContainer has the expected classes","location":null,"status":"failed","title":"has the expected classes"},{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":["Error: Method “hasClass” is meant to be run on 1 node. 2 found instead.\n at ReactWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:1168:13)\n at ReactWrapper.hasClass (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:935:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Select/Select-test.js:48:32)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Select Renders as expected selectContainer applies extra classes specified via className","location":null,"status":"failed","title":"applies extra classes specified via className"},{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":[],"fullName":"Select Renders as expected selectContainer has the expected default iconDescription","location":null,"status":"passed","title":"has the expected default iconDescription"},{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":[],"fullName":"Select Renders as expected selectContainer adds new iconDescription when passed via props","location":null,"status":"passed","title":"adds new iconDescription when passed via props"},{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":[],"fullName":"Select Renders as expected selectContainer should have iconDescription match Icon component description prop","location":null,"status":"passed","title":"should have iconDescription match Icon component description prop"},{"ancestorTitles":["Select","Renders as expected","selectContainer"],"failureMessages":[],"fullName":"Select Renders as expected selectContainer should specify light select as expected","location":null,"status":"passed","title":"should specify light select as expected"},{"ancestorTitles":["Select","Renders as expected","select"],"failureMessages":[],"fullName":"Select Renders as expected select renders a select","location":null,"status":"passed","title":"renders a select"},{"ancestorTitles":["Select","Renders as expected","select"],"failureMessages":[],"fullName":"Select Renders as expected select has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Select","Renders as expected","select"],"failureMessages":[],"fullName":"Select Renders as expected select has the expected id","location":null,"status":"passed","title":"has the expected id"},{"ancestorTitles":["Select","Renders as expected","select"],"failureMessages":[],"fullName":"Select Renders as expected select should set defaultValue as expected","location":null,"status":"passed","title":"should set defaultValue as expected"},{"ancestorTitles":["Select","Renders as expected","select"],"failureMessages":[],"fullName":"Select Renders as expected select should set disabled as expected","location":null,"status":"passed","title":"should set disabled as expected"},{"ancestorTitles":["Select","Renders as expected","select"],"failureMessages":[],"fullName":"Select Renders as expected select renders children as expected","location":null,"status":"passed","title":"renders children as expected"},{"ancestorTitles":["Select","Renders as expected","label"],"failureMessages":[],"fullName":"Select Renders as expected label renders a label","location":null,"status":"passed","title":"renders a label"},{"ancestorTitles":["Select","Renders as expected","label"],"failureMessages":[],"fullName":"Select Renders as expected label has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Select","Renders as expected","label"],"failureMessages":[],"fullName":"Select Renders as expected label has the expected htmlFor value","location":null,"status":"passed","title":"has the expected htmlFor value"},{"ancestorTitles":["Select","Renders as expected","label"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32m\"Select\"\u001b[39m\nReceived: \u001b[31m[\"Select\", undefined]\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Select/Select-test.js:117:40)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Select Renders as expected label renders children as expected","location":null,"status":"failed","title":"renders children as expected"},{"ancestorTitles":["Select","Renders as expected","helper"],"failureMessages":[],"fullName":"Select Renders as expected helper renders a helper","location":null,"status":"passed","title":"renders a helper"},{"ancestorTitles":["Select","Renders as expected","helper"],"failureMessages":[],"fullName":"Select Renders as expected helper renders children as expected","location":null,"status":"passed","title":"renders children as expected"},{"ancestorTitles":["Select","Renders as expected","helper"],"failureMessages":[],"fullName":"Select Renders as expected helper should set helper text as expected","location":null,"status":"passed","title":"should set helper text as expected"},{"ancestorTitles":["Select","Renders as expected"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Select/Select-test.js:159:63)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Select Renders as expected has the expected classes","location":null,"status":"failed","title":"has the expected classes"},{"ancestorTitles":["SelectSkeleton","Renders as expected"],"failureMessages":[],"fullName":"SelectSkeleton Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862143160,"message":"\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSelect › Renders as expected › selectContainer › renders a container\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32m1\u001b[39m\n Received: \u001b[31m2\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 29 | \u001b[39m describe(\u001b[32m'selectContainer'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 30 | \u001b[39m it(\u001b[32m'renders a container'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 31 | \u001b[39m expect(selectContainer\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoEqual(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 32 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 33 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 34 | \u001b[39m it(\u001b[32m'renders the down arrow icon'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Select/Select-test.js\u001b[39m\u001b[0m\u001b[2m:31:40)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSelect › Renders as expected › selectContainer › has the expected classes\u001b[39m\u001b[22m\n\n Method “hasClass” is meant to be run on 1 node. 2 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 42 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 43 | \u001b[39m it(\u001b[32m'has the expected classes'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 44 | \u001b[39m expect(selectContainer\u001b[33m.\u001b[39mhasClass(\u001b[32m'wfp--select'\u001b[39m))\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 45 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 46 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 47 | \u001b[39m it(\u001b[32m'applies extra classes specified via className'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:1168:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.hasClass (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:935:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Select/Select-test.js\u001b[39m\u001b[0m\u001b[2m:44:32)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSelect › Renders as expected › selectContainer › applies extra classes specified via className\u001b[39m\u001b[22m\n\n Method “hasClass” is meant to be run on 1 node. 2 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 46 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 47 | \u001b[39m it(\u001b[32m'applies extra classes specified via className'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 48 | \u001b[39m expect(selectContainer\u001b[33m.\u001b[39mhasClass(\u001b[32m'extra-class'\u001b[39m))\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 49 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 50 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 51 | \u001b[39m it(\u001b[32m'has the expected default iconDescription'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:1168:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.hasClass (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:935:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Select/Select-test.js\u001b[39m\u001b[0m\u001b[2m:48:32)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSelect › Renders as expected › label › renders children as expected\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32m\"Select\"\u001b[39m\n Received: \u001b[31m[\"Select\", undefined]\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 115 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 116 | \u001b[39m it(\u001b[32m'renders children as expected'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 117 | \u001b[39m expect(label\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchildren)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'Select'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 118 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 119 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 120 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Select/Select-test.js\u001b[39m\u001b[0m\u001b[2m:117:40)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSelect › Renders as expected › has the expected classes\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mtrue\u001b[39m\n Received: \u001b[31mfalse\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 157 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 158 | \u001b[39m it(\u001b[32m'has the expected classes'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 159 | \u001b[39m expect(selectContainer\u001b[33m.\u001b[39mhasClass(\u001b[32m'wfp--select--inline'\u001b[39m))\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 160 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 161 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 162 | \u001b[39m})\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Select/Select-test.js\u001b[39m\u001b[0m\u001b[2m:159:63)\u001b[22m\u001b[2m\u001b[22m\n","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Select/Select-test.js","startTime":1604862141125,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with expected className","location":null,"status":"passed","title":"renders with expected className"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with given className","location":null,"status":"passed","title":"renders with given className"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with default labelText prop","location":null,"status":"passed","title":"renders with default labelText prop"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with default buttonKind prop","location":null,"status":"passed","title":"renders with default buttonKind prop"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with expected button className","location":null,"status":"passed","title":"renders with expected button className"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with default multiple prop","location":null,"status":"passed","title":"renders with default multiple prop"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with default disableLabelChanges prop","location":null,"status":"passed","title":"renders with default disableLabelChanges prop"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with default accept prop","location":null,"status":"passed","title":"renders with default accept prop"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props renders with default disabled prop","location":null,"status":"passed","title":"renders with default disabled prop"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props disables file upload input","location":null,"status":"passed","title":"disables file upload input"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeTruthy\u001b[2m()\u001b[22m\n\nReceived: \u001b[31m\"button\"\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/FileUploader/FileUploader-test.js:70:45)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"FileUploaderButton Renders as expected with default props does not have default role","location":null,"status":"failed","title":"does not have default role"},{"ancestorTitles":["FileUploaderButton","Renders as expected with default props"],"failureMessages":[],"fullName":"FileUploaderButton Renders as expected with default props resets the input value onClick","location":null,"status":"passed","title":"resets the input value onClick"},{"ancestorTitles":["FileUploaderButton","Unique id props"],"failureMessages":[],"fullName":"FileUploaderButton Unique id props each FileUploaderButton should have a unique ID","location":null,"status":"passed","title":"each FileUploaderButton should have a unique ID"},{"ancestorTitles":["FileUploaderButton","Update labelText"],"failureMessages":[],"fullName":"FileUploaderButton Update labelText should have equal state and props","location":null,"status":"passed","title":"should have equal state and props"},{"ancestorTitles":["FileUploaderButton","Update labelText"],"failureMessages":[],"fullName":"FileUploaderButton Update labelText should change the label text upon change in props","location":null,"status":"passed","title":"should change the label text upon change in props"},{"ancestorTitles":["FileUploaderButton","Update labelText"],"failureMessages":[],"fullName":"FileUploaderButton Update labelText should avoid change the label text upon setting props, unless there the value actually changes","location":null,"status":"passed","title":"should avoid change the label text upon setting props, unless there the value actually changes"},{"ancestorTitles":["FileUploader","Renders as expected with defaults"],"failureMessages":[],"fullName":"FileUploader Renders as expected with defaults should render with default className","location":null,"status":"passed","title":"should render with default className"},{"ancestorTitles":["FileUploader","Renders as expected with defaults"],"failureMessages":[],"fullName":"FileUploader Renders as expected with defaults should render with given className","location":null,"status":"passed","title":"should render with given className"},{"ancestorTitles":["FileUploader","Renders as expected with defaults"],"failureMessages":[],"fullName":"FileUploader Renders as expected with defaults renders with FileUploaderButton with disableLabelChanges set to true","location":null,"status":"passed","title":"renders with FileUploaderButton with disableLabelChanges set to true"},{"ancestorTitles":["FileUploader","Renders as expected with defaults"],"failureMessages":[],"fullName":"FileUploader Renders as expected with defaults renders input with hidden prop","location":null,"status":"passed","title":"renders input with hidden prop"},{"ancestorTitles":["FileUploader","Renders as expected with defaults"],"failureMessages":[],"fullName":"FileUploader Renders as expected with defaults renders with empty div.wfp--file-container by default","location":null,"status":"passed","title":"renders with empty div.wfp--file-container by default"},{"ancestorTitles":["FileUploader","Update filenameStatus"],"failureMessages":[],"fullName":"FileUploader Update filenameStatus should have equal state and props","location":null,"status":"passed","title":"should have equal state and props"},{"ancestorTitles":["FileUploader","Update filenameStatus"],"failureMessages":[],"fullName":"FileUploader Update filenameStatus should change the label text upon change in props","location":null,"status":"passed","title":"should change the label text upon change in props"},{"ancestorTitles":["FileUploader","Update filenameStatus"],"failureMessages":[],"fullName":"FileUploader Update filenameStatus should avoid change the label text upon setting props, unless there the value actually changes","location":null,"status":"passed","title":"should avoid change the label text upon setting props, unless there the value actually changes"},{"ancestorTitles":["FileUploaderSkeleton","Renders as expected"],"failureMessages":[],"fullName":"FileUploaderSkeleton Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862143179,"message":"\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mFileUploaderButton › Renders as expected with default props › does not have default role\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeTruthy\u001b[2m()\u001b[22m\n\n Received: \u001b[31m\"button\"\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 68 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 69 | \u001b[39m it(\u001b[32m'does not have default role'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 70 | \u001b[39m expect(mountWrapper\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mrole)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeTruthy()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 71 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 72 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 73 | \u001b[39m it(\u001b[32m'resets the input value onClick'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/FileUploader/FileUploader-test.js\u001b[39m\u001b[0m\u001b[2m:70:45)\u001b[22m\u001b[2m\u001b[22m\n","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/FileUploader/FileUploader-test.js","startTime":1604862140954,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected should add extra classes that are passed via className","location":null,"status":"passed","title":"should add extra classes that are passed via className"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected should not be a passive modal by default","location":null,"status":"passed","title":"should not be a passive modal by default"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected should be a passive modal when passiveModal is passed","location":null,"status":"passed","title":"should be a passive modal when passiveModal is passed"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected should set id if one is passed via props","location":null,"status":"passed","title":"should set id if one is passed via props"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected has the expected default iconDescription","location":null,"status":"passed","title":"has the expected default iconDescription"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected adds new iconDescription when passed via props","location":null,"status":"passed","title":"adds new iconDescription when passed via props"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected should have iconDescription match Icon component description prop","location":null,"status":"passed","title":"should have iconDescription match Icon component description prop"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected enables primary button by default","location":null,"status":"passed","title":"enables primary button by default"},{"ancestorTitles":["Modal","Renders as expected"],"failureMessages":[],"fullName":"Modal Renders as expected disables primary button when diablePrimaryButton prop is passed","location":null,"status":"passed","title":"disables primary button when diablePrimaryButton prop is passed"},{"ancestorTitles":["Modal","Adds props as expected to the right children"],"failureMessages":[],"fullName":"Modal Adds props as expected to the right children should set label if one is passed via props","location":null,"status":"passed","title":"should set label if one is passed via props"},{"ancestorTitles":["Modal","Adds props as expected to the right children"],"failureMessages":[],"fullName":"Modal Adds props as expected to the right children should set modal heading if one is passed via props","location":null,"status":"passed","title":"should set modal heading if one is passed via props"},{"ancestorTitles":["Modal","Adds props as expected to the right children"],"failureMessages":[],"fullName":"Modal Adds props as expected to the right children should set button text if one is passed via props","location":null,"status":"passed","title":"should set button text if one is passed via props"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should set expected class when state is open","location":null,"status":"passed","title":"should set expected class when state is open"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should set state to open when trigger button is clicked","location":null,"status":"passed","title":"should set state to open when trigger button is clicked"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should set open state to false when close button is clicked","location":null,"status":"passed","title":"should set open state to false when close button is clicked"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should stay open when \"inner modal\" is clicked","location":null,"status":"passed","title":"should stay open when \"inner modal\" is clicked"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should close when \"outer modal\" is clicked...not \"inner modal\"","location":null,"status":"passed","title":"should close when \"outer modal\" is clicked...not \"inner modal\""},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should handle close keyDown events","location":null,"status":"passed","title":"should handle close keyDown events"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should handle submit keyDown events with shouldSubmitOnEnter enabled","location":null,"status":"passed","title":"should handle submit keyDown events with shouldSubmitOnEnter enabled"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should not handle submit keyDown events with shouldSubmitOnEnter not enabled","location":null,"status":"passed","title":"should not handle submit keyDown events with shouldSubmitOnEnter not enabled"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should close by default on secondary button click","location":null,"status":"passed","title":"should close by default on secondary button click"},{"ancestorTitles":["Modal","events"],"failureMessages":[],"fullName":"Modal events should handle custom secondary button events","location":null,"status":"passed","title":"should handle custom secondary button events"},{"ancestorTitles":["Modal Wrapper","Renders as expected"],"failureMessages":[],"fullName":"Modal Wrapper Renders as expected should default to primary button","location":null,"status":"passed","title":"should default to primary button"},{"ancestorTitles":["Modal Wrapper","Renders as expected"],"failureMessages":[],"fullName":"Modal Wrapper Renders as expected should render ghost button when ghost is passed","location":null,"status":"passed","title":"should render ghost button when ghost is passed"},{"ancestorTitles":["Modal Wrapper","Renders as expected"],"failureMessages":[],"fullName":"Modal Wrapper Renders as expected should render danger button when danger is passed","location":null,"status":"passed","title":"should render danger button when danger is passed"},{"ancestorTitles":["Modal Wrapper","Renders as expected"],"failureMessages":[],"fullName":"Modal Wrapper Renders as expected should render secondary button when secondary is passed","location":null,"status":"passed","title":"should render secondary button when secondary is passed"},{"ancestorTitles":["Danger Modal","Renders as expected"],"failureMessages":[],"fullName":"Danger Modal Renders as expected has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Danger Modal","Renders as expected"],"failureMessages":[],"fullName":"Danger Modal Renders as expected has correct button combination","location":null,"status":"passed","title":"has correct button combination"}],"endTime":1604862143239,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Modal/Modal-test.js","startTime":1604862137691,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["List","Renders as expected"],"failureMessages":[],"fullName":"List Renders as expected should use the appropriate link class","location":null,"status":"passed","title":"should use the appropriate link class"},{"ancestorTitles":["List","Renders as expected"],"failureMessages":[],"fullName":"List Renders as expected Renders children as expected","location":null,"status":"passed","title":"Renders children as expected"},{"ancestorTitles":["List","Renders as expected"],"failureMessages":[],"fullName":"List Renders as expected should all for custom classes to be applied","location":null,"status":"passed","title":"should all for custom classes to be applied"}],"endTime":1604862143662,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/List/List-test.js","startTime":1604862142361,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Blockquote","Renders common props as expected"],"failureMessages":[],"fullName":"Blockquote Renders common props as expected Renders children as expected","location":null,"status":"passed","title":"Renders children as expected"},{"ancestorTitles":["Blockquote","Renders common props as expected"],"failureMessages":[],"fullName":"Blockquote Renders common props as expected Should add extra classes via className","location":null,"status":"passed","title":"Should add extra classes via className"}],"endTime":1604862143692,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Blockquote/Blockquote-test.js","startTime":1604862142390,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Switch","component rendering"],"failureMessages":[],"fullName":"Switch component rendering should render a button when kind is button","location":null,"status":"passed","title":"should render a button when kind is button"},{"ancestorTitles":["Switch","component rendering"],"failureMessages":[],"fullName":"Switch component rendering should render a link when kind is link","location":null,"status":"passed","title":"should render a link when kind is link"},{"ancestorTitles":["Switch","component rendering"],"failureMessages":[],"fullName":"Switch component rendering should have the expected text","location":null,"status":"passed","title":"should have the expected text"},{"ancestorTitles":["Switch","component rendering"],"failureMessages":[],"fullName":"Switch component rendering should have the expected icon","location":null,"status":"passed","title":"should have the expected icon"},{"ancestorTitles":["Switch","component rendering"],"failureMessages":[],"fullName":"Switch component rendering icon should have the expected class","location":null,"status":"passed","title":"icon should have the expected class"},{"ancestorTitles":["Switch","component rendering"],"failureMessages":[],"fullName":"Switch component rendering should have the expected class","location":null,"status":"passed","title":"should have the expected class"},{"ancestorTitles":["Switch","component rendering"],"failureMessages":[],"fullName":"Switch component rendering should not have selected class","location":null,"status":"passed","title":"should not have selected class"},{"ancestorTitles":["Switch","component rendering"],"failureMessages":[],"fullName":"Switch component rendering should have a selected class when selected is set to true","location":null,"status":"passed","title":"should have a selected class when selected is set to true"},{"ancestorTitles":["Switch","events"],"failureMessages":[],"fullName":"Switch events should invoke button onClick handler","location":null,"status":"passed","title":"should invoke button onClick handler"},{"ancestorTitles":["Switch","events"],"failureMessages":[],"fullName":"Switch events should invoke link onClick handler","location":null,"status":"passed","title":"should invoke link onClick handler"},{"ancestorTitles":["Switch","events"],"failureMessages":[],"fullName":"Switch events should invoke button onKeyDown handler","location":null,"status":"passed","title":"should invoke button onKeyDown handler"},{"ancestorTitles":["Switch","events"],"failureMessages":[],"fullName":"Switch events should invoke link onKeyDown handler","location":null,"status":"passed","title":"should invoke link onKeyDown handler"}],"endTime":1604862143828,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Switch/Switch-test.js","startTime":1604862142378,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Link","Renders as expected"],"failureMessages":[],"fullName":"Link Renders as expected should use the appropriate link class","location":null,"status":"passed","title":"should use the appropriate link class"},{"ancestorTitles":["Link","Renders as expected"],"failureMessages":[],"fullName":"Link Renders as expected should inherit the href property","location":null,"status":"passed","title":"should inherit the href property"},{"ancestorTitles":["Link","Renders as expected"],"failureMessages":[],"fullName":"Link Renders as expected should include child content","location":null,"status":"passed","title":"should include child content"},{"ancestorTitles":["Link","Renders as expected"],"failureMessages":[],"fullName":"Link Renders as expected should all for custom classes to be applied","location":null,"status":"passed","title":"should all for custom classes to be applied"}],"endTime":1604862144386,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Link/Link-test.js","startTime":1604862143195,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Button","Renders common props as expected"],"failureMessages":[],"fullName":"Button Renders common props as expected Renders children as expected","location":null,"status":"passed","title":"Renders children as expected"},{"ancestorTitles":["Button","Renders common props as expected"],"failureMessages":[],"fullName":"Button Renders common props as expected Should set tabIndex if one is passed via props","location":null,"status":"passed","title":"Should set tabIndex if one is passed via props"},{"ancestorTitles":["Button","Renders common props as expected"],"failureMessages":[],"fullName":"Button Renders common props as expected Should add extra classes via className","location":null,"status":"passed","title":"Should add extra classes via className"},{"ancestorTitles":["Button","Renders
via className prop","location":null,"status":"passed","title":"renders extra classes on
via className prop"}],"endTime":1604862145151,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/StepNavigation/StepNavigation-test.js","startTime":1604862143900,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Toggle","Renders as expected"],"failureMessages":[],"fullName":"Toggle Renders as expected Switch and label Ids should match","location":null,"status":"passed","title":"Switch and label Ids should match"},{"ancestorTitles":["Toggle","Renders as expected"],"failureMessages":[],"fullName":"Toggle Renders as expected should set defaultChecked as expected","location":null,"status":"passed","title":"should set defaultChecked as expected"},{"ancestorTitles":["Toggle","Renders as expected"],"failureMessages":[],"fullName":"Toggle Renders as expected Can set defaultToggled state","location":null,"status":"passed","title":"Can set defaultToggled state"},{"ancestorTitles":["Toggle","Renders as expected"],"failureMessages":[],"fullName":"Toggle Renders as expected Should add extra classes that are passed via className","location":null,"status":"passed","title":"Should add extra classes that are passed via className"},{"ancestorTitles":["Toggle","Renders as expected"],"failureMessages":[],"fullName":"Toggle Renders as expected Can be disabled","location":null,"status":"passed","title":"Can be disabled"},{"ancestorTitles":["Toggle","Renders as expected"],"failureMessages":[],"fullName":"Toggle Renders as expected Can have a labelA","location":null,"status":"passed","title":"Can have a labelA"},{"ancestorTitles":["Toggle","Renders as expected"],"failureMessages":[],"fullName":"Toggle Renders as expected Can have a labelB","location":null,"status":"passed","title":"Can have a labelB"},{"ancestorTitles":["Toggle"],"failureMessages":[],"fullName":"Toggle toggled prop sets checked prop on input","location":null,"status":"passed","title":"toggled prop sets checked prop on input"},{"ancestorTitles":["Toggle","events"],"failureMessages":[],"fullName":"Toggle events passes along onChange to ","location":null,"status":"passed","title":"passes along onChange to "},{"ancestorTitles":["Toggle","events"],"failureMessages":[],"fullName":"Toggle events should invoke onToggle with expected arguments","location":null,"status":"passed","title":"should invoke onToggle with expected arguments"},{"ancestorTitles":["ToggleSkeleton","Renders as expected"],"failureMessages":[],"fullName":"ToggleSkeleton Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862145276,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Toggle/Toggle-test.js","startTime":1604862143773,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["FormLabel"],"failureMessages":[],"fullName":"FormLabel should render","location":null,"status":"passed","title":"should render"}],"endTime":1604862145641,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/FormLabel/FormLabel-test.js","startTime":1604862144512,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Search","renders as expected","container"],"failureMessages":["Error: Method “hasClass” is meant to be run on 1 node. 0 found instead.\n at ReactWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:1168:13)\n at ReactWrapper.hasClass (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:935:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js:24:26)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Search renders as expected container should add extra classes that are passed via className","location":null,"status":"failed","title":"should add extra classes that are passed via className"},{"ancestorTitles":["Search","renders as expected","container"],"failureMessages":["Error: Method “props” is meant to be run on 1 node. 0 found instead.\n at ReactWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:1168:13)\n at ReactWrapper.props (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:710:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js:27:26)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Search renders as expected container should have the role of search","location":null,"status":"failed","title":"should have the role of search"},{"ancestorTitles":["Search","renders as expected","input"],"failureMessages":[],"fullName":"Search renders as expected input renders as expected","location":null,"status":"passed","title":"renders as expected"},{"ancestorTitles":["Search","renders as expected","input"],"failureMessages":[],"fullName":"Search renders as expected input has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Search","renders as expected","input"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32m\"text\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js:41:40)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Search renders as expected input should set type as expected","location":null,"status":"failed","title":"should set type as expected"},{"ancestorTitles":["Search","renders as expected","input"],"failureMessages":[],"fullName":"Search renders as expected input should set value as expected","location":null,"status":"passed","title":"should set value as expected"},{"ancestorTitles":["Search","renders as expected","input"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32m\"\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js:54:47)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Search renders as expected input should set placeholder as expected","location":null,"status":"failed","title":"should set placeholder as expected"},{"ancestorTitles":["Search","renders as expected","input"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js:60:39)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Search renders as expected input should specify light version as expected","location":null,"status":"failed","title":"should specify light version as expected"},{"ancestorTitles":["Search","renders as expected","label"],"failureMessages":[],"fullName":"Search renders as expected label renders a label","location":null,"status":"passed","title":"renders a label"},{"ancestorTitles":["Search","renders as expected","label"],"failureMessages":[],"fullName":"Search renders as expected label has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Search","renders as expected","label"],"failureMessages":[],"fullName":"Search renders as expected label should set label as expected","location":null,"status":"passed","title":"should set label as expected"},{"ancestorTitles":["Search","renders as expected","Large Search","buttons"],"failureMessages":[],"fullName":"Search renders as expected Large Search buttons should be one button","location":null,"status":"passed","title":"should be one button"},{"ancestorTitles":["Search","renders as expected","Large Search","buttons"],"failureMessages":[],"fullName":"Search renders as expected Large Search buttons should have type=\"button\"","location":null,"status":"passed","title":"should have type=\"button\""},{"ancestorTitles":["Search","renders as expected","Large Search","icons"],"failureMessages":[],"fullName":"Search renders as expected Large Search icons renders two Icons","location":null,"status":"passed","title":"renders two Icons"},{"ancestorTitles":["Search","renders as expected","Small Search"],"failureMessages":["Error: Method “hasClass” is meant to be run on 1 node. 0 found instead.\n at ReactWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:1168:13)\n at ReactWrapper.hasClass (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:935:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js:137:31)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Search renders as expected Small Search should have the expected small class","location":null,"status":"failed","title":"should have the expected small class"},{"ancestorTitles":["Search","renders as expected","Small Search"],"failureMessages":[],"fullName":"Search renders as expected Small Search should only have 1 button (clear)","location":null,"status":"passed","title":"should only have 1 button (clear)"},{"ancestorTitles":["Search","renders as expected","Small Search"],"failureMessages":[],"fullName":"Search renders as expected Small Search renders one Icon","location":null,"status":"passed","title":"renders one Icon"},{"ancestorTitles":["Search","events","enabled textinput"],"failureMessages":["Error: Method “simulate” is meant to be run on 1 node. 0 found instead.\n at ShallowWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1652:13)\n at ShallowWrapper.simulate (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1133:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js:174:15)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Search events enabled textinput should invoke onClick when input is clicked","location":null,"status":"failed","title":"should invoke onClick when input is clicked"},{"ancestorTitles":["Search","events","enabled textinput"],"failureMessages":["Error: Method “simulate” is meant to be run on 1 node. 0 found instead.\n at ShallowWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1652:13)\n at ShallowWrapper.simulate (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1133:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js:179:15)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Search events enabled textinput should invoke onChange when input value is changed","location":null,"status":"failed","title":"should invoke onChange when input value is changed"},{"ancestorTitles":["SearchSkeleton","Renders as expected"],"failureMessages":[],"fullName":"SearchSkeleton Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"},{"ancestorTitles":["SearchSkeleton Small","Renders as expected"],"failureMessages":[],"fullName":"SearchSkeleton Small Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862145821,"message":"\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSearch › renders as expected › container › should add extra classes that are passed via className\u001b[39m\u001b[22m\n\n Method “hasClass” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 22 | \u001b[39m describe(\u001b[32m'container'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 23 | \u001b[39m it(\u001b[32m'should add extra classes that are passed via className'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 24 | \u001b[39m expect(container\u001b[33m.\u001b[39mhasClass(\u001b[32m'extra-class'\u001b[39m))\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 25 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 26 | \u001b[39m it(\u001b[32m'should have the role of search'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 27 | \u001b[39m expect(container\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mrole)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'search'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:1168:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.hasClass (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:935:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Search/Search-test.js\u001b[39m\u001b[0m\u001b[2m:24:26)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSearch › renders as expected › container › should have the role of search\u001b[39m\u001b[22m\n\n Method “props” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 25 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 26 | \u001b[39m it(\u001b[32m'should have the role of search'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 27 | \u001b[39m expect(container\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mrole)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'search'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 28 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 29 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 30 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:1168:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.props (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:710:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Search/Search-test.js\u001b[39m\u001b[0m\u001b[2m:27:26)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSearch › renders as expected › input › should set type as expected\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32m\"text\"\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 39 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 40 | \u001b[39m it(\u001b[32m'should set type as expected'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 41 | \u001b[39m expect(textInput\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mtype)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'text'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 42 | \u001b[39m wrapper\u001b[33m.\u001b[39msetProps({ type\u001b[33m:\u001b[39m \u001b[32m'email'\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 43 | \u001b[39m expect(wrapper\u001b[33m.\u001b[39mfind(\u001b[32m'input'\u001b[39m)\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mtype)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'email'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 44 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Search/Search-test.js\u001b[39m\u001b[0m\u001b[2m:41:40)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSearch › renders as expected › input › should set placeholder as expected\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32m\"\"\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 52 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 53 | \u001b[39m it(\u001b[32m'should set placeholder as expected'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 54 | \u001b[39m expect(textInput\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mplaceholder)\u001b[33m.\u001b[39mtoEqual(\u001b[32m''\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 55 | \u001b[39m wrapper\u001b[33m.\u001b[39msetProps({ placeHolderText\u001b[33m:\u001b[39m \u001b[32m'Enter text'\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 56 | \u001b[39m expect(wrapper\u001b[33m.\u001b[39mfind(\u001b[32m'input'\u001b[39m)\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mplaceholder)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'Enter text'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 57 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Search/Search-test.js\u001b[39m\u001b[0m\u001b[2m:54:47)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSearch › renders as expected › input › should specify light version as expected\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mfalse\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 58 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 59 | \u001b[39m it(\u001b[32m'should specify light version as expected'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 60 | \u001b[39m expect(wrapper\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mlight)\u001b[33m.\u001b[39mtoEqual(\u001b[36mfalse\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 61 | \u001b[39m wrapper\u001b[33m.\u001b[39msetProps({ light\u001b[33m:\u001b[39m \u001b[36mtrue\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 62 | \u001b[39m expect(wrapper\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mlight)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 63 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Search/Search-test.js\u001b[39m\u001b[0m\u001b[2m:60:39)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSearch › renders as expected › Small Search › should have the expected small class\u001b[39m\u001b[22m\n\n Method “hasClass” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 135 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 136 | \u001b[39m it(\u001b[32m'should have the expected small class'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 137 | \u001b[39m expect(smallContainer\u001b[33m.\u001b[39mhasClass(\u001b[32m'wfp--search--sm'\u001b[39m))\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 138 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 139 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 140 | \u001b[39m it(\u001b[32m'should only have 1 button (clear)'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:1168:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.hasClass (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:935:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Search/Search-test.js\u001b[39m\u001b[0m\u001b[2m:137:31)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSearch › events › enabled textinput › should invoke onClick when input is clicked\u001b[39m\u001b[22m\n\n Method “simulate” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 172 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 173 | \u001b[39m it(\u001b[32m'should invoke onClick when input is clicked'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 174 | \u001b[39m input\u001b[33m.\u001b[39msimulate(\u001b[32m'click'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 175 | \u001b[39m expect(onClick)\u001b[33m.\u001b[39mtoBeCalled()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 176 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 177 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1652:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.simulate (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1133:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Search/Search-test.js\u001b[39m\u001b[0m\u001b[2m:174:15)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSearch › events › enabled textinput › should invoke onChange when input value is changed\u001b[39m\u001b[22m\n\n Method “simulate” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 177 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 178 | \u001b[39m it(\u001b[32m'should invoke onChange when input value is changed'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 179 | \u001b[39m input\u001b[33m.\u001b[39msimulate(\u001b[32m'change'\u001b[39m\u001b[33m,\u001b[39m eventObject)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 180 | \u001b[39m expect(onChange)\u001b[33m.\u001b[39mtoBeCalledWith(eventObject)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 181 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 182 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1652:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.simulate (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1133:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Search/Search-test.js\u001b[39m\u001b[0m\u001b[2m:179:15)\u001b[22m\u001b[2m\u001b[22m\n","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Search/Search-test.js","startTime":1604862143726,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected adds extra classes that are passed via className","location":null,"status":"passed","title":"adds extra classes that are passed via className"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected renders with expected className","location":null,"status":"passed","title":"renders with expected className"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected renders
  • with [role=\"presentation\"]","location":null,"status":"passed","title":"renders
  • with [role=\"presentation\"]"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected renders with [role=\"tab\"]","location":null,"status":"passed","title":"renders with [role=\"tab\"]"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected renders with tabindex set to 0","location":null,"status":"passed","title":"renders with tabindex set to 0"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected sets tabIndex on if one is passed via props","location":null,"status":"passed","title":"sets tabIndex on if one is passed via props"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected uses label to set children on when passed via props","location":null,"status":"passed","title":"uses label to set children on when passed via props"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected sets href as # by default","location":null,"status":"passed","title":"sets href as # by default"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected sets new href value when passed in via props","location":null,"status":"passed","title":"sets new href value when passed in via props"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected should not have [className=\"wfp--tabs__nav-item--selected\"] by default","location":null,"status":"passed","title":"should not have [className=\"wfp--tabs__nav-item--selected\"] by default"},{"ancestorTitles":["Tab","renders as expected"],"failureMessages":[],"fullName":"Tab renders as expected adds [className=\"wfp--tabs__nav-item--selected\"] when selected prop is true","location":null,"status":"passed","title":"adds [className=\"wfp--tabs__nav-item--selected\"] when selected prop is true"},{"ancestorTitles":["Tab","events","click"],"failureMessages":[],"fullName":"Tab events click invokes handleTabClick from onClick prop","location":null,"status":"passed","title":"invokes handleTabClick from onClick prop"},{"ancestorTitles":["Tab","events","click"],"failureMessages":[],"fullName":"Tab events click invokes onClick when a function is passed to onClick prop","location":null,"status":"passed","title":"invokes onClick when a function is passed to onClick prop"},{"ancestorTitles":["Tab","events","keydown"],"failureMessages":[],"fullName":"Tab events keydown invokes onKeyDown when a function is passed to onKeyDown prop","location":null,"status":"passed","title":"invokes onKeyDown when a function is passed to onKeyDown prop"},{"ancestorTitles":["Tab","events","keydown"],"failureMessages":[],"fullName":"Tab events keydown invokes handleTabAnchorFocus when onKeyDown occurs for appropriate events","location":null,"status":"passed","title":"invokes handleTabAnchorFocus when onKeyDown occurs for appropriate events"}],"endTime":1604862146345,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Tab/Tab-test.js","startTime":1604862144846,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["User","renders as expected","userwrapper"],"failureMessages":[],"fullName":"User renders as expected userwrapper renders as expected","location":null,"status":"passed","title":"renders as expected"},{"ancestorTitles":["User","renders as expected","userwrapper"],"failureMessages":[],"fullName":"User renders as expected userwrapper has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["User","renders as expected","userwrapper"],"failureMessages":[],"fullName":"User renders as expected userwrapper should add extra classes that are passed via className","location":null,"status":"passed","title":"should add extra classes that are passed via className"},{"ancestorTitles":["User","renders as expected","usertitle"],"failureMessages":[],"fullName":"User renders as expected usertitle renders as expected","location":null,"status":"passed","title":"renders as expected"},{"ancestorTitles":["User","renders as expected","usertitle"],"failureMessages":[],"fullName":"User renders as expected usertitle has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["User","renders as expected","usertitle"],"failureMessages":[],"fullName":"User renders as expected usertitle has the expected classes for ellipsis","location":null,"status":"passed","title":"has the expected classes for ellipsis"},{"ancestorTitles":["User","renders as expected","usertitle"],"failureMessages":[],"fullName":"User renders as expected usertitle should set value as expected","location":null,"status":"passed","title":"should set value as expected"}],"endTime":1604862146343,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/User/User-test.js","startTime":1604862144891,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Hero","Renders as expected"],"failureMessages":[],"fullName":"Hero Renders as expected should use the appropriate link class","location":null,"status":"passed","title":"should use the appropriate link class"},{"ancestorTitles":["Hero","Renders as expected"],"failureMessages":[],"fullName":"Hero Renders as expected should inherit the href property","location":null,"status":"passed","title":"should inherit the href property"},{"ancestorTitles":["Hero","Renders as expected"],"failureMessages":[],"fullName":"Hero Renders as expected should include child content","location":null,"status":"passed","title":"should include child content"},{"ancestorTitles":["Hero","Renders as expected"],"failureMessages":[],"fullName":"Hero Renders as expected should all for custom classes to be applied","location":null,"status":"passed","title":"should all for custom classes to be applied"}],"endTime":1604862146369,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Hero/Hero-test.js","startTime":1604862138044,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Value","Renders as expected"],"failureMessages":[],"fullName":"Value Renders as expected should use the appropriate link class","location":null,"status":"passed","title":"should use the appropriate link class"},{"ancestorTitles":["Value","Renders as expected"],"failureMessages":[],"fullName":"Value Renders as expected should all for custom classes to be applied","location":null,"status":"passed","title":"should all for custom classes to be applied"}],"endTime":1604862146390,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Value/Value-test.js","startTime":1604862145262,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["FormGroup","Renders as expected"],"failureMessages":[],"fullName":"FormGroup Renders as expected renders children as expected","location":null,"status":"passed","title":"renders children as expected"},{"ancestorTitles":["FormGroup","Renders as expected"],"failureMessages":[],"fullName":"FormGroup Renders as expected renders wrapper as expected","location":null,"status":"passed","title":"renders wrapper as expected"},{"ancestorTitles":["FormGroup","Renders as expected"],"failureMessages":[],"fullName":"FormGroup Renders as expected has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["FormGroup","Renders as expected"],"failureMessages":[],"fullName":"FormGroup Renders as expected renders extra classes passed in via className","location":null,"status":"passed","title":"renders extra classes passed in via className"},{"ancestorTitles":["FormGroup","Renders as expected"],"failureMessages":[],"fullName":"FormGroup Renders as expected should not render the data-invalid property by default","location":null,"status":"passed","title":"should not render the data-invalid property by default"},{"ancestorTitles":["FormGroup","Renders as expected"],"failureMessages":[],"fullName":"FormGroup Renders as expected should render the data-invalid attribute when invalid is set","location":null,"status":"passed","title":"should render the data-invalid attribute when invalid is set"},{"ancestorTitles":["FormGroup","Renders as expected"],"failureMessages":[],"fullName":"FormGroup Renders as expected should render wrapper as expected","location":null,"status":"passed","title":"should render wrapper as expected"},{"ancestorTitles":["FormGroup","Renders as expected"],"failureMessages":[],"fullName":"FormGroup Renders as expected should render children as expected","location":null,"status":"passed","title":"should render children as expected"}],"endTime":1604862146595,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/FormGroup/FormGroup-test.js","startTime":1604862145351,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Checkbox","Renders as expected","label"],"failureMessages":[],"fullName":"Checkbox Renders as expected label renders a label","location":null,"status":"passed","title":"renders a label"},{"ancestorTitles":["Checkbox","Renders as expected","label"],"failureMessages":[],"fullName":"Checkbox Renders as expected label has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Checkbox","Renders as expected","label"],"failureMessages":[],"fullName":"Checkbox Renders as expected label has the expected htmlFor value","location":null,"status":"passed","title":"has the expected htmlFor value"},{"ancestorTitles":["Checkbox","Renders as expected","label"],"failureMessages":[],"fullName":"Checkbox Renders as expected label applies extra classes to label","location":null,"status":"passed","title":"applies extra classes to label"},{"ancestorTitles":["Checkbox","Renders as expected","label","input"],"failureMessages":[],"fullName":"Checkbox Renders as expected label input has id set as expected","location":null,"status":"passed","title":"has id set as expected"},{"ancestorTitles":["Checkbox","Renders as expected","label","input"],"failureMessages":[],"fullName":"Checkbox Renders as expected label input defaultChecked prop sets defaultChecked on input","location":null,"status":"passed","title":"defaultChecked prop sets defaultChecked on input"},{"ancestorTitles":["Checkbox"],"failureMessages":[],"fullName":"Checkbox disabled prop on component sets disabled prop on input","location":null,"status":"passed","title":"disabled prop on component sets disabled prop on input"},{"ancestorTitles":["Checkbox"],"failureMessages":[],"fullName":"Checkbox checked prop on component sets checked prop on input","location":null,"status":"passed","title":"checked prop on component sets checked prop on input"},{"ancestorTitles":["Checkbox"],"failureMessages":[],"fullName":"Checkbox hideLabel hides the label visually","location":null,"status":"passed","title":"hideLabel hides the label visually"},{"ancestorTitles":["Checkbox","events"],"failureMessages":[],"fullName":"Checkbox events should invoke onChange with expected arguments","location":null,"status":"passed","title":"should invoke onChange with expected arguments"},{"ancestorTitles":["CheckboxSkeleton","Renders as expected","label"],"failureMessages":[],"fullName":"CheckboxSkeleton Renders as expected label renders a label","location":null,"status":"passed","title":"renders a label"},{"ancestorTitles":["CheckboxSkeleton","Renders as expected","label"],"failureMessages":[],"fullName":"CheckboxSkeleton Renders as expected label has the expected classes","location":null,"status":"passed","title":"has the expected classes"}],"endTime":1604862146709,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Checkbox/Checkbox-test.js","startTime":1604862145077,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Slider","Renders as expected"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Slider/Slider-test.js:23:55)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"Slider Renders as expected renders children as expected","location":null,"status":"failed","title":"renders children as expected"},{"ancestorTitles":["Slider","Renders as expected"],"failureMessages":[],"fullName":"Slider Renders as expected has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Slider","Renders as expected"],"failureMessages":[],"fullName":"Slider Renders as expected renders extra classes passed in via className","location":null,"status":"passed","title":"renders extra classes passed in via className"},{"ancestorTitles":["Slider","Renders as expected"],"failureMessages":[],"fullName":"Slider Renders as expected can be disabled","location":null,"status":"passed","title":"can be disabled"},{"ancestorTitles":["Slider","Renders as expected"],"failureMessages":[],"fullName":"Slider Renders as expected can set value via props","location":null,"status":"passed","title":"can set value via props"},{"ancestorTitles":["Slider","Renders as expected"],"failureMessages":[],"fullName":"Slider Renders as expected should specify light version as expected","location":null,"status":"passed","title":"should specify light version as expected"},{"ancestorTitles":["Slider","Supporting label"],"failureMessages":[],"fullName":"Slider Supporting label concatenates the value and the label by default","location":null,"status":"passed","title":"concatenates the value and the label by default"},{"ancestorTitles":["Slider","Supporting label"],"failureMessages":[],"fullName":"Slider Supporting label supports custom formatting of the label","location":null,"status":"passed","title":"supports custom formatting of the label"},{"ancestorTitles":["Slider","updatePosition method"],"failureMessages":[],"fullName":"Slider updatePosition method sets correct state from event with a right/up keydown","location":null,"status":"passed","title":"sets correct state from event with a right/up keydown"},{"ancestorTitles":["Slider","updatePosition method"],"failureMessages":[],"fullName":"Slider updatePosition method sets correct state from event with a left/down keydown","location":null,"status":"passed","title":"sets correct state from event with a left/down keydown"},{"ancestorTitles":["Slider","updatePosition method"],"failureMessages":[],"fullName":"Slider updatePosition method sets correct state from event with a clientX","location":null,"status":"passed","title":"sets correct state from event with a clientX"},{"ancestorTitles":["SliderSkeleton","Renders as expected"],"failureMessages":[],"fullName":"SliderSkeleton Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862146726,"message":"\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mSlider › Renders as expected › renders children as expected\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\n Expected: \u001b[32m1\u001b[39m\n Received: \u001b[31m0\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 21 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 22 | \u001b[39m it(\u001b[32m'renders children as expected'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 23 | \u001b[39m expect(wrapper\u001b[33m.\u001b[39mfind(\u001b[32m'.wfp--text-input'\u001b[39m)\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 24 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 25 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 26 | \u001b[39m it(\u001b[32m'has the expected classes'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Slider/Slider-test.js\u001b[39m\u001b[0m\u001b[2m:23:55)\u001b[22m\u001b[2m\u001b[22m\n","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Slider/Slider-test.js","startTime":1604862144975,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["Module","Renders as expected"],"failureMessages":[],"fullName":"Module Renders as expected renders a Module","location":null,"status":"passed","title":"renders a Module"},{"ancestorTitles":["Module","Renders as expected"],"failureMessages":[],"fullName":"Module Renders as expected should render the appropriate classes","location":null,"status":"passed","title":"should render the appropriate classes"},{"ancestorTitles":["Module","Renders as expected"],"failureMessages":[],"fullName":"Module Renders as expected should render children as expected","location":null,"status":"passed","title":"should render children as expected"},{"ancestorTitles":["Module","ModuleBody","Renders as expected"],"failureMessages":[],"fullName":"Module ModuleBody Renders as expected renders a ModuleBody","location":null,"status":"passed","title":"renders a ModuleBody"},{"ancestorTitles":["Module","ModuleBody","Renders as expected"],"failureMessages":[],"fullName":"Module ModuleBody Renders as expected has the expected class","location":null,"status":"passed","title":"has the expected class"},{"ancestorTitles":["Module","ModuleBody","Renders as expected"],"failureMessages":[],"fullName":"Module ModuleBody Renders as expected has the centered class when centered prop is true","location":null,"status":"passed","title":"has the centered class when centered prop is true"},{"ancestorTitles":["Module","ModuleBody","Renders as expected"],"failureMessages":[],"fullName":"Module ModuleBody Renders as expected should render children as expected","location":null,"status":"passed","title":"should render children as expected"}],"endTime":1604862147343,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Module/Module-test.js","startTime":1604862145935,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["TextInput","renders as expected","input"],"failureMessages":[],"fullName":"TextInput renders as expected input renders as expected","location":null,"status":"passed","title":"renders as expected"},{"ancestorTitles":["TextInput","renders as expected","input"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/TextInput/TextInput-test.js:28:57)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"TextInput renders as expected input has the expected classes","location":null,"status":"failed","title":"has the expected classes"},{"ancestorTitles":["TextInput","renders as expected","input"],"failureMessages":[],"fullName":"TextInput renders as expected input should add extra classes that are passed via className","location":null,"status":"passed","title":"should add extra classes that are passed via className"},{"ancestorTitles":["TextInput","renders as expected","input"],"failureMessages":[],"fullName":"TextInput renders as expected input should set type as expected","location":null,"status":"passed","title":"should set type as expected"},{"ancestorTitles":["TextInput","renders as expected","input"],"failureMessages":[],"fullName":"TextInput renders as expected input should set value as expected","location":null,"status":"passed","title":"should set value as expected"},{"ancestorTitles":["TextInput","renders as expected","input"],"failureMessages":[],"fullName":"TextInput renders as expected input should set disabled as expected","location":null,"status":"passed","title":"should set disabled as expected"},{"ancestorTitles":["TextInput","renders as expected","input"],"failureMessages":[],"fullName":"TextInput renders as expected input should set placeholder as expected","location":null,"status":"passed","title":"should set placeholder as expected"},{"ancestorTitles":["TextInput","renders as expected","label"],"failureMessages":[],"fullName":"TextInput renders as expected label renders a label","location":null,"status":"passed","title":"renders a label"},{"ancestorTitles":["TextInput","renders as expected","label"],"failureMessages":[],"fullName":"TextInput renders as expected label has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["TextInput","renders as expected","label"],"failureMessages":[],"fullName":"TextInput renders as expected label should set label as expected","location":null,"status":"passed","title":"should set label as expected"},{"ancestorTitles":["TextInput","renders as expected","helper"],"failureMessages":[],"fullName":"TextInput renders as expected helper renders a helper","location":null,"status":"passed","title":"renders a helper"},{"ancestorTitles":["TextInput","renders as expected","helper"],"failureMessages":[],"fullName":"TextInput renders as expected helper renders children as expected","location":null,"status":"passed","title":"renders children as expected"},{"ancestorTitles":["TextInput","renders as expected","helper"],"failureMessages":[],"fullName":"TextInput renders as expected helper should set helper text as expected","location":null,"status":"passed","title":"should set helper text as expected"},{"ancestorTitles":["TextInput","events","disabled textinput"],"failureMessages":["Error: Method “simulate” is meant to be run on 1 node. 0 found instead.\n at ShallowWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1652:13)\n at ShallowWrapper.simulate (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1133:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/TextInput/TextInput-test.js:132:15)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"TextInput events disabled textinput should not invoke onClick","location":null,"status":"failed","title":"should not invoke onClick"},{"ancestorTitles":["TextInput","events","disabled textinput"],"failureMessages":["Error: Method “simulate” is meant to be run on 1 node. 0 found instead.\n at ShallowWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1652:13)\n at ShallowWrapper.simulate (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1133:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/TextInput/TextInput-test.js:137:15)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"TextInput events disabled textinput should not invoke onChange","location":null,"status":"failed","title":"should not invoke onChange"},{"ancestorTitles":["TextInput","events","enabled textinput"],"failureMessages":["Error: Method “simulate” is meant to be run on 1 node. 0 found instead.\n at ShallowWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1652:13)\n at ShallowWrapper.simulate (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1133:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/TextInput/TextInput-test.js:164:15)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"TextInput events enabled textinput should invoke onClick when input is clicked","location":null,"status":"failed","title":"should invoke onClick when input is clicked"},{"ancestorTitles":["TextInput","events","enabled textinput"],"failureMessages":["Error: Method “simulate” is meant to be run on 1 node. 0 found instead.\n at ShallowWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1652:13)\n at ShallowWrapper.simulate (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ShallowWrapper.js:1133:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/TextInput/TextInput-test.js:169:15)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"TextInput events enabled textinput should invoke onChange when input value is changed","location":null,"status":"failed","title":"should invoke onChange when input value is changed"}],"endTime":1604862147542,"message":"\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mTextInput › renders as expected › input › has the expected classes\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mtrue\u001b[39m\n Received: \u001b[31mfalse\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 26 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 27 | \u001b[39m it(\u001b[32m'has the expected classes'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 28 | \u001b[39m expect(textInput()\u001b[33m.\u001b[39mhasClass(\u001b[32m'wfp--text-input'\u001b[39m))\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 29 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 30 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 31 | \u001b[39m it(\u001b[32m'should add extra classes that are passed via className'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/TextInput/TextInput-test.js\u001b[39m\u001b[0m\u001b[2m:28:57)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mTextInput › events › disabled textinput › should not invoke onClick\u001b[39m\u001b[22m\n\n Method “simulate” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 130 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 131 | \u001b[39m it(\u001b[32m'should not invoke onClick'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 132 | \u001b[39m input\u001b[33m.\u001b[39msimulate(\u001b[32m'click'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 133 | \u001b[39m expect(onClick)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeCalled()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 134 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 135 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1652:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.simulate (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1133:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/TextInput/TextInput-test.js\u001b[39m\u001b[0m\u001b[2m:132:15)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mTextInput › events › disabled textinput › should not invoke onChange\u001b[39m\u001b[22m\n\n Method “simulate” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 135 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 136 | \u001b[39m it(\u001b[32m'should not invoke onChange'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 137 | \u001b[39m input\u001b[33m.\u001b[39msimulate(\u001b[32m'change'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 138 | \u001b[39m expect(onChange)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeCalled()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 139 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 140 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1652:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.simulate (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1133:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/TextInput/TextInput-test.js\u001b[39m\u001b[0m\u001b[2m:137:15)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mTextInput › events › enabled textinput › should invoke onClick when input is clicked\u001b[39m\u001b[22m\n\n Method “simulate” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 162 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 163 | \u001b[39m it(\u001b[32m'should invoke onClick when input is clicked'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 164 | \u001b[39m input\u001b[33m.\u001b[39msimulate(\u001b[32m'click'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 165 | \u001b[39m expect(onClick)\u001b[33m.\u001b[39mtoBeCalled()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 166 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 167 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1652:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.simulate (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1133:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/TextInput/TextInput-test.js\u001b[39m\u001b[0m\u001b[2m:164:15)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mTextInput › events › enabled textinput › should invoke onChange when input value is changed\u001b[39m\u001b[22m\n\n Method “simulate” is meant to be run on 1 node. 0 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 167 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 168 | \u001b[39m it(\u001b[32m'should invoke onChange when input value is changed'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 169 | \u001b[39m input\u001b[33m.\u001b[39msimulate(\u001b[32m'change'\u001b[39m\u001b[33m,\u001b[39m eventObject)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 170 | \u001b[39m expect(onChange)\u001b[33m.\u001b[39mtoBeCalledWith(eventObject)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 171 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 172 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1652:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ShallowWrapper.simulate (\u001b[22m\u001b[2mnode_modules/enzyme/src/ShallowWrapper.js\u001b[2m:1133:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/TextInput/TextInput-test.js\u001b[39m\u001b[0m\u001b[2m:169:15)\u001b[22m\u001b[2m\u001b[22m\n","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/TextInput/TextInput-test.js","startTime":1604862145736,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["SkeletonText","Renders as expected"],"failureMessages":[],"fullName":"SkeletonText Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"},{"ancestorTitles":["SkeletonText Heading","Renders as expected"],"failureMessages":[],"fullName":"SkeletonText Heading Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862147652,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/SkeletonText/SkeletonText-test.js","startTime":1604862146405,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["StepNavigationItem","renders as expected"],"failureMessages":[],"fullName":"StepNavigationItem renders as expected renders
  • with expected className","location":null,"status":"passed","title":"renders
  • with expected className"}],"endTime":1604862147669,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/StepNavigationItem/StepNavigationItem-test.js","startTime":1604862146403,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["TabContent","renders as expected"],"failureMessages":[],"fullName":"TabContent renders as expected renders children as expected","location":null,"status":"passed","title":"renders children as expected"},{"ancestorTitles":["TabContent","renders as expected"],"failureMessages":[],"fullName":"TabContent renders as expected sets selected if passed in via props","location":null,"status":"passed","title":"sets selected if passed in via props"},{"ancestorTitles":["TabContent","renders as expected"],"failureMessages":[],"fullName":"TabContent renders as expected sets selected and hidden props with opposite boolean values","location":null,"status":"passed","title":"sets selected and hidden props with opposite boolean values"}],"endTime":1604862147715,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/TabContent/TabContent-test.js","startTime":1604862146543,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["SelectItem","Renders as expected"],"failureMessages":[],"fullName":"SelectItem Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"},{"ancestorTitles":["SelectItem","Renders as expected"],"failureMessages":[],"fullName":"SelectItem Renders as expected Should add extra classes that are passed via className","location":null,"status":"passed","title":"Should add extra classes that are passed via className"},{"ancestorTitles":["SelectItem","Renders as expected"],"failureMessages":[],"fullName":"SelectItem Renders as expected Should add the value that is passed","location":null,"status":"passed","title":"Should add the value that is passed"},{"ancestorTitles":["SelectItem","Renders as expected"],"failureMessages":[],"fullName":"SelectItem Renders as expected Should add the select item text that is passed","location":null,"status":"passed","title":"Should add the select item text that is passed"},{"ancestorTitles":["SelectItem","Renders as expected"],"failureMessages":[],"fullName":"SelectItem Renders as expected Should not be disabled by default","location":null,"status":"passed","title":"Should not be disabled by default"},{"ancestorTitles":["SelectItem","Renders as expected"],"failureMessages":[],"fullName":"SelectItem Renders as expected should set disabled as expected","location":null,"status":"passed","title":"should set disabled as expected"},{"ancestorTitles":["SelectItem","Renders as expected"],"failureMessages":[],"fullName":"SelectItem Renders as expected should set hidden as expected","location":null,"status":"passed","title":"should set hidden as expected"}],"endTime":1604862147893,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/SelectItem/SelectItem-test.js","startTime":1604862146706,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["SelectItemGroup","Renders as expected"],"failureMessages":[],"fullName":"SelectItemGroup Renders as expected should have the expected classes","location":null,"status":"passed","title":"should have the expected classes"},{"ancestorTitles":["SelectItemGroup","Renders as expected"],"failureMessages":[],"fullName":"SelectItemGroup Renders as expected Should add extra classes that are passed via className","location":null,"status":"passed","title":"Should add extra classes that are passed via className"},{"ancestorTitles":["SelectItemGroup","Renders as expected"],"failureMessages":[],"fullName":"SelectItemGroup Renders as expected Should add the label that is passed","location":null,"status":"passed","title":"Should add the label that is passed"},{"ancestorTitles":["SelectItemGroup","Renders as expected"],"failureMessages":[],"fullName":"SelectItemGroup Renders as expected Should not be disabled by default","location":null,"status":"passed","title":"Should not be disabled by default"},{"ancestorTitles":["SelectItemGroup","Renders as expected"],"failureMessages":[],"fullName":"SelectItemGroup Renders as expected should set disabled as expected","location":null,"status":"passed","title":"should set disabled as expected"}],"endTime":1604862147945,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/SelectItemGroup/SelectItemGroup-test.js","startTime":1604862146779,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Carbon Components React"],"failureMessages":[],"fullName":"Carbon Components React can be imported using the correct path","location":null,"status":"passed","title":"can be imported using the correct path"}],"endTime":1604862147939,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/__tests__/index-test.js","startTime":1604862136823,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["InputGroup","renders as expected","wrapping div"],"failureMessages":[],"fullName":"InputGroup renders as expected wrapping div renders a div","location":null,"status":"passed","title":"renders a div"},{"ancestorTitles":["InputGroup","renders as expected","wrapping div"],"failureMessages":[],"fullName":"InputGroup renders as expected wrapping div sets classes that are passed via className prop","location":null,"status":"passed","title":"sets classes that are passed via className prop"},{"ancestorTitles":["InputGroup","renders as expected","wrapping div"],"failureMessages":[],"fullName":"InputGroup renders as expected wrapping div sets disabled attribute if disabled prop is set","location":null,"status":"passed","title":"sets disabled attribute if disabled prop is set"},{"ancestorTitles":["InputGroup","renders as expected","children"],"failureMessages":[],"fullName":"InputGroup renders as expected children renders expected number of children","location":null,"status":"passed","title":"renders expected number of children"},{"ancestorTitles":["InputGroup","renders as expected","children"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/CheckboxGroup/RadioButtonGroup-test.js:41:54)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup renders as expected children should set checked property based on defaultSelected prop","location":null,"status":"failed","title":"should set checked property based on defaultSelected prop"},{"ancestorTitles":["InputGroup","renders as expected","children"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/CheckboxGroup/RadioButtonGroup-test.js:46:55)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup renders as expected children should set checked property based on valueSelected prop","location":null,"status":"failed","title":"should set checked property based on valueSelected prop"},{"ancestorTitles":["InputGroup","renders as expected","children"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32m\"gender\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/CheckboxGroup/RadioButtonGroup-test.js:53:41)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup renders as expected children should set expected props on children","location":null,"status":"failed","title":"should set expected props on children"},{"ancestorTitles":["InputGroup","onChange event"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/CheckboxGroup/RadioButtonGroup-test.js:72:42)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup onChange event first child should not have checked set initially","location":null,"status":"failed","title":"first child should not have checked set initially"},{"ancestorTitles":["InputGroup","onChange event"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/CheckboxGroup/RadioButtonGroup-test.js:78:65)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup onChange event invoking onChange sets checked on correct child","location":null,"status":"failed","title":"invoking onChange sets checked on correct child"},{"ancestorTitles":["InputGroup","onChange event"],"failureMessages":["Error: \u001b[2mexpect(\u001b[22m\u001b[31mjest.fn()\u001b[39m\u001b[2m).\u001b[22mtoBeCalledWith\u001b[2m(\u001b[22m\u001b[32m...expected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: \u001b[32m\"male\"\u001b[39m, \u001b[32m\"gender\"\u001b[39m, \u001b[32m{\"test\": \"test event\"}\u001b[39m\n\nNumber of calls: \u001b[31m0\u001b[39m\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/CheckboxGroup/RadioButtonGroup-test.js:82:7)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"InputGroup onChange event should invoke onChange with correct arguments","location":null,"status":"failed","title":"should invoke onChange with correct arguments"},{"ancestorTitles":["InputGroup","onChange event"],"failureMessages":[],"fullName":"InputGroup onChange event calling onChange with same args should not call onChange prop","location":null,"status":"passed","title":"calling onChange with same args should not call onChange prop"},{"ancestorTitles":["InputGroup","Getting derived state from props"],"failureMessages":[],"fullName":"InputGroup Getting derived state from props should initialize the current selection from props","location":null,"status":"passed","title":"should initialize the current selection from props"},{"ancestorTitles":["InputGroup","Getting derived state from props"],"failureMessages":[],"fullName":"InputGroup Getting derived state from props should change the current selection upon change in props","location":null,"status":"passed","title":"should change the current selection upon change in props"},{"ancestorTitles":["InputGroup","Getting derived state from props"],"failureMessages":[],"fullName":"InputGroup Getting derived state from props should avoid change the current selection upon setting props, unless there the value actually changes","location":null,"status":"passed","title":"should avoid change the current selection upon setting props, unless there the value actually changes"}],"endTime":1604862148396,"message":"\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › renders as expected › children › should set checked property based on defaultSelected prop\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mtrue\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 39 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 40 | \u001b[39m it(\u001b[32m'should set checked property based on defaultSelected prop'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 41 | \u001b[39m expect(radioButton()\u001b[33m.\u001b[39mlast()\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 42 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 43 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 44 | \u001b[39m it(\u001b[32m'should set checked property based on valueSelected prop'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/CheckboxGroup/RadioButtonGroup-test.js\u001b[39m\u001b[0m\u001b[2m:41:54)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › renders as expected › children › should set checked property based on valueSelected prop\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mtrue\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 44 | \u001b[39m it(\u001b[32m'should set checked property based on valueSelected prop'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 45 | \u001b[39m wrapper\u001b[33m.\u001b[39msetProps({ valueSelected\u001b[33m:\u001b[39m \u001b[32m'male'\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 46 | \u001b[39m expect(radioButton()\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 47 | \u001b[39m wrapper\u001b[33m.\u001b[39msetProps({ valueSelected\u001b[33m:\u001b[39m \u001b[32m'female'\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 48 | \u001b[39m expect(radioButton()\u001b[33m.\u001b[39mlast()\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 49 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/CheckboxGroup/RadioButtonGroup-test.js\u001b[39m\u001b[0m\u001b[2m:46:55)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › renders as expected › children › should set expected props on children\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32m\"gender\"\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 51 | \u001b[39m it(\u001b[32m'should set expected props on children'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 52 | \u001b[39m \u001b[36mconst\u001b[39m firstChild \u001b[33m=\u001b[39m radioButton()\u001b[33m.\u001b[39mfirst()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 53 | \u001b[39m expect(firstChild\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mname)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'gender'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 54 | \u001b[39m expect(firstChild\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mvalue)\u001b[33m.\u001b[39mtoEqual(\u001b[32m'male'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 55 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 56 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/CheckboxGroup/RadioButtonGroup-test.js\u001b[39m\u001b[0m\u001b[2m:53:41)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › onChange event › first child should not have checked set initially\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mfalse\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 70 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 71 | \u001b[39m it(\u001b[32m'first child should not have checked set initially'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 72 | \u001b[39m expect(firstRadio\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mfalse\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 73 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 74 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 75 | \u001b[39m it(\u001b[32m'invoking onChange sets checked on correct child'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/CheckboxGroup/RadioButtonGroup-test.js\u001b[39m\u001b[0m\u001b[2m:72:42)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › onChange event › invoking onChange sets checked on correct child\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n Expected: \u001b[32mtrue\u001b[39m\n Received: \u001b[31mundefined\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 76 | \u001b[39m firstRadio\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39monChange(\u001b[33m...\u001b[39margs)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 77 | \u001b[39m wrapper\u001b[33m.\u001b[39mupdate()\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 78 | \u001b[39m expect(wrapper\u001b[33m.\u001b[39mfind(\u001b[33mRadioButton\u001b[39m)\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mprops()\u001b[33m.\u001b[39mchecked)\u001b[33m.\u001b[39mtoEqual(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 79 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 80 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 81 | \u001b[39m it(\u001b[32m'should invoke onChange with correct arguments'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/CheckboxGroup/RadioButtonGroup-test.js\u001b[39m\u001b[0m\u001b[2m:78:65)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mInputGroup › onChange event › should invoke onChange with correct arguments\u001b[39m\u001b[22m\n\n \u001b[2mexpect(\u001b[22m\u001b[31mjest.fn()\u001b[39m\u001b[2m).\u001b[22mtoBeCalledWith\u001b[2m(\u001b[22m\u001b[32m...expected\u001b[39m\u001b[2m)\u001b[22m\n\n Expected: \u001b[32m\"male\"\u001b[39m, \u001b[32m\"gender\"\u001b[39m, \u001b[32m{\"test\": \"test event\"}\u001b[39m\n\n Number of calls: \u001b[31m0\u001b[39m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 80 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 81 | \u001b[39m it(\u001b[32m'should invoke onChange with correct arguments'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 82 | \u001b[39m expect(onChange)\u001b[33m.\u001b[39mtoBeCalledWith(\u001b[33m...\u001b[39margs)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 83 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 84 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 85 | \u001b[39m it(\u001b[32m'calling onChange with same args should not call onChange prop'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/CheckboxGroup/RadioButtonGroup-test.js\u001b[39m\u001b[0m\u001b[2m:82:7)\u001b[22m\u001b[2m\u001b[22m\n","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/CheckboxGroup/RadioButtonGroup-test.js","startTime":1604862146788,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["FormItem"],"failureMessages":[],"fullName":"FormItem should render","location":null,"status":"passed","title":"should render"}],"endTime":1604862148508,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/FormItem/FormItem-test.js","startTime":1604862147590,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["NotificationButton","Renders as expected"],"failureMessages":[],"fullName":"NotificationButton Renders as expected renders given className","location":null,"status":"passed","title":"renders given className"},{"ancestorTitles":["NotificationButton","Renders as expected"],"failureMessages":[],"fullName":"NotificationButton Renders as expected renders only one Icon","location":null,"status":"passed","title":"renders only one Icon"},{"ancestorTitles":["NotificationButton","Renders as expected"],"failureMessages":["Error: Method “html” is meant to be run on 1 node. 2 found instead.\n at ReactWrapper.single (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:1168:13)\n at ReactWrapper.html (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/enzyme/src/ReactWrapper.js:641:17)\n at Object. (/Applications/MAMP/htdocs/wfp-ui-next/src/components/Notification/Notification-test.js:36:33)\n at Object.asyncJestTest (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n at new Promise ()\n at mapper (/Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n at /Applications/MAMP/htdocs/wfp-ui-next/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"],"fullName":"NotificationButton Renders as expected supports custom icon","location":null,"status":"failed","title":"supports custom icon"},{"ancestorTitles":["NotificationButton","Renders as expected","When notificationType equals \"toast\""],"failureMessages":[],"fullName":"NotificationButton Renders as expected When notificationType equals \"toast\" button should have correct className by default","location":null,"status":"passed","title":"button should have correct className by default"},{"ancestorTitles":["NotificationButton","Renders as expected","When notificationType equals \"toast\""],"failureMessages":[],"fullName":"NotificationButton Renders as expected When notificationType equals \"toast\" icon should have correct className by default","location":null,"status":"passed","title":"icon should have correct className by default"},{"ancestorTitles":["NotificationButton","Renders as expected","When notificationType equals \"inline\""],"failureMessages":[],"fullName":"NotificationButton Renders as expected When notificationType equals \"inline\" button should have correct className","location":null,"status":"passed","title":"button should have correct className"},{"ancestorTitles":["NotificationButton","Renders as expected","When notificationType equals \"inline\""],"failureMessages":[],"fullName":"NotificationButton Renders as expected When notificationType equals \"inline\" icon should have correct className","location":null,"status":"passed","title":"icon should have correct className"},{"ancestorTitles":["NotificationTextDetails","Renders as expected","When notificationType equals \"toast\""],"failureMessages":[],"fullName":"NotificationTextDetails Renders as expected When notificationType equals \"toast\" div shoudld have correct className by default","location":null,"status":"passed","title":"div shoudld have correct className by default"},{"ancestorTitles":["NotificationTextDetails","Renders as expected","When notificationType equals \"inline\""],"failureMessages":[],"fullName":"NotificationTextDetails Renders as expected When notificationType equals \"inline\" div shoudld have correct className","location":null,"status":"passed","title":"div shoudld have correct className"},{"ancestorTitles":["ToastNotification","Renders as expected"],"failureMessages":[],"fullName":"ToastNotification Renders as expected renders itself","location":null,"status":"passed","title":"renders itself"},{"ancestorTitles":["ToastNotification","Renders as expected"],"failureMessages":[],"fullName":"ToastNotification Renders as expected renders HTML for toast notifications when caption exists","location":null,"status":"passed","title":"renders HTML for toast notifications when caption exists"},{"ancestorTitles":["ToastNotification","Renders as expected"],"failureMessages":[],"fullName":"ToastNotification Renders as expected adds extra classes via className","location":null,"status":"passed","title":"adds extra classes via className"},{"ancestorTitles":["ToastNotification","Renders as expected"],"failureMessages":[],"fullName":"ToastNotification Renders as expected interpolates matching className based on kind prop","location":null,"status":"passed","title":"interpolates matching className based on kind prop"},{"ancestorTitles":["ToastNotification","Renders as expected"],"failureMessages":[],"fullName":"ToastNotification Renders as expected has [role=\"alert\"] on wrapping
    ","location":null,"status":"passed","title":"has [role=\"alert\"] on wrapping
    "},{"ancestorTitles":["ToastNotification","Renders as expected"],"failureMessages":[],"fullName":"ToastNotification Renders as expected sets a new kind when passed in via props","location":null,"status":"passed","title":"sets a new kind when passed in via props"},{"ancestorTitles":["ToastNotification","Renders as expected"],"failureMessages":[],"fullName":"ToastNotification Renders as expected can render any node for the subtitle and caption","location":null,"status":"passed","title":"can render any node for the subtitle and caption"},{"ancestorTitles":["ToastNotification","events and state"],"failureMessages":[],"fullName":"ToastNotification events and state initial open state set to true","location":null,"status":"passed","title":"initial open state set to true"},{"ancestorTitles":["ToastNotification","events and state"],"failureMessages":[],"fullName":"ToastNotification events and state sets open state to false when close button is clicked","location":null,"status":"passed","title":"sets open state to false when close button is clicked"},{"ancestorTitles":["ToastNotification","events and state"],"failureMessages":[],"fullName":"ToastNotification events and state renders null when open state is false","location":null,"status":"passed","title":"renders null when open state is false"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected renders itself","location":null,"status":"passed","title":"renders itself"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected renders success notification with matching kind and values","location":null,"status":"passed","title":"renders success notification with matching kind and values"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected renders error notification with matching kind and values","location":null,"status":"passed","title":"renders error notification with matching kind and values"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected renders warning notification with matching kind and values","location":null,"status":"passed","title":"renders warning notification with matching kind and values"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected renders HTML for inline notifications when caption does not exist","location":null,"status":"passed","title":"renders HTML for inline notifications when caption does not exist"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected adds extra classes via className","location":null,"status":"passed","title":"adds extra classes via className"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected interpolates matching className based on kind prop","location":null,"status":"passed","title":"interpolates matching className based on kind prop"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected has [role=\"alert\"] on wrapping
    ","location":null,"status":"passed","title":"has [role=\"alert\"] on wrapping
    "},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected sets a new kind when passed in via props","location":null,"status":"passed","title":"sets a new kind when passed in via props"},{"ancestorTitles":["InlineNotification","Renders as expected"],"failureMessages":[],"fullName":"InlineNotification Renders as expected can render any node for the subtitle","location":null,"status":"passed","title":"can render any node for the subtitle"},{"ancestorTitles":["InlineNotification","events and state"],"failureMessages":[],"fullName":"InlineNotification events and state initial open state set to true","location":null,"status":"passed","title":"initial open state set to true"},{"ancestorTitles":["InlineNotification","events and state"],"failureMessages":[],"fullName":"InlineNotification events and state sets open state to false when close button is clicked","location":null,"status":"passed","title":"sets open state to false when close button is clicked"},{"ancestorTitles":["InlineNotification","events and state"],"failureMessages":[],"fullName":"InlineNotification events and state renders null when open state is false","location":null,"status":"passed","title":"renders null when open state is false"}],"endTime":1604862148565,"message":"\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mNotificationButton › Renders as expected › supports custom icon\u001b[39m\u001b[22m\n\n Method “html” is meant to be run on 1 node. 2 found instead.\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 34 | \u001b[39m \u001b[36mconst\u001b[39m icon \u001b[33m=\u001b[39m iconButton\u001b[33m.\u001b[39mfind(\u001b[32m'svg'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 35 | \u001b[39m expect(icon\u001b[33m.\u001b[39mfind(\u001b[32m':not(svg):not(title)'\u001b[39m)\u001b[33m.\u001b[39mhtml())\u001b[33m.\u001b[39mtoBe(\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[2m\u001b[39m\u001b[90m 36 | \u001b[39m originalIcon\u001b[33m.\u001b[39mchildren()\u001b[33m.\u001b[39mhtml()\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m | \u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[2m\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 37 | \u001b[39m )\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 38 | \u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\u001b[22m\n\u001b[2m \u001b[0m \u001b[90m 39 | \u001b[39m\u001b[0m\u001b[22m\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.single (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:1168:13)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat ReactWrapper.html (\u001b[22m\u001b[2mnode_modules/enzyme/src/ReactWrapper.js\u001b[2m:641:17)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Object. (\u001b[22m\u001b[2m\u001b[0m\u001b[36msrc/components/Notification/Notification-test.js\u001b[39m\u001b[0m\u001b[2m:36:33)\u001b[22m\u001b[2m\u001b[22m\n","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Notification/Notification-test.js","startTime":1604862146516,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["Loading","Renders as expected"],"failureMessages":[],"fullName":"Loading Renders as expected should render with an overlay","location":null,"status":"passed","title":"should render with an overlay"},{"ancestorTitles":["Loading","Renders as expected"],"failureMessages":[],"fullName":"Loading Renders as expected should render with a loader","location":null,"status":"passed","title":"should render with a loader"},{"ancestorTitles":["Loading","Renders as expected"],"failureMessages":[],"fullName":"Loading Renders as expected shoud render an svg","location":null,"status":"passed","title":"shoud render an svg"},{"ancestorTitles":["Loading","Renders as expected"],"failureMessages":[],"fullName":"Loading Renders as expected overlay has the expected class","location":null,"status":"passed","title":"overlay has the expected class"},{"ancestorTitles":["Loading","Renders as expected"],"failureMessages":[],"fullName":"Loading Renders as expected loader has the expected classes","location":null,"status":"passed","title":"loader has the expected classes"},{"ancestorTitles":["Loading","Renders as expected"],"failureMessages":[],"fullName":"Loading Renders as expected svg has the correct class","location":null,"status":"passed","title":"svg has the correct class"},{"ancestorTitles":["Loading","Renders as expected"],"failureMessages":[],"fullName":"Loading Renders as expected should add extra classes that are passed via className","location":null,"status":"passed","title":"should add extra classes that are passed via className"},{"ancestorTitles":["Loading","Sets props and state as expected"],"failureMessages":[],"fullName":"Loading Sets props and state as expected should remove and add wfp--loading--stop class","location":null,"status":"passed","title":"should remove and add wfp--loading--stop class"},{"ancestorTitles":["Loading","Sets props and state as expected"],"failureMessages":[],"fullName":"Loading Sets props and state as expected should not render overlay when withOverlay is set to false","location":null,"status":"passed","title":"should not render overlay when withOverlay is set to false"}],"endTime":1604862148857,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Loading/Loading-test.js","startTime":1604862147693,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["ModalWrapper"],"failureMessages":[],"fullName":"ModalWrapper should render","location":null,"status":"passed","title":"should render"},{"ancestorTitles":["ModalWrapper"],"failureMessages":[],"fullName":"ModalWrapper should close after a successful submit action","location":null,"status":"passed","title":"should close after a successful submit action"},{"ancestorTitles":["ModalWrapper"],"failureMessages":[],"fullName":"ModalWrapper should return focus to the trigger button after closing","location":null,"status":"passed","title":"should return focus to the trigger button after closing"},{"ancestorTitles":["ModalWrapper"],"failureMessages":[],"fullName":"ModalWrapper should not close after an unsuccessful submit action","location":null,"status":"passed","title":"should not close after an unsuccessful submit action"}],"endTime":1604862149011,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/ModalWrapper/ModalWrapper-test.js","startTime":1604862147380,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Form","Renders as expected"],"failureMessages":[],"fullName":"Form Renders as expected renders children as expected","location":null,"status":"passed","title":"renders children as expected"},{"ancestorTitles":["Form","Renders as expected"],"failureMessages":[],"fullName":"Form Renders as expected renders wrapper as expected","location":null,"status":"passed","title":"renders wrapper as expected"},{"ancestorTitles":["Form","Renders as expected"],"failureMessages":[],"fullName":"Form Renders as expected has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["Form","Renders as expected"],"failureMessages":[],"fullName":"Form Renders as expected renders extra classes passed in via className","location":null,"status":"passed","title":"renders extra classes passed in via className"},{"ancestorTitles":["Form","Renders as expected"],"failureMessages":[],"fullName":"Form Renders as expected should render wrapper as expected","location":null,"status":"passed","title":"should render wrapper as expected"},{"ancestorTitles":["Form","Renders as expected"],"failureMessages":[],"fullName":"Form Renders as expected should render children as expected","location":null,"status":"passed","title":"should render children as expected"},{"ancestorTitles":["Form","Renders as expected"],"failureMessages":[],"fullName":"Form Renders as expected should handle submit events","location":null,"status":"passed","title":"should handle submit events"}],"endTime":1604862149152,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Form/Form-test.js","startTime":1604862147840,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["RadioButton","renders as expected","input"],"failureMessages":[],"fullName":"RadioButton renders as expected input is of type radio","location":null,"status":"passed","title":"is of type radio"},{"ancestorTitles":["RadioButton","renders as expected","input"],"failureMessages":[],"fullName":"RadioButton renders as expected input has the expected class","location":null,"status":"passed","title":"has the expected class"},{"ancestorTitles":["RadioButton","renders as expected","input"],"failureMessages":[],"fullName":"RadioButton renders as expected input has a unique id set by default","location":null,"status":"passed","title":"has a unique id set by default"},{"ancestorTitles":["RadioButton","renders as expected","input"],"failureMessages":[],"fullName":"RadioButton renders as expected input should have checked set when checked is passed","location":null,"status":"passed","title":"should have checked set when checked is passed"},{"ancestorTitles":["RadioButton","renders as expected","input"],"failureMessages":[],"fullName":"RadioButton renders as expected input should set the name prop as expected","location":null,"status":"passed","title":"should set the name prop as expected"},{"ancestorTitles":["RadioButton","renders as expected","label"],"failureMessages":[],"fullName":"RadioButton renders as expected label should set htmlFor","location":null,"status":"passed","title":"should set htmlFor"},{"ancestorTitles":["RadioButton","renders as expected","label"],"failureMessages":[],"fullName":"RadioButton renders as expected label should set the correct class","location":null,"status":"passed","title":"should set the correct class"},{"ancestorTitles":["RadioButton","renders as expected","label"],"failureMessages":[],"fullName":"RadioButton renders as expected label should render a span with the correct class","location":null,"status":"passed","title":"should render a span with the correct class"},{"ancestorTitles":["RadioButton","renders as expected","label"],"failureMessages":[],"fullName":"RadioButton renders as expected label should render label text","location":null,"status":"passed","title":"should render label text"},{"ancestorTitles":["RadioButton","renders as expected","wrapper"],"failureMessages":[],"fullName":"RadioButton renders as expected wrapper should have the correct class","location":null,"status":"passed","title":"should have the correct class"},{"ancestorTitles":["RadioButton","renders as expected","wrapper"],"failureMessages":[],"fullName":"RadioButton renders as expected wrapper should have extra classes applied","location":null,"status":"passed","title":"should have extra classes applied"},{"ancestorTitles":["RadioButton"],"failureMessages":[],"fullName":"RadioButton should set defaultChecked as expected","location":null,"status":"passed","title":"should set defaultChecked as expected"},{"ancestorTitles":["RadioButton"],"failureMessages":[],"fullName":"RadioButton should set id if one is passed in","location":null,"status":"passed","title":"should set id if one is passed in"},{"ancestorTitles":["RadioButton","events"],"failureMessages":[],"fullName":"RadioButton events should invoke onChange with expected arguments","location":null,"status":"passed","title":"should invoke onChange with expected arguments"},{"ancestorTitles":["RadioButtonSkeleton","Renders as expected"],"failureMessages":[],"fullName":"RadioButtonSkeleton Renders as expected Has the expected classes","location":null,"status":"passed","title":"Has the expected classes"}],"endTime":1604862149158,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/RadioButton/RadioButton-test.js","startTime":1604862147721,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Unit","renders as expected"],"failureMessages":[],"fullName":"Unit renders as expected renders as expected","location":null,"status":"passed","title":"renders as expected"},{"ancestorTitles":["Unit","renders as expected"],"failureMessages":[],"fullName":"Unit renders as expected should add extra classes that are passed via className","location":null,"status":"passed","title":"should add extra classes that are passed via className"}],"endTime":1604862149181,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Unit/Unit-test.js","startTime":1604862147915,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should use the appropriate footer class","location":null,"status":"passed","title":"should use the appropriate footer class"},{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should send the first link the correct label","location":null,"status":"passed","title":"should send the first link the correct label"},{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should send the first link the correct title","location":null,"status":"passed","title":"should send the first link the correct title"},{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should send the first link the href property","location":null,"status":"passed","title":"should send the first link the href property"},{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should send the second link the correct label","location":null,"status":"passed","title":"should send the second link the correct label"},{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should send the second link the correct title","location":null,"status":"passed","title":"should send the second link the correct title"},{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should send the second link the href property","location":null,"status":"passed","title":"should send the second link the href property"},{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should send the button the correct text","location":null,"status":"passed","title":"should send the button the correct text"},{"ancestorTitles":["Footer","Renders as expected"],"failureMessages":[],"fullName":"Footer Renders as expected should all for custom classes to be applied","location":null,"status":"passed","title":"should all for custom classes to be applied"},{"ancestorTitles":["Footer","Renders children as expected"],"failureMessages":[],"fullName":"Footer Renders children as expected should render children as expected","location":null,"status":"passed","title":"should render children as expected"}],"endTime":1604862149414,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/Footer/Footer-test.js","startTime":1604862148000,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["FormInput","should render as expected","label"],"failureMessages":[],"fullName":"FormInput should render as expected label renders a label","location":null,"status":"passed","title":"renders a label"},{"ancestorTitles":["FormInput","should render as expected","label"],"failureMessages":[],"fullName":"FormInput should render as expected label has the expected classes","location":null,"status":"passed","title":"has the expected classes"},{"ancestorTitles":["FormInput","should render as expected","label"],"failureMessages":[],"fullName":"FormInput should render as expected label should set label as expected","location":null,"status":"passed","title":"should set label as expected"}],"endTime":1604862149712,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/components/ReduxFormWrapper/ReduxFormWrapper-test.js","startTime":1604862147985,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Selection"],"failureMessages":[],"fullName":"Selection should render","location":null,"status":"passed","title":"should render"},{"ancestorTitles":["Selection"],"failureMessages":[],"fullName":"Selection should be able to add or remove an item from the callback props","location":null,"status":"passed","title":"should be able to add or remove an item from the callback props"},{"ancestorTitles":["Selection"],"failureMessages":[],"fullName":"Selection should give a list of all selected items from the callback props","location":null,"status":"passed","title":"should give a list of all selected items from the callback props"},{"ancestorTitles":["Selection"],"failureMessages":[],"fullName":"Selection should be able to clear the selection from the callback props","location":null,"status":"passed","title":"should be able to clear the selection from the callback props"}],"endTime":1604862149894,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/internal/__tests__/Selection-test.js","startTime":1604862148587,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["InnerClickListener"],"failureMessages":[],"fullName":"InnerClickListener should render","location":null,"status":"passed","title":"should render"},{"ancestorTitles":["InnerClickListener"],"failureMessages":[],"fullName":"InnerClickListener should call `handleRef` when mounting","location":null,"status":"passed","title":"should call `handleRef` when mounting"},{"ancestorTitles":["InnerClickListener"],"failureMessages":[],"fullName":"InnerClickListener should call `onClickOutside` when clicked outside the node that has the ref","location":null,"status":"passed","title":"should call `onClickOutside` when clicked outside the node that has the ref"}],"endTime":1604862150098,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/internal/__tests__/InnerClickListener-test.js","startTime":1604862148880,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["array utilities"],"failureMessages":[],"fullName":"array utilities should return false when one or more arguments are not an array","location":null,"status":"passed","title":"should return false when one or more arguments are not an array"},{"ancestorTitles":["array utilities"],"failureMessages":[],"fullName":"array utilities should return false when the arrays are different","location":null,"status":"passed","title":"should return false when the arrays are different"},{"ancestorTitles":["array utilities"],"failureMessages":[],"fullName":"array utilities should return true when the arrays are identical","location":null,"status":"passed","title":"should return true when the arrays are identical"}],"endTime":1604862150124,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/tools/__tests__/array-test.js","startTime":1604862149228,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["ClickListener"],"failureMessages":[],"fullName":"ClickListener should render","location":null,"status":"passed","title":"should render"},{"ancestorTitles":["ClickListener"],"failureMessages":[],"fullName":"ClickListener should throw a PropType validation error if passed multiple children","location":null,"status":"passed","title":"should throw a PropType validation error if passed multiple children"},{"ancestorTitles":["ClickListener"],"failureMessages":[],"fullName":"ClickListener should invoke onClickOutside if click is outside of the component","location":null,"status":"passed","title":"should invoke onClickOutside if click is outside of the component"},{"ancestorTitles":["ClickListener"],"failureMessages":[],"fullName":"ClickListener should not overwrite any children function refs","location":null,"status":"passed","title":"should not overwrite any children function refs"},{"ancestorTitles":["ClickListener"],"failureMessages":[],"fullName":"ClickListener should not call any string refs on children","location":null,"status":"passed","title":"should not call any string refs on children"}],"endTime":1604862150135,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/internal/__tests__/ClickListener-test.js","startTime":1604862149091,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["events tools","composeEventHandlers"],"failureMessages":[],"fullName":"events tools composeEventHandlers should call all handlers if the event has not been prevented","location":null,"status":"passed","title":"should call all handlers if the event has not been prevented"},{"ancestorTitles":["events tools","composeEventHandlers"],"failureMessages":[],"fullName":"events tools composeEventHandlers should stop if a handler calls `preventDefault`","location":null,"status":"passed","title":"should stop if a handler calls `preventDefault`"}],"endTime":1604862150168,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/tools/__tests__/events-test.js","startTime":1604862149280,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["uniqueId"],"failureMessages":[],"fullName":"uniqueId increments unique id as expected","location":null,"status":"passed","title":"increments unique id as expected"},{"ancestorTitles":["uniqueId"],"failureMessages":[],"fullName":"uniqueId accepts a custom prefix","location":null,"status":"passed","title":"accepts a custom prefix"}],"endTime":1604862150192,"message":"","name":"/Applications/MAMP/htdocs/wfp-ui-next/src/tools/__tests__/uniqueId-test.js","startTime":1604862149228,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Tabs","renders as expected","navigation (
    + }> + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor + incididunt ut labore et dolore magna aliqua. + +``` + +### Controlling state + +#### From above Accordion + +If you want to programmatically open or close accordion items from a component that is above `Accordion` in the React tree, you could use the `ControlledAccordion` and `useAccordionProvider`. + +The value returned from `useAccordionProvider` contains a `toggle` function which can be used to open or close any accordion items. This value should also be given to the `providerValue prop` of the `ControlledAccordion` component. + +The `toggle` function accepts two parameters. The first parameter is the `itemKey` prop of any accordion items to toggle. The second parameter specifies whether to open or close an item using a `boolean` value, or to toggle between the two states if the parameter is omitted. + +```jsx +export default function Example() { + const providerValue = useAccordionProvider({ + allowMultiple: true, + transition: true, + transitionTimeout: 200, + }); + // Destructuring `toggle` and `toggleAll` from `providerValue` + const { toggle, toggleAll } = providerValue; + + return ( +
    +
    + + + + + +
    + + + +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. +

    + +
    + + + Quisque eget luctus mi, vehicula mollis lorem. Proin fringilla vel + erat quis sodales. Nam ex enim, eleifend venenatis lectus vitae, + accumsan auctor mi. + + + + Suspendisse massa risus, pretium id interdum in, dictum sit amet ante. + Fusce vulputate purus sed tempus feugiat. + +
    +
    + ); +} +``` + + +The `itemKey` prop of `AccordionItem` is not required to be globally unique, but it should be unique among its sibling `AccordionItem` components. + +Also, you don't need to specify the `itemKey` prop for an item if you don't want to programmatically toggle it. + + + +### From underneath Accordion + +To programmatically open or close accordion items or access the state from a component that is underneath `Accordion` in the React tree, use the `useAccordionState` hook. + + + If you want to access and control state of the `current` item, there is a + simpler way to achieve it using the [render prop + pattern](#render-prop-pattern). + + +### Item render prop + +Both the `header` and `children` props of `AccordionItem` component support the [render prop](./render-prop) pattern, which can be used to access item state, along with a `toggle` function to open or close the current item. + +```jsx + `Item expanded: ${state.isEnter}`}> + {({ toggle }) => ( + <> +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. +

    + + {/* `toggle` function is also available from the render prop */} + + + )} +
    +``` + +### Disabling items + +```jsx + +``` + +Accordion items can be made `disabled` by adding the disabled prop. Disabled items cannot be toggled by clicking the header and are excluded from keyboard navigation. + +### State changing event + +The `onStateChange` event of `Accordion` can be used to listen to item state updates. The event object has a `key` prop identifying which item's state has changed. + +```jsx + { + if (current.isResolved) + console.log(`${key} is expanded: ${current.isEnter}`); + }}> + {items.map(({ header, content }, i) => ( + + {content} + + ))} + +``` + +### Animation + +Accordion supports expanding and collapsing animation with full state transition cycle, thanks to the [react-transition-state](https://github.com/szhsin/react-transition-state) library. You can follow the steps below to enable animation: + +First, set `transition` and `transitionTimeout` props on the Accordion component. + +```jsx + + {/* Accordion items... */} + +``` + +Then, add the `height` transition css to the item content DOM element of each accordion item, which is the element with class selector `wfp-accordion__item-content`. + +```css +transition: height 0.2s ease-in-out; +``` + +### Accessibility + +### Used in + +- [wfp.org](https://wfp.org) + +### Credits diff --git a/packages/website/_posts/components/AnchorNavigation.mdx b/packages/website/_posts/components/AnchorNavigation.mdx new file mode 100644 index 000000000..26c0a9166 --- /dev/null +++ b/packages/website/_posts/components/AnchorNavigation.mdx @@ -0,0 +1,180 @@ +--- +category: 'Core' +title: 'AnchorNavigation' +excerpt: 'Links are typically used as a means of navigation either within the application, to a place outside, or to a resource.' +coverImage: '../sample-image.jpg' +slug: 'Components/Navigation/AnchorNavigation' +storybook: true +--- + +### Usage + +The MainNavigation is used across all applications, it is the starting point of the application and offers the top level navigation items. + +#### When to use + +- ✓ Internal and external applications +- ✓ The MainNavigation can be used for both internal and external websites. + +#### When not to use + +- ✗ External websites (wfp.org, etc.): The header might not be the right solution for external websites. Please consult the #ux-ui channel on Slack. +- ✗ Do not use WFP's logo inside the MainNavigation. + +```js +import { MainNavigation, MainNavigationItem } from '@un/react'; +``` + +### SubNavigation + +It can be combined with a Dropdown SubNavigation. + +```js +import { + SubNavigation, + SubNavigationHeader, + SubNavigationTitle, + SubNavigationFilter, + SubNavigationContent, + SubNavigationList, + SubNavigationGroup, + SubNavigationItem, +} from '@un/react'; +``` + +The maximum number of items is 6 to 8 items depending on the average word length. + +### Closing the SubNavigation + +#### Using `refs` + +From outside (using react-router, etc.) using `refs` a function can be triggered every time a route changes. + +##### Using react-router (withRouter) + +```js +import React from 'react'; +import PropTypes from 'prop-types'; +import { withRouter } from 'react-router'; + +class Parent extends Component { + static propTypes = { + match: PropTypes.object.isRequired, + location: PropTypes.object.isRequired, + history: PropTypes.object.isRequired, + }; + + constructor(props) { + super(props); + this.child = React.createRef(); + } + + // Depending on your usecase/performance use getDerivedStateFromProps instead + componentDidUpdate(prevProps, prevState) { + if (!prevState.locaction && this.props.locaction) { + this.closeMenu(); + } + } + + openFirstMenu = () => { + this.child.current.onChangeSub('toggle', 0); + }; + + closeMenu = () => { + this.child.current.onChangeSub('close'); + }; + + render() { + return ( +
    + + + +
    + ); + } +} + +const ParentWithRouter = withRouter(Parent); +``` + +##### Trigger with external button + +```js +class Parent extends Component { + constructor(props) { + super(props); + this.child = React.createRef(); + } + + closeMenu = () => { + this.child.current.onChangeSub('close'); + }; + + render() { + return ( +
    + + +
    + ); + } +} +``` + +#### Using function inside `children` + +From the `children` any change can be manually triggered by a function + +```js + + {({ onChangeSub }) => { + return ( + + + onChangeSub('close')}> + Close Demo + +
    + }> + + + + ); + }} + +)); +``` + +### SubNavigation for the User + +An `User` `MainNavigationItem` consists out of the `User` component and a `SubNavigation`. + +```html + + + Welcome Max! + + + + + + {/* Additional content */} + + + }> + + +``` + +### Usage with vanilla Java-Script + +Using the `MainNavigation` in applications not using `react.js` requires a custom implementation. An example can be found at [Codesandbox](https://codesandbox.io/s/mainnavigation-vanillajs-en5r4). + +[Source code of vanilla.js implementation on GitHub](https://github.com/wfp/ui/blob/master/src/components/MainNavigation/main-navigation.js) diff --git a/packages/website/_posts/components/AuthLayout.mdx b/packages/website/_posts/components/AuthLayout.mdx new file mode 100644 index 000000000..094dc0017 --- /dev/null +++ b/packages/website/_posts/components/AuthLayout.mdx @@ -0,0 +1,124 @@ +--- +category: 'Core' +title: 'AuthLayout' +excerpt: 'The `AuthLayout` component is used to display a form in a layout with a background image or content.' +coverImage: '../sample-image.jpg' +slug: 'Components/UI elements/AuthLayout' +--- + +It is used in the login, register pages and transactional content without much content. + +TODO: Write documentation + +```jsx live + + Image can be placed here or just give a background with content like this + + }> +
    Forms will be here
    +
    +``` + +```js + + + + + +
    + Another link + +
    +
    +
    +``` + +```jsx + + + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr,diam nonumy eirmod. + + +

    - Author

    +
    +``` + +```bash +export const WithImage = (args) => ( + + + + + +
    + Another link + +
    +
    +
    +); + +WithImage.args = { +image: 'http://www1.wfp.org/sites/default/files/images/yemen-hero-min.jpg', +}; + +``` diff --git a/packages/website/_posts/components/BannerNavigation.mdx b/packages/website/_posts/components/BannerNavigation.mdx new file mode 100644 index 000000000..292f67ee2 --- /dev/null +++ b/packages/website/_posts/components/BannerNavigation.mdx @@ -0,0 +1,74 @@ +--- +title: 'BannerNavigation' +excerpt: 'Links are typically used as a means of navigation either within the application, to a place outside, or to a resource.' +coverImage: '../sample-image.jpg' +slug: 'Components/Navigation/BannerNavigation' +mainComponent: 'BannerNavigation' +previewScale: 0.3 +components: ['BannerNavigationItem', 'Link'] +storybook: true +sampleCode: > + + + + Communities + + + + + + +--- + +## Types + +There are two types of `BannerNavigation` that can be used: + +### `BannerNavigationWithContent` + +Used exclusively by specific applications which are actually listed on the bar to crosslink between them. + +### `BannerNavigation` + +It allows you to use custom `BannerNavigationItem` components inside. + +## Usage + +The default component is used mainly to crosslink among specific WFP applications for **internal use only**. Thus, **the default component does not have to be used for external facing products**. +The internal applications are: [WFPgo](https://newgo.wfp.org), [Communities](https://communities.wfp.org), [Manuals](https://manuals.wfp.org), [GoDocs](https://go.docs.wfp.org), [WeLearn](https://welearn.wfp.org), [Dashboard](https://dashboard.wfp.org), [OPweb](https://opweb.wfp.org), [Self-Service](https://selfservice.go.wf.org), [UN Booking Hub](https://humanitarianbooking.wfp.org/), [WFP.org](https://wfp.org) + +The **custom version** is used when the application has multiple pages to be visited by the user. This component allows these different pages to be easily accessible. Do not use `BannerNavigation` when you have only one page. + +## Usage with React + +### Default version + +```jsx live forceFullWidth +import { BannerNavigationWithContent } from '@un/react'; +; +``` + +### Custom version + +```jsx live forceFullWidth +import { BannerNavigation } from '@un/react'; + + + + + Communities + + + + + +; +``` + +## Mobile + +The component is hidden when the viewport size is less than `768px`. + +## Related + +[Link](?path=/docs/components-link--link-regular) diff --git a/packages/website/_posts/components/Breadcrumb.mdx b/packages/website/_posts/components/Breadcrumb.mdx new file mode 100644 index 000000000..17c0bba96 --- /dev/null +++ b/packages/website/_posts/components/Breadcrumb.mdx @@ -0,0 +1,61 @@ +--- +category: 'Core' +title: 'Breadcrumb' +excerpt: 'The breadcrumb is a secondary navigation pattern that helps a user understand the hierarchy among levels and navigate back through them.' +coverImage: '../sample-image.jpg' +slug: 'Components/Navigation/Breadcrumb' +storybook: true +mainComponent: 'Breadcrumb' +previewScale: 0.8 +components: ['BreadcrumbItem', 'BreadcrumbHome'] +sampleCode: > + + + + + + + Breadcrumb 2 + Breadcrumb 3 + +--- + +### Usage + +```jsx live + + + + + + + Breadcrumb 2 + Breadcrumb 3 + +``` + +Breadcrumbs show users their current location relative to the information architecture and enable them to quickly move up to a parent level or previous step. + + + +- Breadcrumbs are effective in products and experiences that have a large amount of content organized in a hierarchy of more than two levels. They take up little space but still provide context for the user’s place in the navigation hierarchy. + + + + + +- Breadcrumbs are always treated as secondary and should never entirely replace the primary navigation. They shouldn’t be used for products that have single level navigation because they create unnecessary clutter. + + + +### Formatting + +1. **Page link(1):** Directs users to the parent-level page. + +2. **Separator(2):** Clearly distinguishes between each page. + +By default, breadcrumb trails should not include the current page. If a page doesn’t have a title or the current page is not clear, it can be included in the breadcrumb trail. If the current page is included in a breadcrumb trail, it is always the last text listed and is not an interactive link. + +### Reference + +[Carbon Design System Usage for Breadcrumb](https://next.carbondesignsystem.com/components//breadcrumb) diff --git a/packages/website/_posts/components/Button.mdx b/packages/website/_posts/components/Button.mdx new file mode 100644 index 000000000..d82033d3e --- /dev/null +++ b/packages/website/_posts/components/Button.mdx @@ -0,0 +1,195 @@ +--- +category: 'Core' +title: 'Button' +excerpt: 'Buttons are clickable elements that are used to trigger actions.' +coverImage: '../sample-image.jpg' +slug: 'Components/UI elements/Button' +storybook: true +mainComponent: 'Button' +defaultProps: + children: 'Button Text' +--- + +### Usage + +They communicate calls to action to the user and allow users to interact with pages in a variety of ways. Button labels express what action will occur when the user interacts with it. + + + +- Buttons are used primarily on action items. Some examples include `Add`, `Save`, `Delete`, and `Sign up`. Each page can have one or two primary or accent buttons. Any remaining calls-to-action should be represented as secondary buttons. + + + + + - Do not use buttons as navigational elements. Instead, use links when the + desired action is to take the user to a new page. + + +### Actions 🎬 + +When an action required by the user has more than one option, always use a a negative action button (`secondary`) paired with a positive action button (`primary` or `accent`) in that order. Negative action buttons will be on the left. Positive action buttons should be on the right. When these two types buttons are paired in the correct order, they will automatically space themselves apart. + +```jsx live + +``` + +https://www.figma.com/file/jtKqyyMTOKgUTstiGvPZMl/?node-id=0%3A1 + +```jsx live +<> + {buttonKinds.map((e) => ( +
    + +
    + ))} + +``` + +By changing the `kind` prop you can use different styles of the button. + +| kind | When to use | +| ------------------ | ---------------------------------------------------------------------------------------- | +| `primary` | the principle call to action on the page | +| `secondary` | secondary actions on each page | +| `tertiary` | simple actions on the page | +| `accent` | very important actions and only once or twice on each page | +| `danger` | a negative action (such as Delete) on the page | +| `danger--primary` | a negative principle call to action (such as Delete) on the page | +| `ghost` | in places where a regular button would draw too much attention and look similar to links | +| `inverse--primary` | should be used on dark backgrounds | +| `inverse` | should be used on dark backgrounds | +| `navigation` | should be only used in the main navigation | + +```jsx live +<> + {' '} + + {' '} + {' '} + + +``` + +When words are not enough, icons can be used in buttons to better communicate what the button does. Icons should be +always paired with text whenever possible. + +Use the `icon` and `iconDescription` prop to add an Icon to the Button. Refer to the [Icon](?selectedKind=Icon) documentation for usage. + +To show the Icon on the left side use the `iconReverse` prop. + +Using an Button with only an Icon while not beeing recommended can be achieved by leaving the Button text blank. + +```jsx live +import { Button } from '@un/react'; +import { AddCircle } from '@un/icons-react'; + +<> + {' '} + +; +``` + +```jsx live +<> + + + +``` + +Small buttons may be used when there is not enough space for a +regular sized button. This issue is most found in tables. Small button should have three words +or less. + +```jsx live +import { Button } from '@un/react'; +import { AddCircle } from '@un/icons-react'; + +<> + {' '} + +; +``` + +```jsx live +<> + {' '} + + +``` + +Small buttons may be used when there is not enough space for a +regular sized button. This issue is most found in tables. Small button should have three words +or less. + +```jsx live +import { Button } from '@un/react'; +import { AddCircle } from '@un/icons-react'; + +<> + {' '} + +; +``` + +```jsx live +
    }> + Large button + +``` + +### html + +To use a button with plain html add `wfp--btn` and `wfp--btn--{kind}` as class to the `` or ` +``` + +All buttons can use icons. It's recommended to inline SVG icons when possible. Simply add the appropriate `svg` image to the button HTML with the `wfp--btn__icon` class. You can also include a `title` tag for better accessibility to describe what the button does. + +### Related + +[Link](?path=/docs/components-link--link-regular) + +### Reference + +[Carbon Design System Usage for Buttons](https://next.carbondesignsystem.com/components/button) diff --git a/packages/website/_posts/components/Card.mdx b/packages/website/_posts/components/Card.mdx new file mode 100644 index 000000000..5b3c9972d --- /dev/null +++ b/packages/website/_posts/components/Card.mdx @@ -0,0 +1,16 @@ +--- +category: 'Core' +title: 'Card' +excerpt: 'The accordion component allows the user to show and hide sections of related content on a page.' +coverImage: '../sample-image.jpg' +slug: 'Components/UI elements/Card' +storybook: true +mainComponent: 'Card' +defaultProps: + title: 'Card title' + subTitle: 'Card subtitle' + metadata: 'Card metadata' + url: '#' +--- + +Cards are a convenient means of displaying content composed of different types of objects. It is a multi usage component which creates boxes that are usually teasing some kind of content. diff --git a/packages/website/_posts/components/Checkbox.mdx b/packages/website/_posts/components/Checkbox.mdx new file mode 100644 index 000000000..e57f4abd9 --- /dev/null +++ b/packages/website/_posts/components/Checkbox.mdx @@ -0,0 +1,109 @@ +--- +category: 'Core' +title: 'Checkbox' +excerpt: 'Checkboxes are used for multiple choices, not for mutually exclusive choices.' +coverImage: '../sample-image.jpg' +slug: 'Components/Form/Checkbox' +storybook: true +mainComponent: 'Checkbox' +defaultProps: + labelText: 'Checkbox label' +--- + +## Usage + +Each checkbox works independently from other checkboxes in the list, therefore checking an additional box does not affect any other selections. + +```jsx live + +``` + +#### When to use + +**Forms** + +Can be used in forms on a full page, in modals, or on side panels. + + + +- Filtering and batch action: Used to filter data either on a page, in a menu, or within a component. Checkboxes are found in Data table for batch editing purposes. +- Terms and conditions: Turning the checkbox input on or off can indicate whether you agree to the terms. +- Lists with sub-selections: Used when there is a parent and child relationship. You can use a parent checkbox to make a bulk selection of all list items. Unchecking the parent deselects all of the list items. Alternatively, you can select children individually when the parent is not selected, which is where the indeterminate state comes in to play. + + + +#### When not to use + +If a user can select only one option from a list, radio buttons should be used instead of checkboxes. Checkboxes allow the user to select multiple items in a set whereas radio buttons allow the user to select only one option. + +### Grouping + +#### Horizontal + +```jsx live + + + + + +``` + +#### Vertical + +```jsx live + + + + + +``` + +```jsx live reactHookForm + + + + +``` + +## Behaviour + +#### Checkbox States + +The checkbox control allows for three states: **selected**, **unselected**, and **indeterminate**. The indeterminate state comes into play when the checkbox contains a sublist of selections, some of which are selected, and some unselected. + +## Actions + +#### Click target + +Users should be able to select the checkbox by clicking on the box directly or by clicking on its label. + +#### Default selection + +The default view of a set of checkboxes is having no option selected. + +## Formatting + +1. **Checkbox input(1):** It indicates the checkbox state. By default it is set to unselected. + +2. **Checkbox label(2):** Describes the information you want to select or unselect. + +## Related + +[RadioButton](?path=/docs/components-radiobutton--regular) + +## Reference + +[Carbon Design System Usage for checkboxes](https://next.carbondesignsystem.com/components/checkbox) diff --git a/packages/website/_posts/components/ContentSwitcher.mdx b/packages/website/_posts/components/ContentSwitcher.mdx new file mode 100644 index 000000000..4850bf3d0 --- /dev/null +++ b/packages/website/_posts/components/ContentSwitcher.mdx @@ -0,0 +1,40 @@ +--- +category: 'Core' +title: 'ContentSwitcher' +excerpt: 'Buttons are clickable elements that are used to trigger actions.' +coverImage: '../sample-image.jpg' +slug: 'Components/Form/ContentSwitcher' +storybook: true +--- + +### Text + +Be concise and specific. Titles have a max of two words. + +### Default selection + +Based on usage, there should be a default selection. The default selection is always the first option in a switcher. + +ContentSwitcher is forked from [Carbon Components](https://www.carbondesignsystem.com/components/content-switcher/code) + +### Usage with react + +```js +import { ContentSwitcher, Switch } from '@un/react'; +import { iconAdd } from '@un/icons-react'; +``` + +```js + + } + /> + + + +``` diff --git a/packages/website/_posts/components/DatePicker.mdx b/packages/website/_posts/components/DatePicker.mdx new file mode 100644 index 000000000..d2afc409d --- /dev/null +++ b/packages/website/_posts/components/DatePicker.mdx @@ -0,0 +1,59 @@ +--- +category: 'Core' +title: 'Datepicker' +excerpt: 'Buttons are clickable elements that are used to trigger actions.' +coverImage: '../sample-image.jpg' +slug: 'Components/Form/Datepicker' +storybook: true +--- + +The Datepicker allows the user to select a date or date range from a calendar. + +We recommend [react-datepicker](https://www.npmjs.com/package/react-datepicker) for DatePickers and DateRangePickers. + +### Usage + +Initialize with loading classes to load the styling from WFP UI + +```js +import 'react-dates/initialize'; +import { SingleDatePicker, DateRangePicker } from 'react-dates'; +import { SingleDatePickerInput} from '@un/react'; + + + + +``` + +### Usage with redux-form or final-forms + +```js +import ReduxFormWrapper from '@un/react'; +import { SingleDatePickerInput } from '@un/react'; +import { SingleDatePicker, DateRangePicker } from 'react-dates'; + + (value ? moment(value) : undefined)} + normalize={(data) => data && data.value && data.value.format()} +/>; +``` + +```js + + value + ? { startDate: moment(value.startDate), endDate: moment(value.endDate) } + : undefined + } +/> +``` diff --git a/packages/website/_posts/components/Empty.mdx b/packages/website/_posts/components/Empty.mdx new file mode 100644 index 000000000..c6e992dbe --- /dev/null +++ b/packages/website/_posts/components/Empty.mdx @@ -0,0 +1,62 @@ +--- +category: 'Core' +title: 'Empty' +excerpt: 'Empty states are a way to improve the user experience of your product, from onboarding to encouraging users to interact with your app.' +coverImage: '../sample-image.jpg' +slug: 'Components/UI elements/Empty' +mainComponent: 'Empty' +previewScale: 0.4 +storybook: true +defaultProps: + title: 'No results' + kind: 'large' + children: 'There are no results for your search' +sampleCode: > + Do something} + icon={} + PROPS_HERE> + There are no results for your search + +--- + +They are screens in your UI that are not yet full of information. That is to say, they will eventually have content on them when the user populates them. + +The component should usually cover the whole area of the section and have a slightly darker background than the regular content. It can be also used for large notification messages. + +```jsx live +}> + There are no results for your search + +``` + +### Types of empty states + +- **First use** – Occurs with a new product or service when there is still nothing to show. +- **User cleared** – Occurs when users complete actions such as clearing their inbox or task list, and the result is an empty screen. +- **Errors** – These occur when something goes wrong, or when there are issues such as a mobile phone going offline due to network problems. +- **No results/No data** – Occurs when there is nothing to show. This can happen if someone performs a search and the query is empty or there isn’t data available to show (when filtering for a date-range that has no data for example). + + + +- Can be the case for a empty list table or search results +- Cover the whole area where normally content would be displayed +- Add personality by adding an illustration or icon (for example by using FontAwesome) +- Tell your user to do something: provide a call-to-action button +- Can be also used for large notification messages + + + +### Related + +[Button](?path=/docs/components-button--button-regular) + +### Reference + +[Breakfree Graphics Empty States – The Most Overlooked Aspect of UX](https://www.breakfreegraphics.com/design-blog/empty-states-the-most-overlooked-aspect-of-ux/) + +[justinmind Everything you need to know about empty state design](https://www.justinmind.com/blog/everything-you-need-to-know-about-empty-state-design/) diff --git a/packages/website/_posts/components/Footer.mdx b/packages/website/_posts/components/Footer.mdx new file mode 100644 index 000000000..6ddca14b4 --- /dev/null +++ b/packages/website/_posts/components/Footer.mdx @@ -0,0 +1,111 @@ +--- +category: 'Core' +title: 'Footer' +excerpt: 'Links are typically used as a means of navigation either within the application, to a place outside, or to a resource.' +coverImage: '../sample-image.jpg' +slug: 'Components/Navigation/Footer' +storybook: true +previewScale: 0.4 +mainComponent: 'Footer' +sampleCode: > +
    +
    +
    +

    A label

    +
      +
    • + First Link +
    • +
    • + Second Link +
    • +
    +
    +
    +

    Another label

    +
      +
    • + First Link +
    • +
    • + Second Link +
    • +
    +
    +
    +
    +--- + +## Usage + +Footer is the second most important place where your basic site information and links should live. Users turn often to the footer to look for important information, such as contact details, or links to less prominent sections of the website (privacy policy, terms of use, etc). +It can contain `
    ` , `