@@ -146,4 +146,147 @@ describe('Expression', function() {
146146 }
147147 bindThenCheck ( data , tpl , task , expected , done )
148148 } )
149+
150+ it ( 'array push' , function ( done ) {
151+ var tpl = '{{#each list}}<p>{{array}}</p>{{/each}}'
152+ var data = {
153+ list : [ {
154+ array : [ 0 ]
155+ } , {
156+ array : [ 0 , 1 ]
157+ } , {
158+ array : [ 0 , 1 , 2 ]
159+ } ]
160+ }
161+ var task = function ( ) {
162+ data . list . push ( {
163+ array : [ 0 , 1 , 2 , 3 ]
164+ } )
165+ }
166+ var before = function ( container ) {
167+ expect ( container . find ( 'p' ) ) . to . have . length ( 3 )
168+ }
169+ var expected = function ( container ) {
170+ expect ( container . find ( 'p' ) ) . to . have . length ( 4 )
171+ }
172+ bindThenCheck ( data , tpl , task , expected , done , before )
173+ } )
174+ it ( 'array push push' , function ( done ) {
175+ var tpl = '{{#each list}}<p>{{array}}</p>{{/each}}'
176+ var data = {
177+ list : [ {
178+ array : [ 0 ]
179+ } , {
180+ array : [ 0 , 1 ]
181+ } , {
182+ array : [ 0 , 1 , 2 ]
183+ } ]
184+ }
185+ var task = function ( ) {
186+ data . list [ 0 ] . array . push ( 1 )
187+ }
188+ var before = function ( container ) {
189+ expect ( container . find ( 'p:eq(0)' ) . text ( ) ) . to . equal ( '0' )
190+ }
191+ var expected = function ( container ) {
192+ expect ( container . find ( 'p:eq(0)' ) . text ( ) ) . to . equal ( '0,1' )
193+ }
194+ bindThenCheck ( data , tpl , task , expected , done , before )
195+ } )
196+ it ( 'array pop' , function ( done ) {
197+ var tpl = '{{#each list}}<p>{{array}}</p>{{/each}}'
198+ var data = {
199+ list : [ {
200+ array : [ 0 ]
201+ } , {
202+ array : [ 0 , 1 ]
203+ } , {
204+ array : [ 0 , 1 , 2 ]
205+ } ]
206+ }
207+ var task = function ( ) {
208+ data . list . pop ( )
209+ }
210+ var before = function ( container ) {
211+ expect ( container . find ( 'p' ) ) . to . have . length ( 3 )
212+ }
213+ var expected = function ( container ) {
214+ expect ( container . find ( 'p' ) ) . to . have . length ( 2 )
215+ }
216+ bindThenCheck ( data , tpl , task , expected , done , before )
217+ } )
218+ it ( 'array pop pop' , function ( done ) {
219+ var tpl = '{{#each list}}<p>{{array}}</p>{{/each}}'
220+ var data = {
221+ list : [ {
222+ array : [ 0 ]
223+ } , {
224+ array : [ 0 , 1 ]
225+ } , {
226+ array : [ 0 , 1 , 2 ]
227+ } ]
228+ }
229+ var task = function ( ) {
230+ data . list [ 1 ] . array . pop ( )
231+ }
232+ var before = function ( container ) {
233+ expect ( container . find ( 'p:eq(1)' ) . text ( ) ) . to . equal ( '0,1' )
234+ }
235+ var expected = function ( container ) {
236+ expect ( container . find ( 'p:eq(1)' ) . text ( ) ) . to . equal ( '0' )
237+ }
238+ bindThenCheck ( data , tpl , task , expected , done , before )
239+ } )
240+ it ( 'array sort' , function ( done ) {
241+ var tpl = '{{#each list}}<p>{{array}}</p>{{/each}}'
242+ var data = {
243+ list : [ {
244+ array : [ 0 ]
245+ } , {
246+ array : [ 0 , 1 ]
247+ } , {
248+ array : [ 0 , 1 , 2 ]
249+ } ]
250+ }
251+ var task = function ( ) {
252+ data . list . sort ( function ( a , b ) {
253+ return b . array . length - a . array . length
254+ } )
255+ }
256+ var before = function ( container ) {
257+ expect ( container . find ( 'p:eq(0)' ) . text ( ) ) . to . equal ( '0' )
258+ expect ( container . find ( 'p:eq(1)' ) . text ( ) ) . to . equal ( '0,1' )
259+ expect ( container . find ( 'p:eq(2)' ) . text ( ) ) . to . equal ( '0,1,2' )
260+ }
261+ var expected = function ( container ) {
262+ expect ( container . find ( 'p:eq(2)' ) . text ( ) ) . to . equal ( '0' )
263+ expect ( container . find ( 'p:eq(1)' ) . text ( ) ) . to . equal ( '0,1' )
264+ expect ( container . find ( 'p:eq(0)' ) . text ( ) ) . to . equal ( '0,1,2' )
265+ }
266+ bindThenCheck ( data , tpl , task , expected , done , before )
267+ } )
268+ // it('array sort sort', function(done) {
269+ // var tpl = '{{#each list}}<p>{{array}}</p>{{/each}}'
270+ // var data = {
271+ // list: [{
272+ // array: [0]
273+ // }, {
274+ // array: [0, 1]
275+ // }, {
276+ // array: [0, 1, 2]
277+ // }]
278+ // }
279+ // var task = function() {
280+ // data.list[1].array.sort(function(a, b) {
281+ // return b - a
282+ // })
283+ // }
284+ // var before = function(container) {
285+ // expect(container.find('p:eq(1)').text()).to.equal('0,1')
286+ // }
287+ // var expected = function(container) {
288+ // expect(container.find('p:eq(1)').text()).to.equal('1,0')
289+ // }
290+ // bindThenCheck(data, tpl, task, expected, done, before)
291+ // })
149292} )
0 commit comments