From 78c8771b65d81f3406c4239d28633f06430c5a1d Mon Sep 17 00:00:00 2001 From: Andrew Watkins Date: Wed, 28 Feb 2018 10:27:19 -0700 Subject: [PATCH] Add introductory Dropdown component test --- ui/.eslintrc | 3 +- ui/jest.config.js | 1 + ui/package.json | 4 +- ui/src/shared/components/DatabaseDropdown.js | 3 +- ui/src/shared/components/Dropdown.js | 10 +- ui/src/shared/components/FancyScrollbar.js | 3 +- ui/src/shared/components/OnClickOutside.js | 20 +- ui/test/setupTests.js | 4 + ui/test/shared/components/Dropdown.test.js | 57 ++++++ ui/test/spec-helper.js | 12 -- ui/yarn.lock | 185 ++++++++++++------- 11 files changed, 203 insertions(+), 99 deletions(-) create mode 100644 ui/test/setupTests.js create mode 100644 ui/test/shared/components/Dropdown.test.js delete mode 100644 ui/test/spec-helper.js diff --git a/ui/.eslintrc b/ui/.eslintrc index 2db5abb704..687c9683ff 100644 --- a/ui/.eslintrc +++ b/ui/.eslintrc @@ -1,5 +1,5 @@ { - parser: 'babel-eslint', + "parser": "babel-eslint", plugins: [ 'react', 'prettier', @@ -13,6 +13,7 @@ env: { browser: true, mocha: true, + "jest": true, node: true, es6: true, }, diff --git a/ui/jest.config.js b/ui/jest.config.js index 281bf98c78..ba92b8acc4 100644 --- a/ui/jest.config.js +++ b/ui/jest.config.js @@ -5,6 +5,7 @@ module.exports = { testPathIgnorePatterns: ['/build/'], modulePaths: ['', '/node_modules/'], moduleDirectories: ['src'], + setupFiles: ['/test/setupTests.js'], }, { runner: 'jest-runner-eslint', diff --git a/ui/package.json b/ui/package.json index 45a24d4a64..9e127936cd 100644 --- a/ui/package.json +++ b/ui/package.json @@ -56,7 +56,8 @@ "core-js": "^2.1.3", "css-loader": "^0.23.1", "envify": "^3.4.0", - "enzyme": "^2.4.1", + "enzyme": "^3.3.0", + "enzyme-adapter-react-15": "^1.0.5", "eslint": "^3.14.1", "eslint-config-prettier": "^2.9.0", "eslint-loader": "1.6.1", @@ -86,6 +87,7 @@ "postcss-reporter": "^1.3.1", "precss": "^1.4.0", "prettier": "1.5.3", + "react-test-renderer": "^15.6.1", "react-addons-test-utils": "^15.0.2", "resolve-url-loader": "^2.2.1", "sass-loader": "^6.0.6", diff --git a/ui/src/shared/components/DatabaseDropdown.js b/ui/src/shared/components/DatabaseDropdown.js index 0c47942e05..2f88d9a22e 100644 --- a/ui/src/shared/components/DatabaseDropdown.js +++ b/ui/src/shared/components/DatabaseDropdown.js @@ -1,4 +1,5 @@ -import React, {PropTypes, Component} from 'react' +import React, {Component} from 'react' +import PropTypes from 'prop-types' import Dropdown from 'shared/components/Dropdown' import {showDatabases} from 'shared/apis/metaQuery' diff --git a/ui/src/shared/components/Dropdown.js b/ui/src/shared/components/Dropdown.js index 571765633b..ec400d823d 100644 --- a/ui/src/shared/components/Dropdown.js +++ b/ui/src/shared/components/Dropdown.js @@ -1,11 +1,12 @@ -import React, {Component, PropTypes} from 'react' +import React, {Component} from 'react' +import PropTypes from 'prop-types' import {Link} from 'react-router' import classnames from 'classnames' import OnClickOutside from 'shared/components/OnClickOutside' import FancyScrollbar from 'shared/components/FancyScrollbar' import {DROPDOWN_MENU_MAX_HEIGHT} from 'shared/constants/index' -class Dropdown extends Component { +export class Dropdown extends Component { constructor(props) { super(props) this.state = { @@ -36,6 +37,7 @@ class Dropdown extends Component { if (disabled) { return } + this.toggleMenu(e) if (this.props.onClick) { this.props.onClick(e) @@ -142,11 +144,13 @@ class Dropdown extends Component { [menuClass]: menuClass, })} style={{width: menuWidth}} + data-test="dropdown-ul" > {menuLabel ?
  • @@ -163,6 +167,7 @@ class Dropdown extends Component { highlight: i === highlightedItemIndex, active: item.text === selected, })} + data-test="dropdown-item" key={i} > (this.dropdownRef = r)} + data-test="dropdown-button" > {useAutoComplete && isOpen ?
    { const domNode = ReactDOM.findDOMNode(this) if ( (!domNode || !domNode.contains(e.target)) && @@ -23,7 +19,7 @@ export default function enhanceWithClickOutside(WrappedComponent) { ) { this.wrappedComponent.handleClickOutside(e) } - }, + } render() { return ( @@ -32,6 +28,6 @@ export default function enhanceWithClickOutside(WrappedComponent) { ref={ref => (this.wrappedComponent = ref)} /> ) - }, - }) + } + } } diff --git a/ui/test/setupTests.js b/ui/test/setupTests.js new file mode 100644 index 0000000000..98e92fffb8 --- /dev/null +++ b/ui/test/setupTests.js @@ -0,0 +1,4 @@ +import {configure} from 'enzyme' +import Adapter from 'enzyme-adapter-react-15' + +configure({adapter: new Adapter()}) diff --git a/ui/test/shared/components/Dropdown.test.js b/ui/test/shared/components/Dropdown.test.js new file mode 100644 index 0000000000..8b0388a6e3 --- /dev/null +++ b/ui/test/shared/components/Dropdown.test.js @@ -0,0 +1,57 @@ +import React from 'react' +import Dropdown from 'shared/components/dropdown' +import {shallow} from 'enzyme' + +const setup = (override = {}) => { + const props = { + items: [], + selected: '', + onChoose: jest.fn(), + ...override, + } + + const wrapper = shallow() + + return { + wrapper, + props, + } +} + +describe('Components.Shared.Dropdown', () => { + describe('rednering', () => { + describe('initial render', () => { + it('renders the dropdown button', () => { + const {wrapper} = setup() + + const actual = wrapper.dive({'data-test': 'dropdown-button'}) + expect(actual.length).toBe(1) + }) + + it('does not show the list', () => { + const items = [{text: 'foo'}, {text: 'bar'}] + const {wrapper} = setup({items}) + + const dropdown = wrapper.dive({'data-test': 'dropdown-button'}) + const list = dropdown.find({'data-test': 'dropdown-items'}) + expect(list.length).toBe(0) + }) + }) + + describe('user interactions', () => { + it('shows the list when clicked', () => { + const items = [{text: 'foo'}, {text: 'bar'}] + const {wrapper} = setup({items}) + + const dropdown = wrapper.dive({'data-test': 'dropdown-button'}) + dropdown.simulate('click') + + const ul = dropdown.find({'data-test': 'dropdown-ul'}) + expect(ul.length).toBe(1) + + const list = ul.find({'data-test': 'dropdown-item'}) + expect(list.length).toBe(items.length) + }) + }) + }) +}) diff --git a/ui/test/spec-helper.js b/ui/test/spec-helper.js deleted file mode 100644 index 8115f28e85..0000000000 --- a/ui/test/spec-helper.js +++ /dev/null @@ -1,12 +0,0 @@ -window.then = function(cb, done) { - window.setTimeout(function() { - cb() - if (typeof done === 'function') { - done() - } - }, 0) -} - -const chai = require('chai') - -global.expect = chai.expect diff --git a/ui/yarn.lock b/ui/yarn.lock index cbde8d6296..ccfaf45eb5 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -1668,26 +1668,16 @@ check-types@^7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz#468f571a4435c24248f5fd0cb0e8d87c3c341e7d" -cheerio@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" dependencies: css-select "~1.2.0" dom-serializer "~0.1.0" entities "~1.1.1" htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" + lodash "^4.15.0" + parse5 "^3.0.1" chokidar@^1.4.3, chokidar@^1.7.0: version "1.7.0" @@ -1876,6 +1866,10 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -2503,6 +2497,10 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2738,20 +2736,44 @@ envify@^3.4.0: jstransform "^11.0.3" through "~2.3.4" -enzyme@^2.4.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.9.1.tgz#07d5ce691241240fb817bf2c4b18d6e530240df6" +enzyme-adapter-react-15@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-15/-/enzyme-adapter-react-15-1.0.5.tgz#99f9a03ff2c2303e517342935798a6bdfbb75fac" dependencies: - cheerio "^0.22.0" - function.prototype.name "^1.0.0" - is-subset "^0.1.1" + enzyme-adapter-utils "^1.1.0" lodash "^4.17.4" - object-is "^1.0.1" object.assign "^4.0.4" - object.entries "^1.0.4" object.values "^1.0.4" prop-types "^15.5.10" - uuid "^3.0.1" + +enzyme-adapter-utils@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.3.0.tgz#d6c85756826c257a8544d362cc7a67e97ea698c7" + dependencies: + lodash "^4.17.4" + object.assign "^4.0.4" + prop-types "^15.6.0" + +enzyme@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.3.0.tgz#0971abd167f2d4bf3f5bd508229e1c4b6dc50479" + dependencies: + cheerio "^1.0.0-rc.2" + function.prototype.name "^1.0.3" + has "^1.0.1" + is-boolean-object "^1.0.0" + is-callable "^1.1.3" + is-number-object "^1.0.3" + is-string "^1.0.4" + is-subset "^0.1.1" + lodash "^4.17.4" + object-inspect "^1.5.0" + object-is "^1.0.1" + object.assign "^4.1.0" + object.entries "^1.0.4" + object.values "^1.0.4" + raf "^3.4.0" + rst-selector-parser "^2.2.3" errno@^0.1.3, errno@^0.1.4: version "0.1.7" @@ -3594,7 +3616,7 @@ function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" -function.prototype.name@^1.0.0: +function.prototype.name@^1.0.3: version "1.1.0" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" dependencies: @@ -4285,6 +4307,10 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-boolean-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" + is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -4421,6 +4447,10 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: jsonpointer "^4.0.0" xtend "^4.0.0" +is-number-object@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" + is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -4499,6 +4529,10 @@ is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-string@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" + is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" @@ -5250,14 +5284,10 @@ lodash.assign@^4.0.0, lodash.assign@^4.0.1, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" -lodash.assignin@^4.0.9, lodash.assignin@^4.1.0: +lodash.assignin@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - lodash.camelcase@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz#932c8b87f8a4377897c67197533282f97aeac298" @@ -5291,7 +5321,7 @@ lodash.defaults@^3.1.2: lodash.assign "^3.0.0" lodash.restparam "^3.0.0" -lodash.defaults@^4.0.0, lodash.defaults@^4.0.1: +lodash.defaults@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -5299,10 +5329,6 @@ lodash.endswith@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.endswith/-/lodash.endswith-4.2.1.tgz#fed59ac1738ed3e236edd7064ec456448b37bc09" -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - lodash.find@^4.5.1: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" @@ -5314,13 +5340,9 @@ lodash.flatten@^3.0.2: lodash._baseflatten "^3.0.0" lodash._isiterateecall "^3.0.0" -lodash.flatten@^4.2.0: +lodash.flattendeep@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" lodash.isarguments@^3.0.0: version "3.1.0" @@ -5354,46 +5376,22 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" -lodash.merge@^4.4.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" - lodash.mergewith@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - lodash.pickby@^4.0.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -5420,7 +5418,7 @@ lodash.words@^3.0.0: dependencies: lodash._root "^3.0.0" -lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1, lodash@~4.17.4: +lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1, lodash@~4.17.4: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" @@ -5778,6 +5776,15 @@ ncname@1.0.x: dependencies: xml-char-classes "^1.0.0" +nearley@^2.7.10: + version "2.11.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.11.1.tgz#a9c0a5fa942998db5ad18b14fbc8e9fc49672f16" + dependencies: + nomnom "~1.6.2" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + semver "^5.4.1" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -5898,6 +5905,13 @@ node-sass@^4.5.3: stdout-stream "^1.4.0" "true-case-path" "^1.0.2" +nomnom@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" + dependencies: + colors "0.5.x" + underscore "~1.4.4" + "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -6004,6 +6018,10 @@ object-hash@^1.1.4: version "1.2.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.2.0.tgz#e96af0e96981996a1d47f88ead8f74f1ebc4422b" +object-inspect@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.5.0.tgz#9d876c11e40f485c79215670281b767488f9bfe3" + object-is@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" @@ -6022,7 +6040,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.0.4: +object.assign@^4.0.4, object.assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" dependencies: @@ -6255,7 +6273,7 @@ parse5@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" -parse5@^3.0.3: +parse5@^3.0.1, parse5@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" dependencies: @@ -7011,12 +7029,23 @@ querystringify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" -raf@^3.1.0: +raf@^3.1.0, raf@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" dependencies: performance-now "^2.1.0" +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -7169,6 +7198,13 @@ react-router@^3.0.2: prop-types "^15.5.6" warning "^3.0.0" +react-test-renderer@^15.6.1: + version "15.6.2" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.6.2.tgz#d0333434fc2c438092696ca770da5ed48037efa8" + dependencies: + fbjs "^0.8.9" + object-assign "^4.1.0" + react-tooltip@^3.2.1: version "3.4.0" resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-3.4.0.tgz#037f38f797c3e6b1b58d2534ccc8c2c76af4f52d" @@ -7631,6 +7667,13 @@ rome@^2.1.22: crossvent "1.5.0" moment "^2.8.2" +rst-selector-parser@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" + dependencies: + lodash.flattendeep "^4.4.0" + nearley "^2.7.10" + run-async@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" @@ -8725,6 +8768,10 @@ underscore@>=1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" +underscore@~1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + unicons@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/unicons/-/unicons-0.0.3.tgz#6e6a7a1a6eaebb01ca3d8b12ad9687279eaba524"