diff --git a/package.json b/package.json index 9b6e9087..bd7ec792 100644 --- a/package.json +++ b/package.json @@ -26,14 +26,14 @@ "animated": "^0.2.0", "array-find-index": "^1.0.2", "babel-runtime": "^6.23.0", - "create-react-class": "^15.5.1", + "create-react-class": "^15.5.2", "debounce": "^1.0.0", "deep-assign": "^2.0.0", "fbjs": "^0.8.8", "hyphenate-style-name": "^1.0.2", "inline-style-prefixer": "^3.0.2", "normalize-css-color": "^1.0.2", - "prop-types": "^15.5.6", + "prop-types": "^15.5.8", "react-dom": "~15.4.1", "react-textarea-autosize": "^4.0.4", "react-timer-mixin": "^0.13.3" @@ -47,7 +47,8 @@ "babel-plugin-transform-react-remove-prop-types": "^0.4.0", "babel-preset-react-native": "^1.9.1", "del-cli": "^0.2.1", - "enzyme": "^2.4.1", + "enzyme": "^2.8.2", + "enzyme-to-json": "^1.5.1", "eslint": "^3.19.0", "eslint-config-prettier": "^1.6.0", "eslint-plugin-promise": "^3.5.0", @@ -58,7 +59,7 @@ "prettier": "^1.0.2", "react": "~15.4.1", "react-addons-test-utils": "~15.4.1", - "react-test-renderer": "~15.4.1", + "react-test-renderer": "^15.5.4", "url-loader": "^0.5.8", "webpack": "^2.3.3", "webpack-bundle-analyzer": "^2.4.0" @@ -83,6 +84,9 @@ ], "jest": { "testEnvironment": "jsdom", - "timers": "fake" + "timers": "fake", + "snapshotSerializers": [ + "/node_modules/enzyme-to-json/serializer" + ] } } diff --git a/src/components/ActivityIndicator/__tests__/__snapshots__/index-test.js.snap b/src/components/ActivityIndicator/__tests__/__snapshots__/index-test.js.snap index f10f673c..59452565 100644 --- a/src/components/ActivityIndicator/__tests__/__snapshots__/index-test.js.snap +++ b/src/components/ActivityIndicator/__tests__/__snapshots__/index-test.js.snap @@ -4,15 +4,15 @@ exports[`components/ActivityIndicator default render 1`] = `
@@ -51,15 +40,15 @@ exports[`components/ActivityIndicator other render 1`] = `
diff --git a/src/components/ActivityIndicator/__tests__/index-test.js b/src/components/ActivityIndicator/__tests__/index-test.js index d50b41b1..d6e7bf96 100644 --- a/src/components/ActivityIndicator/__tests__/index-test.js +++ b/src/components/ActivityIndicator/__tests__/index-test.js @@ -2,18 +2,18 @@ import ActivityIndicator from '..'; import React from 'react'; -import renderer from 'react-test-renderer'; +import { render } from 'enzyme'; describe('components/ActivityIndicator', () => { test('default render', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('other render', () => { - const component = renderer.create( + const component = render( ); - expect(component.toJSON()).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); }); diff --git a/src/components/Image/__tests__/__snapshots__/index-test.js.snap b/src/components/Image/__tests__/__snapshots__/index-test.js.snap index 7e4f6853..9cdc320a 100644 --- a/src/components/Image/__tests__/__snapshots__/index-test.js.snap +++ b/src/components/Image/__tests__/__snapshots__/index-test.js.snap @@ -2,48 +2,41 @@ exports[`components/Image passes other props through to underlying View 1`] = `
`; exports[`components/Image prop "accessibilityLabel" 1`] = `
`; exports[`components/Image prop "accessible" 1`] = `
`; exports[`components/Image prop "children" 1`] = `
`; exports[`components/Image prop "defaultSource" does not override "height" and "width" styles 1`] = `
@@ -51,17 +44,11 @@ exports[`components/Image prop "defaultSource" does not override "height" and "w exports[`components/Image prop "defaultSource" sets "height" and "width" styles if missing 1`] = `
@@ -69,15 +56,11 @@ exports[`components/Image prop "defaultSource" sets "height" and "width" styles exports[`components/Image prop "defaultSource" sets background image when value is a string 1`] = `
@@ -85,15 +68,11 @@ exports[`components/Image prop "defaultSource" sets background image when value exports[`components/Image prop "defaultSource" sets background image when value is an object 1`] = `
@@ -101,49 +80,49 @@ exports[`components/Image prop "defaultSource" sets background image when value exports[`components/Image prop "resizeMode" value "contain" 1`] = `
`; exports[`components/Image prop "resizeMode" value "cover" 1`] = `
`; exports[`components/Image prop "resizeMode" value "none" 1`] = `
`; exports[`components/Image prop "resizeMode" value "stretch" 1`] = `
`; exports[`components/Image prop "resizeMode" value "undefined" 1`] = `
`; exports[`components/Image prop "style" correctly supports "resizeMode" property 1`] = `
`; exports[`components/Image prop "testID" 1`] = `
`; exports[`components/Image sets correct accessibility role" 1`] = `
`; diff --git a/src/components/Image/__tests__/index-test.js b/src/components/Image/__tests__/index-test.js index 65cec6e4..5e5210af 100644 --- a/src/components/Image/__tests__/index-test.js +++ b/src/components/Image/__tests__/index-test.js @@ -2,9 +2,7 @@ import Image from '../'; import React from 'react'; -import renderer from 'react-test-renderer'; - -jest.mock('react-dom'); +import { render } from 'enzyme'; const originalImage = window.Image; @@ -18,38 +16,38 @@ describe('components/Image', () => { }); test('sets correct accessibility role"', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('prop "accessibilityLabel"', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('prop "accessible"', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('prop "children"', () => { const children =
; - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); describe('prop "defaultSource"', () => { test('sets background image when value is an object', () => { const defaultSource = { uri: 'https://google.com/favicon.ico' }; - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('sets background image when value is a string', () => { // emulate require-ed asset const defaultSource = 'https://google.com/favicon.ico'; - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('sets "height" and "width" styles if missing', () => { @@ -58,8 +56,8 @@ describe('components/Image', () => { height: 10, width: 20 }; - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('does not override "height" and "width" styles', () => { @@ -68,10 +66,10 @@ describe('components/Image', () => { height: 10, width: 20 }; - const component = renderer.create( + const component = render( ); - expect(component.toJSON()).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); }); @@ -84,27 +82,27 @@ describe('components/Image', () => { undefined ].forEach(resizeMode => { test(`value "${resizeMode}"`, () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); }); }); describe('prop "style"', () => { test('correctly supports "resizeMode" property', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); }); test('prop "testID"', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('passes other props through to underlying View', () => { const fn = () => {}; - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); }); diff --git a/src/components/Switch/__tests__/__snapshots__/index-test.js.snap b/src/components/Switch/__tests__/__snapshots__/index-test.js.snap index 27ca6369..0a23f44f 100644 --- a/src/components/Switch/__tests__/__snapshots__/index-test.js.snap +++ b/src/components/Switch/__tests__/__snapshots__/index-test.js.snap @@ -2,43 +2,19 @@ exports[`components/Switch disabled when "false" a default checkbox is rendered 1`] = `
@@ -46,41 +22,20 @@ exports[`components/Switch disabled when "false" a default checkbox is rendered exports[`components/Switch disabled when "true" a disabled checkbox is rendered 1`] = `
@@ -88,43 +43,19 @@ exports[`components/Switch disabled when "true" a disabled checkbox is rendered exports[`components/Switch value when "false" an unchecked checkbox is rendered 1`] = `
@@ -132,44 +63,20 @@ exports[`components/Switch value when "false" an unchecked checkbox is rendered exports[`components/Switch value when "true" a checked checkbox is rendered 1`] = `
diff --git a/src/components/Switch/__tests__/index-test.js b/src/components/Switch/__tests__/index-test.js index d69d522d..59bbed05 100644 --- a/src/components/Switch/__tests__/index-test.js +++ b/src/components/Switch/__tests__/index-test.js @@ -1,22 +1,19 @@ /* eslint-env jasmine, jest */ import React from 'react'; -import renderer from 'react-test-renderer'; -// import { shallow } from 'enzyme'; +import { render } from 'enzyme'; import Switch from '..'; -jest.mock('react-dom'); - describe('components/Switch', () => { describe('disabled', () => { test('when "false" a default checkbox is rendered', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('when "true" a disabled checkbox is rendered', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); }); @@ -38,13 +35,13 @@ describe('components/Switch', () => { describe('value', () => { test('when "false" an unchecked checkbox is rendered', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('when "true" a checked checkbox is rendered', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); }); }); diff --git a/src/components/Text/__tests__/__snapshots__/index-test.js.snap b/src/components/Text/__tests__/__snapshots__/index-test.js.snap index 56513255..743d2120 100644 --- a/src/components/Text/__tests__/__snapshots__/index-test.js.snap +++ b/src/components/Text/__tests__/__snapshots__/index-test.js.snap @@ -2,7 +2,7 @@ exports[`components/Text prop "children" 1`] = ` children @@ -11,24 +11,22 @@ exports[`components/Text prop "children" 1`] = ` exports[`components/Text prop "onPress" 1`] = ` `; exports[`components/Text prop "selectable" 1`] = ` `; exports[`components/Text prop "selectable" 2`] = ` `; diff --git a/src/components/Text/__tests__/index-test.js b/src/components/Text/__tests__/index-test.js index 2018b621..d45936d2 100644 --- a/src/components/Text/__tests__/index-test.js +++ b/src/components/Text/__tests__/index-test.js @@ -1,29 +1,27 @@ /* eslint-env jasmine, jest */ import React from 'react'; -import renderer from 'react-test-renderer'; +import { render } from 'enzyme'; import Text from '../'; -jest.mock('react-dom'); - describe('components/Text', () => { test('prop "children"', () => { - const component = renderer.create(children); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(children); + expect(component).toMatchSnapshot(); }); test('prop "numberOfLines"'); test('prop "onPress"', () => { const onPress = e => {}; - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('prop "selectable"', () => { - let component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); - component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + let component = render(); + expect(component).toMatchSnapshot(); + component = render(); + expect(component).toMatchSnapshot(); }); }); diff --git a/src/components/View/__tests__/__snapshots__/index-test.js.snap b/src/components/View/__tests__/__snapshots__/index-test.js.snap index 9dd2ab44..756fe5a6 100644 --- a/src/components/View/__tests__/__snapshots__/index-test.js.snap +++ b/src/components/View/__tests__/__snapshots__/index-test.js.snap @@ -2,10 +2,10 @@ exports[`components/View prop "children" 1`] = `
@@ -13,57 +13,46 @@ exports[`components/View prop "children" 1`] = ` exports[`components/View prop "hitSlop" handles partial offsets 1`] = `
`; exports[`components/View prop "hitSlop" renders a span with negative position offsets 1`] = `
`; exports[`components/View prop "pointerEvents" 1`] = `
`; exports[`components/View rendered element is a "div" by default 1`] = `
`; exports[`components/View rendered element is a "span" when inside 1`] = ` `; diff --git a/src/components/View/__tests__/index-test.js b/src/components/View/__tests__/index-test.js index 3f5e4d45..418ec219 100644 --- a/src/components/View/__tests__/index-test.js +++ b/src/components/View/__tests__/index-test.js @@ -1,46 +1,42 @@ /* eslint-env jasmine, jest */ import React from 'react'; -import renderer from 'react-test-renderer'; +import { render } from 'enzyme'; import View from '../'; -jest.mock('react-dom'); - describe('components/View', () => { describe('rendered element', () => { test('is a "div" by default', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); test('is a "span" when inside ', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); }); test('prop "children"', () => { const children = ; - const component = renderer.create({children}); - expect(component.toJSON()).toMatchSnapshot(); + const component = render({children}); + expect(component).toMatchSnapshot(); }); describe('prop "hitSlop"', () => { it('renders a span with negative position offsets', () => { - const component = renderer.create( - - ); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); it('handles partial offsets', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); }); test('prop "pointerEvents"', () => { - const component = renderer.create(); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(); + expect(component).toMatchSnapshot(); }); }); diff --git a/src/modules/createDOMElement/__tests__/__snapshots__/index-test.js.snap b/src/modules/createDOMElement/__tests__/__snapshots__/index-test.js.snap index 9f7ec410..58b50083 100644 --- a/src/modules/createDOMElement/__tests__/__snapshots__/index-test.js.snap +++ b/src/modules/createDOMElement/__tests__/__snapshots__/index-test.js.snap @@ -78,7 +78,7 @@ exports[`modules/createDOMElement prop "accessible" 2`] = ``; exports[`modules/createDOMElement prop "accessible" 3`] = ` `; diff --git a/src/modules/createDOMElement/__tests__/index-test.js b/src/modules/createDOMElement/__tests__/index-test.js index 022180d1..4f4c6eeb 100644 --- a/src/modules/createDOMElement/__tests__/index-test.js +++ b/src/modules/createDOMElement/__tests__/index-test.js @@ -1,103 +1,99 @@ /* eslint-env jasmine, jest */ import createDOMElement from '..'; -import renderer from 'react-test-renderer'; +import { render } from 'enzyme'; describe('modules/createDOMElement', () => { test('renders correct DOM element', () => { - let component = renderer.create(createDOMElement('span')); - expect(component.toJSON()).toMatchSnapshot(); - component = renderer.create(createDOMElement('main')); - expect(component.toJSON()).toMatchSnapshot(); + let component = render(createDOMElement('span')); + expect(component).toMatchSnapshot(); + component = render(createDOMElement('main')); + expect(component).toMatchSnapshot(); }); test('prop "accessibilityLabel"', () => { const accessibilityLabel = 'accessibilityLabel'; - const component = renderer.create(createDOMElement('span', { accessibilityLabel })); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(createDOMElement('span', { accessibilityLabel })); + expect(component).toMatchSnapshot(); }); test('prop "accessibilityLiveRegion"', () => { const accessibilityLiveRegion = 'none'; - const component = renderer.create(createDOMElement('span', { accessibilityLiveRegion })); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(createDOMElement('span', { accessibilityLiveRegion })); + expect(component).toMatchSnapshot(); }); describe('prop "accessibilityRole"', () => { test('roles', () => { - const component = renderer.create(createDOMElement('span', { accessibilityRole: 'banner' })); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(createDOMElement('span', { accessibilityRole: 'banner' })); + expect(component).toMatchSnapshot(); }); test('button', () => { - const component = renderer.create(createDOMElement('span', { accessibilityRole: 'button' })); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(createDOMElement('span', { accessibilityRole: 'button' })); + expect(component).toMatchSnapshot(); }); test('headings', () => { - let component = renderer.create(createDOMElement('div', { accessibilityRole: 'heading' })); - expect(component.toJSON()).toMatchSnapshot(); + let component = render(createDOMElement('div', { accessibilityRole: 'heading' })); + expect(component).toMatchSnapshot(); - component = renderer.create( + component = render( createDOMElement('div', { accessibilityRole: 'heading', 'aria-level': '3' }) ); - expect(component.toJSON()).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('link and target="_blank"', () => { - const component = renderer.create( + const component = render( createDOMElement('span', { accessibilityRole: 'link', target: '_blank' }) ); - expect(component.toJSON()).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); describe('compatibility with', () => { test('accessibilityComponentType', () => { - let component = renderer.create( - createDOMElement('span', { accessibilityComponentType: 'button' }) - ); - expect(component.toJSON()).toMatchSnapshot(); + let component = render(createDOMElement('span', { accessibilityComponentType: 'button' })); + expect(component).toMatchSnapshot(); - component = renderer.create( + component = render( createDOMElement('span', { accessibilityComponentType: 'button', accessibilityRole: 'link' }) ); - expect(component.toJSON()).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('accessibilityTraits', () => { - let component = renderer.create( - createDOMElement('span', { accessibilityTraits: 'button' }) - ); - expect(component.toJSON()).toMatchSnapshot(); + let component = render(createDOMElement('span', { accessibilityTraits: 'button' })); + expect(component).toMatchSnapshot(); - component = renderer.create( + component = render( createDOMElement('span', { accessibilityTraits: 'button', accessibilityRole: 'link' }) ); - expect(component.toJSON()).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); }); }); test('prop "accessible"', () => { // accessible (implicit) - let component = renderer.create(createDOMElement('span', {})); - expect(component.toJSON()).toMatchSnapshot(); + let component = render(createDOMElement('span', {})); + expect(component).toMatchSnapshot(); // accessible (explicit) - component = renderer.create(createDOMElement('span', { accessible: true })); - expect(component.toJSON()).toMatchSnapshot(); + component = render(createDOMElement('span', { accessible: true })); + expect(component).toMatchSnapshot(); // not accessible - component = renderer.create(createDOMElement('span', { accessible: false })); - expect(component.toJSON()).toMatchSnapshot(); + component = render(createDOMElement('span', { accessible: false })); + expect(component).toMatchSnapshot(); }); test('prop "testID"', () => { - const component = renderer.create(createDOMElement('span', { testID: 'Example.testID' })); - expect(component.toJSON()).toMatchSnapshot(); + const component = render(createDOMElement('span', { testID: 'Example.testID' })); + expect(component).toMatchSnapshot(); }); }); diff --git a/yarn.lock b/yarn.lock index 7817140b..0f6c64d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1757,11 +1757,12 @@ create-hmac@^1.1.0, create-hmac@^1.1.2: create-hash "^1.1.0" inherits "^2.0.1" -create-react-class@^15.5.1: - version "15.5.1" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.5.1.tgz#25a138a42d1c9df6d5c70fea29ec6ccf5ae165b8" +create-react-class@^15.5.2: + version "15.5.2" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.5.2.tgz#6a8758348df660b88326a0e764d569f274aad681" dependencies: fbjs "^0.8.9" + object-assign "^4.1.1" cryptiles@2.x.x: version "2.0.5" @@ -2185,19 +2186,31 @@ entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -enzyme@^2.4.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.6.0.tgz#148d742b25e2565f7e80870a0c92aea9be1b90ea" +enzyme-to-json@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-1.5.1.tgz#e34f4d126bb3f4696ce3800b51f9ed83df708799" + dependencies: + lodash.filter "^4.6.0" + lodash.isnil "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.omitby "^4.5.0" + lodash.range "^3.2.0" + object-values "^1.0.0" + object.entries "^1.0.3" + +enzyme@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.8.2.tgz#6c8bcb05012abc4aa4bc3213fb23780b9b5b1714" dependencies: cheerio "^0.22.0" function.prototype.name "^1.0.0" - in-publish "^2.0.0" is-subset "^0.1.1" - lodash "^4.16.4" + lodash "^4.17.2" object-is "^1.0.1" object.assign "^4.0.4" object.entries "^1.0.3" object.values "^1.0.3" + prop-types "^15.5.4" uuid "^2.0.3" "errno@>=0.1.1 <0.2.0-0", errno@^0.1.3: @@ -2212,16 +2225,7 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.3.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.0" - is-callable "^1.1.3" - is-regex "^1.0.3" - -es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: +es-abstract@^1.3.2, es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" dependencies: @@ -3116,10 +3120,6 @@ imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" -in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" @@ -3971,7 +3971,7 @@ lodash.defaults@^4.0.1: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" -lodash.filter@^4.4.0: +lodash.filter@^4.4.0, lodash.filter@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" @@ -3995,6 +3995,14 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.isnil@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz#49e28cd559013458c814c5479d3c663a21bfaa6c" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + lodash.keys@^3.0.0, lodash.keys@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -4011,10 +4019,18 @@ lodash.merge@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" +lodash.omitby@^4.5.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.omitby/-/lodash.omitby-4.6.0.tgz#5c15ff4754ad555016b53c041311e8f079204791" + lodash.pick@^4.2.0, lodash.pick@^4.2.1, lodash.pick@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" +lodash.range@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.range/-/lodash.range-3.2.0.tgz#f461e588f66683f7eadeade513e38a69a565a15d" + lodash.reduce@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" @@ -4041,7 +4057,7 @@ lodash@4.x.x, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, loda version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" -lodash@^4.0.0, lodash@^4.16.4, lodash@^4.2.0: +lodash@^4.0.0, lodash@^4.17.2, lodash@^4.2.0: version "4.17.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" @@ -4446,9 +4462,9 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" object-is@^1.0.1: version "1.0.1" @@ -4458,6 +4474,10 @@ object-keys@^1.0.10, object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object-values/-/object-values-1.0.0.tgz#72af839630119e5b98c3b02bb8c27e3237158105" + object.assign@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" @@ -5039,9 +5059,9 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.5.6: - version "15.5.6" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.6.tgz#797a915b1714b645ebb7c5d6cc690346205bd2aa" +prop-types@^15.5.4, prop-types@^15.5.8: + version "15.5.8" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" dependencies: fbjs "^0.8.9" @@ -5227,9 +5247,12 @@ react-stubber@^1.0.0: dependencies: babel-runtime "^6.5.0" -react-test-renderer@~15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.4.1.tgz#e38cd7057868d4a655d3764689735b4b97260706" +react-test-renderer@^15.5.4: + version "15.5.4" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.5.4.tgz#d4ebb23f613d685ea8f5390109c2d20fbf7c83bc" + dependencies: + fbjs "^0.8.9" + object-assign "^4.1.0" react-textarea-autosize@^4.0.4: version "4.0.5"