aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/directive/ngRepeatSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/ng/directive/ngRepeatSpec.js')
-rw-r--r--test/ng/directive/ngRepeatSpec.js38
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 = {};