From 06534413d3a33193853c39d0f9081709aac3908f Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 2 Sep 2011 22:59:59 -0700 Subject: fix(ng:options): ng:change should be called after the new val is set Closes #547 --- test/widgetsSpec.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'test/widgetsSpec.js') 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(){ -- cgit v1.2.3