Skip to content

Commit 7018689

Browse files
KingDarBojaJosh Goldberg
and
Josh Goldberg
authored
Added jsx-curly-spacing converter (#636)
* Added jsx-curly-spacing converter * Split jsx-curly-spacing tests Co-authored-by: Josh Goldberg <joshuakgoldberg@outlook.com>
1 parent 95a5f24 commit 7018689

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { RuleConverter } from "../../converter";
2+
3+
export const convertJsxCurlySpacing: RuleConverter = (tslintRule) => {
4+
return {
5+
rules: [
6+
{
7+
...(tslintRule.ruleArguments.length !== 0 && {
8+
ruleArguments: [
9+
{
10+
when: tslintRule.ruleArguments[0],
11+
},
12+
],
13+
}),
14+
ruleName: "react/jsx-curly-spacing",
15+
},
16+
],
17+
plugins: ["eslint-plugin-react"],
18+
};
19+
};
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import { convertJsxCurlySpacing } from "../jsx-curly-spacing";
2+
3+
describe(convertJsxCurlySpacing, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertJsxCurlySpacing({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "react/jsx-curly-spacing",
13+
},
14+
],
15+
plugins: ["eslint-plugin-react"],
16+
});
17+
});
18+
19+
test("conversion with 'always' argument", () => {
20+
const alwaysResult = convertJsxCurlySpacing({
21+
ruleArguments: ["always"],
22+
});
23+
24+
expect(alwaysResult).toEqual({
25+
rules: [
26+
{
27+
ruleArguments: [
28+
{
29+
when: "always",
30+
},
31+
],
32+
ruleName: "react/jsx-curly-spacing",
33+
},
34+
],
35+
plugins: ["eslint-plugin-react"],
36+
});
37+
});
38+
39+
test("conversion with 'never' argument", () => {
40+
const neverResult = convertJsxCurlySpacing({
41+
ruleArguments: ["never"],
42+
});
43+
44+
expect(neverResult).toEqual({
45+
rules: [
46+
{
47+
ruleArguments: [
48+
{
49+
when: "never",
50+
},
51+
],
52+
ruleName: "react/jsx-curly-spacing",
53+
},
54+
],
55+
plugins: ["eslint-plugin-react"],
56+
});
57+
});
58+
});

src/rules/rulesConverters.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ import { convertUsePipeTransformInterface } from "./converters/codelyzer/use-pip
174174

175175
// ESLint-React converters
176176
import { convertJsxBooleanValue } from "./converters/eslint-plugin-react/jsx-boolean-value";
177+
import { convertJsxCurlySpacing } from "./converters/eslint-plugin-react/jsx-curly-spacing";
177178
import { convertJsxEqualsSpacing } from "./converters/eslint-plugin-react/jsx-equals-spacing";
178179
import { convertJsxKey } from "./converters/eslint-plugin-react/jsx-key";
179180

@@ -214,6 +215,7 @@ export const rulesConverters = new Map([
214215
["interface-over-type-literal", convertInterfaceOverTypeLiteral],
215216
["jsdoc-format", convertJSDocFormat],
216217
["jsx-boolean-value", convertJsxBooleanValue],
218+
["jsx-curly-spacing", convertJsxCurlySpacing],
217219
["jsx-equals-spacing", convertJsxEqualsSpacing],
218220
["jsx-key", convertJsxKey],
219221
["label-position", convertLabelPosition],

0 commit comments

Comments
 (0)