Skip to content

Commit 701a61d

Browse files
eps1lonoliviertassinari
authored andcommitted
[core] Add strict option to createMount (#15317)
* [test] Test with strict mode where possible * [chore] Use #StrictMode Makes code search easier * [InputBase] Fix onFilled/onEmpty being called too often * [test] Don't memoize mode - Interfers with other tests - also polishes createMount * [test] Fix failing tests styles were still applied. maybe an issue with ReactDOM? * [test] Revert test fix The actual issue is makeStyles * [test] Polish Mode docs * [useMediaQuery] Use proper effect hooks * [useMediaQuery] Use proper act instead of setTimeout * Update packages/material-ui/src/useMediaQuery/useMediaQuery.test.js Co-Authored-By: eps1lon <[email protected]> * no dedup
1 parent 33eb4e9 commit 701a61d

File tree

104 files changed

+378
-283
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+378
-283
lines changed

packages/material-ui-lab/src/Slider/Slider.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ class Slider extends React.Component {
423423
handleRef = ref => {
424424
setRef(this.props.innerRef, ref);
425425

426-
// StrictMode ready
426+
// #StrictMode ready
427427
const nextContainer = ReactDOM.findDOMNode(ref);
428428
const prevContainer = this.container;
429429

packages/material-ui-lab/src/Slider/Slider.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ describe('<Slider />', () => {
2020

2121
before(() => {
2222
classes = getClasses(<Slider value={0} />);
23-
mount = createMount();
23+
// StrictMode violation: uses ButtonBase
24+
mount = createMount({ strict: false });
2425
});
2526

2627
after(() => {

packages/material-ui-lab/src/SpeedDial/SpeedDial.test.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ describe('<SpeedDial />', () => {
3232
}
3333

3434
before(() => {
35-
mount = createMount();
35+
// StrictModeViolation: uses ButtonBase
36+
mount = createMount({ strict: false });
3637
shallow = createShallow({ dive: true });
3738
classes = getClasses(
3839
<SpeedDial {...defaultProps} icon={icon}>
@@ -296,7 +297,7 @@ describe('<SpeedDial />', () => {
296297

297298
it('displays the actions on focus gain', () => {
298299
resetDialToOpen();
299-
assert.strictEqual(wrapper.props().open, true);
300+
assert.strictEqual(wrapper.find('SpeedDial').props().open, true);
300301
});
301302

302303
describe('first item selection', () => {

packages/material-ui-lab/src/SpeedDialAction/SpeedDialAction.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ describe('<SpeedDialAction />', () => {
1717
};
1818

1919
before(() => {
20-
mount = createMount();
20+
// StrictModeViolation: uses ButtonBase
21+
mount = createMount({ strict: false });
2122
classes = getClasses(<SpeedDialAction {...defaultProps} />);
2223
});
2324

packages/material-ui-lab/src/SpeedDialIcon/SpeedDialIcon.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ describe('<SpeedDialIcon />', () => {
1313

1414
before(() => {
1515
shallow = createShallow({ dive: true });
16-
mount = createMount();
16+
mount = createMount({ strict: true });
1717
classes = getClasses(<SpeedDialIcon />);
1818
});
1919

packages/material-ui-lab/src/ToggleButton/ToggleButton.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ describe('<ToggleButton />', () => {
1717
let classes;
1818

1919
before(() => {
20-
mount = createMount();
20+
// StrictModeViolation: uses ButtonBase
21+
mount = createMount({ strict: false });
2122
render = createRender();
2223
classes = getClasses(<ToggleButton value="classes">Hello World</ToggleButton>);
2324
});

packages/material-ui-lab/src/ToggleButtonGroup/ToggleButtonGroup.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ describe('<ToggleButtonGroup />', () => {
1515
let classes;
1616

1717
before(() => {
18-
mount = createMount();
18+
// StrictModeViolation: uses ButtonBase
19+
mount = createMount({ strict: false });
1920
classes = getClasses(
2021
<ToggleButtonGroup>
2122
<ToggleButton value="hello" />

packages/material-ui-styles/src/StylesProvider/StylesProvider.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ describe('StylesProvider', () => {
2121
let generateClassName;
2222

2323
before(() => {
24-
mount = createMount();
24+
mount = createMount({ strict: true });
2525
});
2626

2727
beforeEach(() => {

packages/material-ui-styles/src/ThemeProvider/ThemeProvider.test.js

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,59 +9,65 @@ describe('ThemeProvider', () => {
99
let mount;
1010

1111
before(() => {
12-
mount = createMount();
12+
mount = createMount({ strict: true });
1313
});
1414

1515
after(() => {
1616
mount.cleanUp();
1717
});
1818

1919
it('should provide the theme', () => {
20+
const ref = React.createRef();
21+
const text = () => ref.current.textContent;
2022
function Test() {
2123
const theme = useTheme();
2224

23-
return <span>{theme.foo}</span>;
25+
return <span ref={ref}>{theme.foo}</span>;
2426
}
2527

26-
const wrapper = mount(
28+
mount(
2729
<ThemeProvider theme={{ foo: 'foo' }}>
2830
<Test />
2931
</ThemeProvider>,
3032
);
31-
assert.strictEqual(wrapper.text(), 'foo');
33+
assert.strictEqual(text(), 'foo');
3234
});
3335

3436
it('should merge the themes', () => {
37+
const ref = React.createRef();
38+
const text = () => ref.current.textContent;
3539
function Test() {
3640
const theme = useTheme();
3741

3842
return (
39-
<span>
43+
<span ref={ref}>
4044
{theme.foo}
4145
{theme.bar}
4246
</span>
4347
);
4448
}
4549

46-
const wrapper = mount(
50+
mount(
4751
<ThemeProvider theme={{ bar: 'bar' }}>
4852
<ThemeProvider theme={{ foo: 'foo' }}>
4953
<Test />
5054
</ThemeProvider>
5155
</ThemeProvider>,
5256
);
53-
assert.strictEqual(wrapper.text(), 'foobar');
57+
assert.strictEqual(text(), 'foobar');
5458
});
5559

5660
it('should memoize the merged output', () => {
5761
const themes = [];
5862

63+
const ref = React.createRef();
64+
const text = () => ref.current.textContent;
5965
function Test() {
6066
const theme = useTheme();
6167
themes.push(theme);
6268

6369
return (
64-
<span>
70+
<span ref={ref}>
6571
{theme.foo}
6672
{theme.bar}
6773
</span>
@@ -83,9 +89,9 @@ describe('ThemeProvider', () => {
8389
}
8490

8591
const wrapper = mount(<Container />);
86-
assert.strictEqual(wrapper.text(), 'foobar');
92+
assert.strictEqual(text(), 'foobar');
8793
wrapper.setProps({});
88-
assert.strictEqual(wrapper.text(), 'foobar');
94+
assert.strictEqual(text(), 'foobar');
8995
assert.strictEqual(themes.length, 1);
9096
});
9197

@@ -104,7 +110,7 @@ describe('ThemeProvider', () => {
104110
<div />
105111
</ThemeProvider>,
106112
);
107-
assert.strictEqual(consoleErrorMock.callCount(), 1);
113+
assert.strictEqual(consoleErrorMock.callCount(), 2); // twice in strict mode
108114
assert.include(consoleErrorMock.args()[0][0], 'However, no outer theme is present.');
109115
});
110116

@@ -117,7 +123,7 @@ describe('ThemeProvider', () => {
117123
,
118124
</ThemeProvider>,
119125
);
120-
assert.strictEqual(consoleErrorMock.callCount(), 1);
126+
assert.strictEqual(consoleErrorMock.callCount(), 2);
121127
assert.include(
122128
consoleErrorMock.args()[0][0],
123129
'you should return an object from your theme function',

packages/material-ui-styles/src/makeStyles/makeStyles.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ describe('makeStyles', () => {
3939
let generateClassName;
4040

4141
before(() => {
42-
mount = createMount();
42+
mount = createMount({ strict: undefined });
4343
});
4444

4545
beforeEach(() => {

0 commit comments

Comments
 (0)