diff --git a/packages/compose/src/hooks/use-merge-refs/test/index.js b/packages/compose/src/hooks/use-merge-refs/test/index.js
index fe73347b8e237..4c883ff97c608 100644
--- a/packages/compose/src/hooks/use-merge-refs/test/index.js
+++ b/packages/compose/src/hooks/use-merge-refs/test/index.js
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import ReactDOM from 'react-dom';
+import { render, screen } from '@testing-library/react';
/**
* WordPress dependencies
@@ -38,7 +38,7 @@ describe( 'useMergeRefs', () => {
function MergedRefs( {
count,
- tagName: TagName = 'div',
+ tagName: TagName = 'ul',
disable1,
disable2,
unused,
@@ -71,31 +71,22 @@ describe( 'useMergeRefs', () => {
return ;
}
- beforeEach( () => {
- const rootElement = document.createElement( 'div' );
- rootElement.id = 'root';
- document.body.appendChild( rootElement );
- } );
-
afterEach( () => {
- // Reset all history and DOM.
+ // Reset all history.
renderCallback.history = [];
- document.body.innerHTML = '';
} );
it( 'should work', () => {
- const rootElement = document.getElementById( 'root' );
-
- ReactDOM.render( , rootElement );
+ const { rerender, unmount } = render( );
- const originalElement = rootElement.firstElementChild;
+ const originalElement = screen.getByRole( 'list' );
// Render 1: both initial callback functions should be called with node.
expect( renderCallback.history ).toEqual( [
[ [ originalElement ], [ originalElement ] ],
] );
- ReactDOM.render( , rootElement );
+ rerender( );
// Render 2: the new callback functions should not be called! There has
// been no dependency change.
@@ -104,7 +95,7 @@ describe( 'useMergeRefs', () => {
[ [], [] ],
] );
- ReactDOM.render( null, rootElement );
+ unmount();
// Unmount: the initial callback functions should receive null.
expect( renderCallback.history ).toEqual( [
@@ -117,15 +108,13 @@ describe( 'useMergeRefs', () => {
} );
it( 'should work for node change', () => {
- const rootElement = document.getElementById( 'root' );
+ const { rerender, unmount } = render( );
- ReactDOM.render( , rootElement );
+ const originalElement = screen.getByRole( 'list' );
- const originalElement = rootElement.firstElementChild;
+ rerender( );
- ReactDOM.render( , rootElement );
-
- const newElement = rootElement.firstElementChild;
+ const newElement = screen.getByRole( 'button' );
// After a render with the original element and a second render with the
// new element, expect the initial callback functions to be called with
@@ -140,7 +129,7 @@ describe( 'useMergeRefs', () => {
[ [], [] ],
] );
- ReactDOM.render( null, rootElement );
+ unmount();
// Unmount: the initial callback functions should receive null.
expect( renderCallback.history ).toEqual( [
@@ -153,17 +142,15 @@ describe( 'useMergeRefs', () => {
} );
it( 'should work with dependencies', () => {
- const rootElement = document.getElementById( 'root' );
-
- ReactDOM.render( , rootElement );
+ const { rerender, unmount } = render( );
- const originalElement = rootElement.firstElementChild;
+ const originalElement = screen.getByRole( 'list' );
expect( renderCallback.history ).toEqual( [
[ [ originalElement ], [ originalElement ] ],
] );
- ReactDOM.render( , rootElement );
+ rerender( );
// After a second render with a dependency change, expect the inital
// callback function to be called with null and the new callback
@@ -174,7 +161,7 @@ describe( 'useMergeRefs', () => {
[ [], [ originalElement ] ],
] );
- ReactDOM.render( null, rootElement );
+ unmount();
// Unmount: current callback functions should be called with null.
expect( renderCallback.history ).toEqual( [
@@ -187,22 +174,17 @@ describe( 'useMergeRefs', () => {
} );
it( 'should simultaneously update node and dependencies', () => {
- const rootElement = document.getElementById( 'root' );
+ const { rerender, unmount } = render( );
- ReactDOM.render( , rootElement );
-
- const originalElement = rootElement.firstElementChild;
+ const originalElement = screen.getByRole( 'list' );
expect( renderCallback.history ).toEqual( [
[ [ originalElement ], [ originalElement ] ],
] );
- ReactDOM.render(
- ,
- rootElement
- );
+ rerender( );
- const newElement = rootElement.firstElementChild;
+ const newElement = screen.getByRole( 'button' );
// Both the node changes and the dependencies update for the second
// callback, so expect the old callback function to be called with null
@@ -217,7 +199,7 @@ describe( 'useMergeRefs', () => {
[ [], [ newElement ] ],
] );
- ReactDOM.render( null, rootElement );
+ unmount();
// Unmount: current callback functions should be called with null.
expect( renderCallback.history ).toEqual( [
@@ -230,15 +212,13 @@ describe( 'useMergeRefs', () => {
} );
it( 'should work for dependency change after node change', () => {
- const rootElement = document.getElementById( 'root' );
-
- ReactDOM.render( , rootElement );
+ const { rerender, unmount } = render( );
- const originalElement = rootElement.firstElementChild;
+ const originalElement = screen.getByRole( 'list' );
- ReactDOM.render( , rootElement );
+ rerender( );
- const newElement = rootElement.firstElementChild;
+ const newElement = screen.getByRole( 'button' );
// After a render with the original element and a second render with the
// new element, expect the initial callback functions to be called with
@@ -253,10 +233,7 @@ describe( 'useMergeRefs', () => {
[ [], [] ],
] );
- ReactDOM.render(
- ,
- rootElement
- );
+ rerender( );
// After a third render with a dependency change, expect the inital
// callback function to be called with null and the new callback
@@ -271,7 +248,7 @@ describe( 'useMergeRefs', () => {
[ [], [ newElement ] ],
] );
- ReactDOM.render( null, rootElement );
+ unmount();
// Unmount: current callback functions should be called with null.
expect( renderCallback.history ).toEqual( [
@@ -285,18 +262,16 @@ describe( 'useMergeRefs', () => {
} );
it( 'should allow disabling a ref', () => {
- const rootElement = document.getElementById( 'root' );
+ const { rerender, unmount } = render( );
- ReactDOM.render( , rootElement );
-
- const originalElement = rootElement.firstElementChild;
+ const originalElement = screen.getByRole( 'list' );
// Render 1: ref 1 should be disabled.
expect( renderCallback.history ).toEqual( [
[ [], [ originalElement ] ],
] );
- ReactDOM.render( , rootElement );
+ rerender( );
// Render 2: ref 1 should be enabled and receive the ref. Note that the
// callback hasn't changed, so the original callback function will be
@@ -306,7 +281,7 @@ describe( 'useMergeRefs', () => {
[ [], [] ],
] );
- ReactDOM.render( , rootElement );
+ rerender( );
// Render 3: ref 1 should again be disabled. Ref 2 to should receive a
// ref with the new callback function because the count has been
@@ -320,7 +295,7 @@ describe( 'useMergeRefs', () => {
[ [], [ originalElement ] ],
] );
- ReactDOM.render( null, rootElement );
+ unmount();
// Unmount: current callback functions should receive null.
expect( renderCallback.history ).toEqual( [
@@ -334,18 +309,16 @@ describe( 'useMergeRefs', () => {
} );
it( 'should allow the hook being unused', () => {
- const rootElement = document.getElementById( 'root' );
-
- ReactDOM.render( , rootElement );
+ const { rerender } = render( );
- const originalElement = rootElement.firstElementChild;
+ const originalElement = screen.getByRole( 'list' );
// Render 1: ref 1 should updated, ref 2 should not.
expect( renderCallback.history ).toEqual( [
[ [ originalElement ], [] ],
] );
- ReactDOM.render( , rootElement );
+ rerender( );
// Render 2: ref 2 should be updated as well.
expect( renderCallback.history ).toEqual( [
@@ -353,7 +326,7 @@ describe( 'useMergeRefs', () => {
[ [], [] ],
] );
- ReactDOM.render( , rootElement );
+ rerender( );
// Render 3: ref 2 should be updated with null
expect( renderCallback.history ).toEqual( [
diff --git a/packages/edit-post/src/components/sidebar/plugin-pre-publish-panel/test/__snapshots__/index.js.snap b/packages/edit-post/src/components/sidebar/plugin-pre-publish-panel/test/__snapshots__/index.js.snap
deleted file mode 100644
index 7540e75611134..0000000000000
--- a/packages/edit-post/src/components/sidebar/plugin-pre-publish-panel/test/__snapshots__/index.js.snap
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`PluginPrePublishPanel renders fill properly 1`] = `"
My panel content
"`;
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 9c011e1cbc2a0..2b6e410a01d96 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
@@ -1,8 +1,12 @@
+/**
+ * External dependencies
+ */
+import { render, screen } from '@testing-library/react';
+
/**
* WordPress dependencies
*/
import { SlotFillProvider } from '@wordpress/components';
-import { render } from '@wordpress/element';
/**
* Internal dependencies
@@ -11,21 +15,19 @@ import PluginPrePublishPanel from '../';
describe( 'PluginPrePublishPanel', () => {
test( 'renders fill properly', () => {
- const div = document.createElement( 'div' );
render(
My panel content
- ,
- div
+
);
- expect( div.innerHTML ).toMatchSnapshot();
+ expect( screen.getByText( 'My panel title' ) ).toBeVisible();
} );
} );