diff options
| author | Igor Minar | 2011-09-02 22:59:59 -0700 | 
|---|---|---|
| committer | Igor Minar | 2011-09-07 23:37:37 -0700 | 
| commit | 06534413d3a33193853c39d0f9081709aac3908f (patch) | |
| tree | def8ddd93eb71175360bf4dab4593be9e2cd489d /test/widgetsSpec.js | |
| parent | e54909f5efa37cd4013d7f21a77817ea459cde64 (diff) | |
| download | angular.js-06534413d3a33193853c39d0f9081709aac3908f.tar.bz2 | |
fix(ng:options): ng:change should be called after the new val is set
Closes #547
Diffstat (limited to 'test/widgetsSpec.js')
| -rw-r--r-- | test/widgetsSpec.js | 16 | 
1 files changed, 11 insertions, 5 deletions
diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 235f5492..42220201 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -900,22 +900,28 @@ describe("widget", function(){          createSelect({            name:'selected',            'ng:options':'value for value in values', -          'ng:change':'count = count + 1' +          'ng:change':'log = log + selected.name'          });          scope.values = [{name:'A'}, {name:'B'}];          scope.selected = scope.values[0]; -        scope.count = 0; +        scope.log = '';          scope.$digest(); -        expect(scope.count).toEqual(0); +        expect(scope.log).toEqual('');          select.val('1');          browserTrigger(select, 'change'); -        expect(scope.count).toEqual(1); +        expect(scope.log).toEqual('B');          expect(scope.selected).toEqual(scope.values[1]); +        // ignore change event when the model doesn't change          browserTrigger(select, 'change'); -        expect(scope.count).toEqual(1); +        expect(scope.log).toEqual('B');          expect(scope.selected).toEqual(scope.values[1]); + +        select.val('0'); +        browserTrigger(select, 'change'); +        expect(scope.log).toEqual('BA'); +        expect(scope.selected).toEqual(scope.values[0]);        });        it('should update model on change through expression', function(){  | 
