Skip to content

Commit 6365fff

Browse files
author
Tobias Waltl
committed
[Fix] jsx-indent-props: Reset line.isUsingOperator correctly after ternary (#3146)
1 parent d56fdb8 commit 6365fff

File tree

2 files changed

+133
-1
lines changed

2 files changed

+133
-1
lines changed

lib/rules/jsx-indent-props.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ module.exports = {
153153

154154
const indent = regExp.exec(src);
155155
const useOperator = /^([ ]|[\t])*[:]/.test(src) || /^([ ]|[\t])*[?]/.test(src);
156-
const useBracket = /^([ ]|[\t])*[<]/.test(src);
156+
const useBracket = /[<]/.test(src);
157157

158158
line.currentOperator = false;
159159
if (useOperator) {

tests/lib/rules/jsx-indent-props.js

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,48 @@ ruleTester.run('jsx-indent-props', rule, {
195195
},
196196
],
197197
},
198+
{
199+
code: `
200+
const F = () => {
201+
const foo = true
202+
? <div id="id">test</div>
203+
: false;
204+
205+
return <div
206+
id="id"
207+
>
208+
test
209+
</div>
210+
}
211+
`,
212+
options: [
213+
{
214+
indentMode: 2,
215+
ignoreTernaryOperator: false,
216+
},
217+
],
218+
},
219+
{
220+
code: `
221+
const F = () => {
222+
const foo = true
223+
? <div id="id">test</div>
224+
: false;
225+
226+
return <div
227+
id="id"
228+
>
229+
test
230+
</div>
231+
}
232+
`,
233+
options: [
234+
{
235+
indentMode: 2,
236+
ignoreTernaryOperator: true,
237+
},
238+
],
239+
},
198240
{
199241
code: `
200242
{this.props.ignoreTernaryOperatorTrue
@@ -607,5 +649,95 @@ ruleTester.run('jsx-indent-props', rule, {
607649
},
608650
],
609651
},
652+
{
653+
code: `
654+
const F = () => {
655+
const foo = true
656+
? <div id="id">test</div>
657+
: false;
658+
659+
return <div
660+
id="id"
661+
>
662+
test
663+
</div>
664+
}
665+
`,
666+
output: `
667+
const F = () => {
668+
const foo = true
669+
? <div id="id">test</div>
670+
: false;
671+
672+
return <div
673+
id="id"
674+
>
675+
test
676+
</div>
677+
}
678+
`,
679+
options: [
680+
{
681+
indentMode: 2,
682+
ignoreTernaryOperator: false,
683+
},
684+
],
685+
errors: [
686+
{
687+
messageId: 'wrongIndent',
688+
data: {
689+
needed: 12,
690+
type: 'space',
691+
characters: 'characters',
692+
gotten: 14,
693+
},
694+
},
695+
],
696+
},
697+
{
698+
code: `
699+
const F = () => {
700+
const foo = true
701+
? <div id="id">test</div>
702+
: false;
703+
704+
return <div
705+
id="id"
706+
>
707+
test
708+
</div>
709+
}
710+
`,
711+
output: `
712+
const F = () => {
713+
const foo = true
714+
? <div id="id">test</div>
715+
: false;
716+
717+
return <div
718+
id="id"
719+
>
720+
test
721+
</div>
722+
}
723+
`,
724+
options: [
725+
{
726+
indentMode: 2,
727+
ignoreTernaryOperator: true,
728+
},
729+
],
730+
errors: [
731+
{
732+
messageId: 'wrongIndent',
733+
data: {
734+
needed: 12,
735+
type: 'space',
736+
characters: 'characters',
737+
gotten: 14,
738+
},
739+
},
740+
],
741+
},
610742
]),
611743
});

0 commit comments

Comments
 (0)