Skip to content

Commit a5215d8

Browse files
committed
Add tests for warnings in <StrictMode>
Fixes remix-run#6385
1 parent 9c2ff85 commit a5215d8

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import React from "react";
2+
import ReactDOM from "react-dom";
3+
4+
import { BrowserRouter, HashRouter } from "react-router-dom";
5+
6+
if (React.StrictMode) {
7+
describe("in <StrictMode>", () => {
8+
const node = document.createElement("div");
9+
10+
afterEach(() => {
11+
ReactDOM.unmountComponentAtNode(node);
12+
});
13+
14+
describe("a <BrowserRouter>", () => {
15+
it("does not trigger any warnings", () => {
16+
spyOn(console, "error");
17+
18+
ReactDOM.render(
19+
<React.StrictMode>
20+
<BrowserRouter />
21+
</React.StrictMode>,
22+
node
23+
);
24+
25+
expect(console.error).not.toHaveBeenCalled();
26+
});
27+
});
28+
29+
describe("a <HashRouter>", () => {
30+
it("does not trigger any warnings", () => {
31+
spyOn(console, "error");
32+
33+
ReactDOM.render(
34+
<React.StrictMode>
35+
<HashRouter />
36+
</React.StrictMode>,
37+
node
38+
);
39+
40+
expect(console.error).not.toHaveBeenCalled();
41+
});
42+
});
43+
});
44+
} else {
45+
console.log(
46+
"Skipping <StrictMode> tests because React %s does not support it",
47+
React.version
48+
);
49+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import React from "react";
2+
import ReactDOM from "react-dom";
3+
import createHistory from "history/createMemoryHistory";
4+
5+
import { MemoryRouter, StaticRouter, Router } from "react-router";
6+
7+
if (React.StrictMode) {
8+
describe("in <StrictMode>", () => {
9+
const node = document.createElement("div");
10+
11+
afterEach(() => {
12+
ReactDOM.unmountComponentAtNode(node);
13+
});
14+
15+
describe("a <MemoryRouter>", () => {
16+
it("does not trigger any warnings", () => {
17+
spyOn(console, "error");
18+
19+
ReactDOM.render(
20+
<React.StrictMode>
21+
<MemoryRouter />
22+
</React.StrictMode>,
23+
node
24+
);
25+
26+
expect(console.error).not.toHaveBeenCalled();
27+
});
28+
});
29+
30+
describe("a <StaticRouter>", () => {
31+
it("does not trigger any warnings", () => {
32+
spyOn(console, "error");
33+
34+
ReactDOM.render(
35+
<React.StrictMode>
36+
<StaticRouter />
37+
</React.StrictMode>,
38+
node
39+
);
40+
41+
expect(console.error).not.toHaveBeenCalled();
42+
});
43+
});
44+
45+
describe("a <Router>", () => {
46+
it("does not trigger any warnings", () => {
47+
spyOn(console, "error");
48+
49+
ReactDOM.render(
50+
<React.StrictMode>
51+
<Router history={createHistory()} />
52+
</React.StrictMode>,
53+
node
54+
);
55+
56+
expect(console.error).not.toHaveBeenCalled();
57+
});
58+
});
59+
});
60+
} else {
61+
console.log(
62+
"Skipping <StrictMode> tests because React %s does not support it",
63+
React.version
64+
);
65+
}

0 commit comments

Comments
 (0)