diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/widgetsSpec.js | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 4aa36428..b93d698d 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -254,7 +254,7 @@ describe("widget", function() { 'ng:bind="key + \':\' + val + $index + \'|\'"></li></ul>'); scope.items = {'misko':'m', 'shyam':'s', 'frodo':'f'}; scope.$digest(); - expect(element.text()).toEqual('misko:m0|shyam:s1|frodo:f2|'); + expect(element.text()).toEqual('frodo:f0|misko:m1|shyam:s2|'); }); it('should expose iterator position as $position when iterating over arrays', function() { @@ -282,7 +282,7 @@ describe("widget", function() { '</ul>'); scope.items = {'misko':'m', 'shyam':'s', 'doug':'d', 'frodo':'f'}; scope.$digest(); - expect(element.text()).toEqual('misko:m:first|shyam:s:middle|doug:d:middle|frodo:f:last|'); + expect(element.text()).toEqual('doug:d:first|frodo:f:middle|misko:m:middle|shyam:s:last|'); delete scope.items.doug; delete scope.items.frodo; @@ -312,6 +312,26 @@ describe("widget", function() { expect(element.text()).toEqual('a|b|Xc|d|X'); }); + it('should ignore non-array element properties when iterating over an array', function() { + var scope = compile('<ul><li ng:repeat="item in array">{{item}}|</li></ul>'); + scope.array = ['a', 'b', 'c']; + scope.array.foo = '23'; + scope.array.bar = function() {}; + scope.$digest(); + + expect(element.text()).toBe('a|b|c|'); + }); + + it('should iterate over non-existent elements of a sparse array', function() { + var scope = compile('<ul><li ng:repeat="item in array">{{item}}|</li></ul>'); + scope.array = ['a', 'b']; + scope.array[4] = 'c'; + scope.array[6] = 'd'; + scope.$digest(); + + expect(element.text()).toBe('a|b|||c||d|'); + }); + describe('stability', function() { var a, b, c, d, scope, lis; |
