diff options
Diffstat (limited to 'test/ng/directive/ngRepeatSpec.js')
| -rw-r--r-- | test/ng/directive/ngRepeatSpec.js | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/test/ng/directive/ngRepeatSpec.js b/test/ng/directive/ngRepeatSpec.js index 5cb7196b..72382591 100644 --- a/test/ng/directive/ngRepeatSpec.js +++ b/test/ng/directive/ngRepeatSpec.js @@ -104,42 +104,58 @@ describe('ngRepeat', function() { })); - it('should expose iterator position as $position when iterating over arrays', + it('should expose iterator position as $first, $middle and $last when iterating over arrays', inject(function($rootScope, $compile) { element = $compile( '<ul>' + - '<li ng-repeat="item in items" ng-bind="item + \':\' + $position + \'|\'"></li>' + + '<li ng-repeat="item in items">{{item}}:{{$first}}-{{$middle}}-{{$last}}|</li>' + '</ul>')($rootScope); $rootScope.items = ['misko', 'shyam', 'doug']; $rootScope.$digest(); - expect(element.text()).toEqual('misko:first|shyam:middle|doug:last|'); + expect(element.text()). + toEqual('misko:true-false-false|shyam:false-true-false|doug:false-false-true|'); $rootScope.items.push('frodo'); $rootScope.$digest(); - expect(element.text()).toEqual('misko:first|shyam:middle|doug:middle|frodo:last|'); + expect(element.text()). + toEqual('misko:true-false-false|' + + 'shyam:false-true-false|' + + 'doug:false-true-false|' + + 'frodo:false-false-true|'); $rootScope.items.pop(); $rootScope.items.pop(); $rootScope.$digest(); - expect(element.text()).toEqual('misko:first|shyam:last|'); + expect(element.text()).toEqual('misko:true-false-false|shyam:false-false-true|'); + + $rootScope.items.pop(); + $rootScope.$digest(); + expect(element.text()).toEqual('misko:true-false-true|'); })); - it('should expose iterator position as $position when iterating over objects', + it('should expose iterator position as $first, $middle and $last when iterating over objects', inject(function($rootScope, $compile) { element = $compile( '<ul>' + - '<li ng-repeat="(key, val) in items" ng-bind="key + \':\' + val + \':\' + $position + \'|\'">' + - '</li>' + + '<li ng-repeat="(key, val) in items">{{key}}:{{val}}:{{$first}}-{{$middle}}-{{$last}}|</li>' + '</ul>')($rootScope); $rootScope.items = {'misko':'m', 'shyam':'s', 'doug':'d', 'frodo':'f'}; $rootScope.$digest(); - expect(element.text()).toEqual('doug:d:first|frodo:f:middle|misko:m:middle|shyam:s:last|'); + expect(element.text()). + toEqual('doug:d:true-false-false|' + + 'frodo:f:false-true-false|' + + 'misko:m:false-true-false|' + + 'shyam:s:false-false-true|'); delete $rootScope.items.doug; delete $rootScope.items.frodo; $rootScope.$digest(); - expect(element.text()).toEqual('misko:m:first|shyam:s:last|'); + expect(element.text()).toEqual('misko:m:true-false-false|shyam:s:false-false-true|'); + + delete $rootScope.items.shyam; + $rootScope.$digest(); + expect(element.text()).toEqual('misko:m:true-false-true|'); })); @@ -207,7 +223,7 @@ describe('ngRepeat', function() { beforeEach(inject(function($rootScope, $compile) { element = $compile( '<ul>' + - '<li ng-repeat="item in items" ng-bind="key + \':\' + val + \':\' + $position + \'|\'"></li>' + + '<li ng-repeat="item in items">{{key}}:{{val}}|></li>' + '</ul>')($rootScope); a = {}; b = {}; |
