diff --git a/packages/react-dom/src/events/__tests__/getEventKey-test.js b/packages/react-dom/src/events/__tests__/getEventKey-test.js index 1cf7c82d8597a..65449671e11ea 100644 --- a/packages/react-dom/src/events/__tests__/getEventKey-test.js +++ b/packages/react-dom/src/events/__tests__/getEventKey-test.js @@ -10,28 +10,38 @@ 'use strict'; let React; -let ReactDOM; +let ReactDOMClient; + +let act; describe('getEventKey', () => { let container; + let root; beforeEach(() => { React = require('react'); - ReactDOM = require('react-dom'); + ReactDOMClient = require('react-dom/client'); + + act = require('internal-test-utils').act; // The container has to be attached for events to fire. container = document.createElement('div'); + root = ReactDOMClient.createRoot(container); document.body.appendChild(container); }); - afterEach(() => { + afterEach(async () => { + await act(() => { + root.unmount(); + }); document.body.removeChild(container); container = null; + root = null; }); describe('when key is implemented in a browser', () => { describe('when key is not normalized', () => { - it('returns a normalized value', () => { + it('returns a normalized value', async () => { let key = null; class Comp extends React.Component { render() { @@ -39,7 +49,9 @@ describe('getEventKey', () => { } } - ReactDOM.render(, container); + await act(() => { + root.render(); + }); const nativeEvent = new KeyboardEvent('keydown', { key: 'Del', @@ -52,7 +64,7 @@ describe('getEventKey', () => { }); describe('when key is normalized', () => { - it('returns a key', () => { + it('returns a key', async () => { let key = null; class Comp extends React.Component { render() { @@ -60,7 +72,9 @@ describe('getEventKey', () => { } } - ReactDOM.render(, container); + await act(() => { + root.render(); + }); const nativeEvent = new KeyboardEvent('keydown', { key: 'f', @@ -76,7 +90,7 @@ describe('getEventKey', () => { describe('when key is not implemented in a browser', () => { describe('when event type is keypress', () => { describe('when charCode is 13', () => { - it('returns "Enter"', () => { + it('returns "Enter"', async () => { let key = null; class Comp extends React.Component { render() { @@ -84,7 +98,9 @@ describe('getEventKey', () => { } } - ReactDOM.render(, container); + await act(() => { + root.render(); + }); const nativeEvent = new KeyboardEvent('keypress', { charCode: 13, @@ -97,7 +113,7 @@ describe('getEventKey', () => { }); describe('when charCode is not 13', () => { - it('returns a string from a charCode', () => { + it('returns a string from a charCode', async () => { let key = null; class Comp extends React.Component { render() { @@ -105,7 +121,9 @@ describe('getEventKey', () => { } } - ReactDOM.render(, container); + await act(() => { + root.render(); + }); const nativeEvent = new KeyboardEvent('keypress', { charCode: 65, @@ -120,7 +138,7 @@ describe('getEventKey', () => { describe('when event type is keydown or keyup', () => { describe('when keyCode is recognized', () => { - it('returns a translated key', () => { + it('returns a translated key', async () => { let key = null; class Comp extends React.Component { render() { @@ -128,7 +146,9 @@ describe('getEventKey', () => { } } - ReactDOM.render(, container); + await act(() => { + root.render(); + }); const nativeEvent = new KeyboardEvent('keydown', { keyCode: 45, @@ -141,7 +161,7 @@ describe('getEventKey', () => { }); describe('when keyCode is not recognized', () => { - it('returns Unidentified', () => { + it('returns Unidentified', async () => { let key = null; class Comp extends React.Component { render() { @@ -149,7 +169,9 @@ describe('getEventKey', () => { } } - ReactDOM.render(, container); + await act(() => { + root.render(); + }); const nativeEvent = new KeyboardEvent('keydown', { keyCode: 1337,