component',
];
diff --git a/packages/material-ui/src/useMediaQuery/useMediaQuery.test.js b/packages/material-ui/src/useMediaQuery/useMediaQuery.test.js
index 70acd7e9d3e3cd..dd5e239b441857 100644
--- a/packages/material-ui/src/useMediaQuery/useMediaQuery.test.js
+++ b/packages/material-ui/src/useMediaQuery/useMediaQuery.test.js
@@ -33,17 +33,18 @@ function createMatchMedia(width, ref) {
}
describe('useMediaQuery', () => {
- before(function beforeHook() {
- // Only run the test on node.
- // Waiting for https://github.com/facebook/react/issues/14050
- if (!/jsdom/.test(window.navigator.userAgent)) {
- this.skip();
- }
- });
-
const render = createClientRender();
- describe('without feature', () => {
+ describe('without window.matchMedia', () => {
+ let originalMatchmedia;
+ beforeEach(() => {
+ originalMatchmedia = window.matchMedia;
+ delete window.matchMedia;
+ });
+ afterEach(() => {
+ window.matchMedia = originalMatchmedia;
+ });
+
it('should work without window.matchMedia available', () => {
expect(typeof window.matchMedia).to.equal('undefined');
const Test = () => {
@@ -56,7 +57,7 @@ describe('useMediaQuery', () => {
});
});
- describe('with feature', () => {
+ describe('with window.matchMedia', () => {
let matchMediaInstances;
beforeEach(() => {
@@ -244,8 +245,8 @@ describe('useMediaQuery', () => {
expect(screen.getByTestId('matches').textContent).to.equal('false');
act(() => {
- matchMediaInstances[0].instance.matches = true;
- matchMediaInstances[0].listeners[0]();
+ matchMediaInstances[matchMediaInstances.length - 1].instance.matches = true;
+ matchMediaInstances[matchMediaInstances.length - 1].listeners[0]();
});
expect(screen.getByTestId('matches').textContent).to.equal('true');
expect(getRenderCountRef.current()).to.equal(2);
diff --git a/packages/material-ui/src/utils/index.test.js b/packages/material-ui/src/utils/index.test.js
index cee26636609dda..5bb59c8f170893 100644
--- a/packages/material-ui/src/utils/index.test.js
+++ b/packages/material-ui/src/utils/index.test.js
@@ -67,13 +67,11 @@ describe('utils/index.js', () => {
it('returns a single ref-setter function that forks the ref to its inputs', () => {
function Component(props) {
const { innerRef } = props;
- const ownRef = React.useRef(null);
- const [, forceUpdate] = React.useState(0);
- React.useEffect(() => forceUpdate((n) => !n), []);
+ const [ownRefCurrent, ownRef] = React.useState(null);
const handleRef = useForkRef(innerRef, ownRef);
- return {ownRef.current ? 'has a ref' : 'has no ref'}
;
+ return {ownRefCurrent ? 'has a ref' : 'has no ref'}
;
}
const outerRef = React.createRef();
diff --git a/packages/material-ui/test/integration/MenuList.test.js b/packages/material-ui/test/integration/MenuList.test.js
index 83e0df394281eb..3f95648444db6f 100644
--- a/packages/material-ui/test/integration/MenuList.test.js
+++ b/packages/material-ui/test/integration/MenuList.test.js
@@ -146,7 +146,9 @@ describe(' integration', () => {
);
const menuitems = getAllByRole('menuitem');
- menuitems[0].focus();
+ act(() => {
+ menuitems[0].focus();
+ });
expect(menuitems[0]).toHaveFocus();
expect(menuitems[0]).to.have.property('tabIndex', 0);
@@ -434,7 +436,9 @@ describe(' integration', () => {
,
);
const menu = getByRole('menu');
- menu.focus();
+ act(() => {
+ menu.focus();
+ });
fireEvent.keyDown(menu, { key: 'a' });
@@ -466,8 +470,10 @@ describe(' integration', () => {
const menuitem = getByText('Arizona');
// user click
- fireEvent.mouseDown(menuitem);
- menuitem.focus();
+ act(() => {
+ fireEvent.mouseDown(menuitem);
+ menuitem.focus();
+ });
fireEvent.click(menuitem);
expect(menuitem).toHaveFocus();
diff --git a/packages/material-ui/test/integration/Select.test.js b/packages/material-ui/test/integration/Select.test.js
index 0114d721c8577f..cd2a75999b67a4 100644
--- a/packages/material-ui/test/integration/Select.test.js
+++ b/packages/material-ui/test/integration/Select.test.js
@@ -132,11 +132,11 @@ describe('