Skip to content

Commit 121aa50

Browse files
committed
test: add more test cases
1 parent 6378e2f commit 121aa50

File tree

2 files changed

+39
-7
lines changed

2 files changed

+39
-7
lines changed

packages/plugins/eslint-plugin-react-dom/src/rules/no-render.spec.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,44 @@ ruleTester.run(RULE_NAME, rule, {
4141
createRoot(document.getElementById("app")).render(<Component />);
4242
`,
4343
},
44+
{
45+
code: tsx`
46+
import React from "react";
47+
import ReactDom from "react-dom";
48+
import Component from "Component";
49+
50+
ReactDom.render(<Component />, document.getElementById("app")!);
51+
`,
52+
errors: [{ messageId: "noRender" }],
53+
output: tsx`
54+
import { createRoot } from "react-dom/client";
55+
import React from "react";
56+
import ReactDom from "react-dom";
57+
import Component from "Component";
58+
59+
createRoot(document.getElementById("app")!).render(<Component />);
60+
`,
61+
},
62+
{
63+
code: tsx`
64+
import React from "react";
65+
import ReactDom from "react-dom";
66+
import Component from "Component";
67+
68+
const rootEl = document.getElementById("app")!;
69+
ReactDom.render(<Component />, rootEl);
70+
`,
71+
errors: [{ messageId: "noRender" }],
72+
output: tsx`
73+
import { createRoot } from "react-dom/client";
74+
import React from "react";
75+
import ReactDom from "react-dom";
76+
import Component from "Component";
77+
78+
const rootEl = document.getElementById("app")!;
79+
createRoot(rootEl).render(<Component />);
80+
`,
81+
},
4482
],
4583
valid: [
4684
tsx`

packages/plugins/eslint-plugin-react-dom/src/rules/no-render.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,9 @@ function getFix(context: RuleContext, node: TSESTree.CallExpression) {
9393
return (fixer: RuleFixer) => {
9494
const [arg0, arg1] = node.arguments;
9595
if (arg0 == null || arg1 == null) return null;
96-
const fixedCallExpressionText = [
97-
"createRoot",
98-
"(" + getText(arg1) + ")" + ".",
99-
"render",
100-
"(" + getText(arg0) + ")",
101-
].join("");
10296
return [
10397
fixer.insertTextBefore(context.sourceCode.ast, 'import { createRoot } from "react-dom/client";\n'),
104-
fixer.replaceText(node, fixedCallExpressionText),
98+
fixer.replaceText(node, `createRoot(${getText(arg1)}).render(${getText(arg0)})`),
10599
];
106100
};
107101
}

0 commit comments

Comments
 (0)