diff options
| author | Brian Ford | 2013-07-18 14:22:04 -0700 | 
|---|---|---|
| committer | Brian Ford | 2013-07-18 16:10:38 -0700 | 
| commit | 715d97d5c87c9250f8ac8b5801b8c7f3b197e815 (patch) | |
| tree | b00bfe958b9eb33b556a587d82e663fe2585e2ce /test | |
| parent | ef4458a798b6736050436bb63e5a5c90ce958790 (diff) | |
| download | angular.js-715d97d5c87c9250f8ac8b5801b8c7f3b197e815.tar.bz2 | |
test(ngRepeat): add a test for ngRepeat when using 'track by' and a filter
Diffstat (limited to 'test')
| -rw-r--r-- | test/ng/directive/ngRepeatSpec.js | 48 | 
1 files changed, 48 insertions, 0 deletions
diff --git a/test/ng/directive/ngRepeatSpec.js b/test/ng/directive/ngRepeatSpec.js index 21ea21e9..6506e060 100644 --- a/test/ng/directive/ngRepeatSpec.js +++ b/test/ng/directive/ngRepeatSpec.js @@ -125,6 +125,54 @@ describe('ngRepeat', function() {      }); +    it('should still filter when track is present', function() { +      scope.isIgor = function (item) { +        return item.name === 'igor'; +      }; +      element = $compile( +          '<ul>' + +            '<li ng-repeat="item in items | filter:isIgor track by $id(item)">{{item.name}};</li>' + +          '</ul>')(scope); +      scope.items = [{name: 'igor'}, {name: 'misko'}]; +      scope.$digest(); + +      expect(element.find('li').text()).toBe('igor;'); +    }); + + +    it('should track using provided function when a filter is present', function() { +      scope.newArray = function (items) { +        var newArray = []; +        angular.forEach(items, function (item) { +          newArray.push({ +            id: item.id, +            name: item.name +          }); +        }); +        return newArray; +      }; +      element = $compile( +          '<ul>' + +            '<li ng-repeat="item in items | filter:newArray track by item.id">{{item.name}};</li>' + +          '</ul>')(scope); +      scope.items = [ +        {id: 1, name: 'igor'}, +        {id: 2, name: 'misko'} +      ]; +      scope.$digest(); + +      expect(element.text()).toBe('igor;misko;'); + +      var li0 = element.find('li')[0]; +      var li1 = element.find('li')[1]; + +      scope.items.push(scope.items.shift()); +      scope.$digest(); +      expect(element.find('li')[0]).toBe(li1); +      expect(element.find('li')[1]).toBe(li0); +    }); + +      it('should iterate over an array of primitives', function() {        element = $compile(            '<ul>' +  | 
