@@ -40,37 +40,58 @@ ruleTester.run('template-no-obscure-array-access', rule, {
4040
4141 {
4242 code : '<template><Foo @onClick={{fn this.func @foo.0.bar}} /></template>' ,
43- output : null ,
43+ output : '<template><Foo @onClick={{fn this.func (get @foo "0.bar")}} /></template>' ,
4444 errors : [ { messageId : 'noObscureArrayAccess' } ] ,
4545 } ,
4646 {
4747 code : '<template>{{foo bar=this.list.[0]}}</template>' ,
48- output : null ,
48+ output : '<template>{{foo bar=(get this.list "0")}}</template>' ,
4949 errors : [ { messageId : 'noObscureArrayAccess' } ] ,
5050 } ,
5151 {
5252 code : '<template>{{foo bar=@list.[1]}}</template>' ,
53- output : null ,
53+ output : '<template>{{foo bar=(get @list "1")}}</template>' ,
5454 errors : [ { messageId : 'noObscureArrayAccess' } ] ,
5555 } ,
5656 {
5757 code : '<template>{{this.list.[0]}}</template>' ,
58- output : null ,
58+ output : '<template>{{get this.list "0"}}</template>' ,
5959 errors : [ { messageId : 'noObscureArrayAccess' } ] ,
6060 } ,
6161 {
6262 code : '<template>{{this.list.[0].name}}</template>' ,
63- output : null ,
63+ output : '<template>{{get this.list "0.name"}}</template>' ,
6464 errors : [ { messageId : 'noObscureArrayAccess' } ] ,
6565 } ,
6666 {
6767 code : '<template><Foo @bar={{this.list.[0]}} /></template>' ,
68- output : null ,
68+ output : '<template><Foo @bar={{get this.list "0"}} /></template>' ,
6969 errors : [ { messageId : 'noObscureArrayAccess' } ] ,
7070 } ,
7171 {
7272 code : '<template><Foo @bar={{this.list.[0].name.[1].foo}} /></template>' ,
73- output : null ,
73+ output : '<template><Foo @bar={{get this.list "0.name.1.foo"}} /></template>' ,
74+ errors : [ { messageId : 'noObscureArrayAccess' } ] ,
75+ } ,
76+ // Regression: ember-template-lint#2926 — multi-line must NOT duplicate lines
77+ {
78+ code : `<template><Component
79+ title="<error>"
80+ id={{@model.0.id}}
81+ as |value|
82+ ></Component></template>` ,
83+ output : `<template><Component
84+ title="<error>"
85+ id={{get @model "0.id"}}
86+ as |value|
87+ ></Component></template>` ,
88+ errors : [ { messageId : 'noObscureArrayAccess' } ] ,
89+ } ,
90+ // Regression: ember-template-lint#2924 — must NOT eat preceding params
91+ {
92+ code : '<template><Button @onClick={{fn this.myFunc @row.0.sha256}}>Button</Button></template>' ,
93+ output :
94+ '<template><Button @onClick={{fn this.myFunc (get @row "0.sha256")}}>Button</Button></template>' ,
7495 errors : [ { messageId : 'noObscureArrayAccess' } ] ,
7596 } ,
7697 ] ,
@@ -102,7 +123,7 @@ hbsRuleTester.run('template-no-obscure-array-access', rule, {
102123 invalid : [
103124 {
104125 code : '<Foo @onClick={{fn this.func @foo.0.bar}} />' ,
105- output : null ,
126+ output : '<Foo @onClick={{fn this.func (get @foo "0.bar")}} />' ,
106127 errors : [
107128 {
108129 message :
@@ -112,7 +133,7 @@ hbsRuleTester.run('template-no-obscure-array-access', rule, {
112133 } ,
113134 {
114135 code : '{{foo bar=this.list.[0]}}' ,
115- output : null ,
136+ output : '{{foo bar=(get this.list "0")}}' ,
116137 errors : [
117138 {
118139 message :
@@ -122,7 +143,7 @@ hbsRuleTester.run('template-no-obscure-array-access', rule, {
122143 } ,
123144 {
124145 code : '{{foo bar=@list.[1]}}' ,
125- output : null ,
146+ output : '{{foo bar=(get @list "1")}}' ,
126147 errors : [
127148 {
128149 message :
@@ -132,7 +153,7 @@ hbsRuleTester.run('template-no-obscure-array-access', rule, {
132153 } ,
133154 {
134155 code : '{{this.list.[0]}}' ,
135- output : null ,
156+ output : '{{get this.list "0"}}' ,
136157 errors : [
137158 {
138159 message :
@@ -142,7 +163,7 @@ hbsRuleTester.run('template-no-obscure-array-access', rule, {
142163 } ,
143164 {
144165 code : '{{this.list.[0].name}}' ,
145- output : null ,
166+ output : '{{get this.list "0.name"}}' ,
146167 errors : [
147168 {
148169 message :
@@ -152,7 +173,7 @@ hbsRuleTester.run('template-no-obscure-array-access', rule, {
152173 } ,
153174 {
154175 code : '<Foo @bar={{this.list.[0]}} />' ,
155- output : null ,
176+ output : '<Foo @bar={{get this.list "0"}} />' ,
156177 errors : [
157178 {
158179 message :
@@ -162,7 +183,7 @@ hbsRuleTester.run('template-no-obscure-array-access', rule, {
162183 } ,
163184 {
164185 code : '<Foo @bar={{this.list.[0].name.[1].foo}} />' ,
165- output : null ,
186+ output : '<Foo @bar={{get this.list "0.name.1.foo"}} />' ,
166187 errors : [
167188 {
168189 message :
0 commit comments