diff --git a/package-lock.json b/package-lock.json index a86ed000f301b..b9bda6a34c73e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2895,7 +2895,7 @@ "@wordpress/jest-console": "file:packages/jest-console", "babel-jest": "^24.1.0", "enzyme": "^3.9.0", - "enzyme-adapter-react-16": "^1.9.1", + "enzyme-adapter-react-16": "^1.10.0", "enzyme-to-json": "^3.3.5" } }, diff --git a/packages/components/src/button/__mocks__/index.js b/packages/components/src/button/__mocks__/index.js deleted file mode 100644 index d43b7380b09ec..0000000000000 --- a/packages/components/src/button/__mocks__/index.js +++ /dev/null @@ -1,17 +0,0 @@ -// [TEMPORARY]: Button uses React.forwardRef, added in react@16.3.0 but not yet -// supported by Enzyme as of enzyme-adapter-react-16@1.1.1 . This mock unwraps -// the ref forwarding, so any tests relying on this behavior will fail. -// -// See: https://github.com/airbnb/enzyme/issues/1604 -// See: https://github.com/airbnb/enzyme/pull/1592/files - -const { Component } = require( 'react' ); -const { Button: RawButton } = require.requireActual( '../index' ); - -class Button extends Component { - render() { - return RawButton( this.props ); - } -} - -export default Button; diff --git a/packages/components/src/color-palette/test/__snapshots__/index.js.snap b/packages/components/src/color-palette/test/__snapshots__/index.js.snap index 3a49ace1959ad..e0ad2ef51ff3d 100644 --- a/packages/components/src/color-palette/test/__snapshots__/index.js.snap +++ b/packages/components/src/color-palette/test/__snapshots__/index.js.snap @@ -180,7 +180,7 @@ exports[`ColorPalette should allow disabling custom color picker 1`] = `
- +
`; @@ -272,7 +272,7 @@ exports[`ColorPalette should render a dynamic toolbar of colors 1`] = ` renderContent={[Function]} renderToggle={[Function]} /> - + `; diff --git a/packages/components/src/color-palette/test/index.js b/packages/components/src/color-palette/test/index.js index 8983537ed7dc1..a515b9b769628 100644 --- a/packages/components/src/color-palette/test/index.js +++ b/packages/components/src/color-palette/test/index.js @@ -8,8 +8,6 @@ import { shallow } from 'enzyme'; */ import ColorPalette from '../'; -jest.mock( '../../button' ); - describe( 'ColorPalette', () => { const colors = [ { name: 'red', color: '#f00' }, { name: 'white', color: '#fff' }, { name: 'blue', color: '#00f' } ]; const currentColor = '#f00'; diff --git a/packages/components/src/icon-button/test/index.js b/packages/components/src/icon-button/test/index.js index d5b67eec7930f..133224941c1b5 100644 --- a/packages/components/src/icon-button/test/index.js +++ b/packages/components/src/icon-button/test/index.js @@ -8,8 +8,6 @@ import { shallow } from 'enzyme'; */ import IconButton from '../'; -jest.mock( '../../button' ); - describe( 'IconButton', () => { describe( 'basic rendering', () => { it( 'should render an top level element with only a class property', () => { @@ -30,7 +28,7 @@ describe( 'IconButton', () => { it( 'should add an aria-label when the label property is used', () => { const iconButton = shallow( WordPress ); - expect( iconButton.name() ).toBe( 'Button' ); + expect( iconButton.name() ).toBe( 'ForwardRef(Button)' ); expect( iconButton.prop( 'aria-label' ) ).toBe( 'WordPress' ); } ); @@ -38,7 +36,7 @@ describe( 'IconButton', () => { const iconButton = shallow( ); expect( iconButton.name() ).toBe( 'Tooltip' ); expect( iconButton.prop( 'text' ) ).toBe( 'WordPress' ); - expect( iconButton.find( 'Button' ).prop( 'aria-label' ) ).toBe( 'WordPress' ); + expect( iconButton.find( 'ForwardRef(Button)' ).prop( 'aria-label' ) ).toBe( 'WordPress' ); } ); it( 'should support explicit aria-label override', () => { @@ -60,12 +58,12 @@ describe( 'IconButton', () => { const iconButton = shallow( ); expect( iconButton.name() ).toBe( 'Tooltip' ); expect( iconButton.prop( 'text' ) ).toBe( 'Custom' ); - expect( iconButton.find( 'Button' ).prop( 'aria-label' ) ).toBe( 'WordPress' ); + expect( iconButton.find( 'ForwardRef(Button)' ).prop( 'aria-label' ) ).toBe( 'WordPress' ); } ); it( 'should allow tooltip disable', () => { const iconButton = shallow( ); - expect( iconButton.name() ).toBe( 'Button' ); + expect( iconButton.name() ).toBe( 'ForwardRef(Button)' ); expect( iconButton.prop( 'aria-label' ) ).toBe( 'WordPress' ); } ); diff --git a/packages/components/src/menu-item/test/__snapshots__/index.js.snap b/packages/components/src/menu-item/test/__snapshots__/index.js.snap index 9ec9378f631a1..caa467a67a66b 100644 --- a/packages/components/src/menu-item/test/__snapshots__/index.js.snap +++ b/packages/components/src/menu-item/test/__snapshots__/index.js.snap @@ -17,7 +17,7 @@ exports[`MenuItem should match snapshot when all props provided 1`] = ` `; exports[`MenuItem should match snapshot when info is provided 1`] = ` - + `; exports[`MenuItem should match snapshot when isSelected and role are optionally provided 1`] = ` @@ -55,7 +55,7 @@ exports[`MenuItem should match snapshot when isSelected and role are optionally `; exports[`MenuItem should match snapshot when only label provided 1`] = ` - + `; diff --git a/packages/components/src/menu-item/test/index.js b/packages/components/src/menu-item/test/index.js index c5508e55629ac..f521add7452c8 100644 --- a/packages/components/src/menu-item/test/index.js +++ b/packages/components/src/menu-item/test/index.js @@ -9,8 +9,6 @@ import { noop } from 'lodash'; */ import { MenuItem } from '../'; -jest.mock( '../../button' ); - describe( 'MenuItem', () => { it( 'should match snapshot when only label provided', () => { const wrapper = shallow( diff --git a/packages/components/src/panel/test/body.js b/packages/components/src/panel/test/body.js index cda8c66bbf6d5..78d4774afccd8 100644 --- a/packages/components/src/panel/test/body.js +++ b/packages/components/src/panel/test/body.js @@ -8,8 +8,6 @@ import { shallow, mount } from 'enzyme'; */ import { PanelBody } from '../body'; -jest.mock( '../../button' ); - describe( 'PanelBody', () => { describe( 'basic rendering', () => { it( 'should render an empty div with the matching className', () => { diff --git a/packages/edit-post/src/components/header/more-menu/test/__snapshots__/index.js.snap b/packages/edit-post/src/components/header/more-menu/test/__snapshots__/index.js.snap index 4049a747b3fe0..9e8a474f6f921 100644 --- a/packages/edit-post/src/components/header/more-menu/test/__snapshots__/index.js.snap +++ b/packages/edit-post/src/components/header/more-menu/test/__snapshots__/index.js.snap @@ -23,7 +23,7 @@ exports[`MoreMenu should match snapshot 1`] = ` position="bottom" text="Show more tools & options" > - - + diff --git a/packages/edit-post/src/components/header/more-menu/test/index.js b/packages/edit-post/src/components/header/more-menu/test/index.js index 92daff0997151..83f9de19ba706 100644 --- a/packages/edit-post/src/components/header/more-menu/test/index.js +++ b/packages/edit-post/src/components/header/more-menu/test/index.js @@ -8,8 +8,6 @@ import { mount } from 'enzyme'; */ import MoreMenu from '../index'; -jest.mock( '../../../../../../components/src/button' ); - describe( 'MoreMenu', () => { it( 'should match snapshot', () => { const wrapper = mount( diff --git a/packages/edit-post/src/components/sidebar/plugin-post-publish-panel/test/index.js b/packages/edit-post/src/components/sidebar/plugin-post-publish-panel/test/index.js index 66b159bb25533..f4b5ca77eca16 100644 --- a/packages/edit-post/src/components/sidebar/plugin-post-publish-panel/test/index.js +++ b/packages/edit-post/src/components/sidebar/plugin-post-publish-panel/test/index.js @@ -9,8 +9,6 @@ import { render } from '@wordpress/element'; */ import PluginPostPublishPanel from '../'; -jest.mock( '../../../../../../components/src/button' ); - describe( 'PluginPostPublishPanel', () => { test( 'renders fill properly', () => { const div = document.createElement( 'div' ); diff --git a/packages/edit-post/src/components/sidebar/plugin-pre-publish-panel/test/index.js b/packages/edit-post/src/components/sidebar/plugin-pre-publish-panel/test/index.js index 1383341bfe705..9c011e1cbc2a0 100644 --- a/packages/edit-post/src/components/sidebar/plugin-pre-publish-panel/test/index.js +++ b/packages/edit-post/src/components/sidebar/plugin-pre-publish-panel/test/index.js @@ -9,8 +9,6 @@ import { render } from '@wordpress/element'; */ import PluginPrePublishPanel from '../'; -jest.mock( '../../../../../../components/src/button' ); - describe( 'PluginPrePublishPanel', () => { test( 'renders fill properly', () => { const div = document.createElement( 'div' ); diff --git a/packages/editor/src/components/block-controls/test/__snapshots__/index.js.snap b/packages/editor/src/components/block-controls/test/__snapshots__/index.js.snap index f1cf3c119e9ad..681c33a42d997 100644 --- a/packages/editor/src/components/block-controls/test/__snapshots__/index.js.snap +++ b/packages/editor/src/components/block-controls/test/__snapshots__/index.js.snap @@ -1,32 +1,45 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`BlockControls Should render a dynamic toolbar of controls 1`] = ` - - -

- Child -

-
+ } +> + + +

+ Child +

+
+
+ `; diff --git a/packages/editor/src/components/block-controls/test/index.js b/packages/editor/src/components/block-controls/test/index.js index 1eee2fbf5af2a..f970dc030cadb 100644 --- a/packages/editor/src/components/block-controls/test/index.js +++ b/packages/editor/src/components/block-controls/test/index.js @@ -6,7 +6,8 @@ import { shallow } from 'enzyme'; /** * Internal dependencies */ -import { BlockControls } from '../'; +import BlockControls from '../'; +import BlockEdit from '../../block-edit'; describe( 'BlockControls', () => { const controls = [ @@ -27,9 +28,15 @@ describe( 'BlockControls', () => { }, ]; - // Skipped temporarily until Enzyme publishes new version that works with React 16.3.0 APIs. - // eslint-disable-next-line jest/no-disabled-tests - test.skip( 'Should render a dynamic toolbar of controls', () => { - expect( shallow( Child

} /> ) ).toMatchSnapshot(); + it( 'should render a dynamic toolbar of controls', () => { + const wrapper = shallow( + + +

Child

+
+
+ ); + + expect( wrapper ).toMatchSnapshot(); } ); } ); diff --git a/packages/editor/src/components/post-preview-button/test/__snapshots__/index.js.snap b/packages/editor/src/components/post-preview-button/test/__snapshots__/index.js.snap index cfbde2342e780..fc928b5e12cb9 100644 --- a/packages/editor/src/components/post-preview-button/test/__snapshots__/index.js.snap +++ b/packages/editor/src/components/post-preview-button/test/__snapshots__/index.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`PostPreviewButton render() should render currentPostLink otherwise 1`] = ` - + `; exports[`PostPreviewButton render() should render previewLink if provided 1`] = ` - + `; diff --git a/packages/editor/src/components/post-preview-button/test/index.js b/packages/editor/src/components/post-preview-button/test/index.js index 6920f27fc809c..7bd9856de05c7 100644 --- a/packages/editor/src/components/post-preview-button/test/index.js +++ b/packages/editor/src/components/post-preview-button/test/index.js @@ -8,8 +8,6 @@ import { shallow } from 'enzyme'; */ import { PostPreviewButton } from '../'; -jest.mock( '../../../../../components/src/button' ); - describe( 'PostPreviewButton', () => { describe( 'setPreviewWindowLink()', () => { it( 'should do nothing if there is no preview window', () => { diff --git a/packages/editor/src/components/post-publish-button/test/index.js b/packages/editor/src/components/post-publish-button/test/index.js index 30156438cc14f..be407f86e14cd 100644 --- a/packages/editor/src/components/post-publish-button/test/index.js +++ b/packages/editor/src/components/post-publish-button/test/index.js @@ -8,8 +8,6 @@ import { shallow } from 'enzyme'; */ import { PostPublishButton } from '../'; -jest.mock( '../../../../../components/src/button' ); - describe( 'PostPublishButton', () => { describe( 'aria-disabled', () => { it( 'should be true if post is currently saving', () => { @@ -196,6 +194,6 @@ describe( 'PostPublishButton', () => { /> ); - expect( wrapper.find( 'Button' ).prop( 'isBusy' ) ).toBe( true ); + expect( wrapper.find( 'ForwardRef(Button)' ).prop( 'isBusy' ) ).toBe( true ); } ); } ); diff --git a/packages/jest-preset-default/CHANGELOG.md b/packages/jest-preset-default/CHANGELOG.md index 7ff9fd2ced551..04eb1446a749d 100644 --- a/packages/jest-preset-default/CHANGELOG.md +++ b/packages/jest-preset-default/CHANGELOG.md @@ -8,6 +8,7 @@ ### Internal - The bundled `enzyme` dependency has been updated from requiring `^3.7.0` to requiring `^3.9.0` ([#13922](https://github.com/WordPress/gutenberg/pull/13922)). +- The bundled `enzyme-adapter-react-16` dependency has been updated from requiring `^1.6.0` to requiring `^1.10.0` ([#13922](https://github.com/WordPress/gutenberg/pull/13922)). ## 3.0.3 (2018-11-20) diff --git a/packages/jest-preset-default/package.json b/packages/jest-preset-default/package.json index bc73370bb4706..e8bbd45dd0b8b 100644 --- a/packages/jest-preset-default/package.json +++ b/packages/jest-preset-default/package.json @@ -33,7 +33,7 @@ "@wordpress/jest-console": "file:../jest-console", "babel-jest": "^24.1.0", "enzyme": "^3.9.0", - "enzyme-adapter-react-16": "^1.9.1", + "enzyme-adapter-react-16": "^1.10.0", "enzyme-to-json": "^3.3.5" }, "peerDependencies": { diff --git a/packages/nux/src/components/dot-tip/test/__snapshots__/index.js.snap b/packages/nux/src/components/dot-tip/test/__snapshots__/index.js.snap index d9639628174e7..155eac26c893a 100644 --- a/packages/nux/src/components/dot-tip/test/__snapshots__/index.js.snap +++ b/packages/nux/src/components/dot-tip/test/__snapshots__/index.js.snap @@ -15,11 +15,11 @@ exports[`DotTip should render correctly 1`] = ` It looks like you’re writing a letter. Would you like help?

- +

{ it( 'should not render anything if invisible', () => { const wrapper = shallow( @@ -37,7 +35,7 @@ describe( 'DotTip', () => { It looks like you’re writing a letter. Would you like help? ); - wrapper.find( 'Button[children="Got it"]' ).first().simulate( 'click' ); + wrapper.find( 'ForwardRef(Button)[children="Got it"]' ).first().simulate( 'click' ); expect( onDismiss ).toHaveBeenCalled(); } );