From 48568b49dc74038fb74b951bb7fe698875366b15 Mon Sep 17 00:00:00 2001 From: Erin Altenhof-Long Date: Wed, 16 Jul 2014 15:11:52 -0700 Subject: [PATCH] test(select): add test of updating the model because of ng-change A regression #7855 was introduced by https://github.com/angular/angular.js/commit/dc149de9364c66b988f169f67cad39577ba43434 This test ensures that reverting that commit fixes this regression. In the regression, changes to a bound model in ng-change were not propagated back to the view. Test for #7855 --- test/ng/directive/selectSpec.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/ng/directive/selectSpec.js b/test/ng/directive/selectSpec.js index 43ab3a8a..53718086 100644 --- a/test/ng/directive/selectSpec.js +++ b/test/ng/directive/selectSpec.js @@ -1148,6 +1148,31 @@ describe('select', function() { browserTrigger(element, 'change'); expect(scope.selected).toEqual(null); }); + + + // Regression https://github.com/angular/angular.js/issues/7855 + it('should update the model with ng-change', function() { + createSelect({ + 'ng-change':'change()', + 'ng-model':'selected', + 'ng-options':'value for value in values' + }); + + scope.$apply(function() { + scope.values = ['A', 'B']; + scope.selected = 'A'; + }); + + scope.change = function() { + scope.selected = 'A'; + }; + + element.find('option')[1].selected = true; + + browserTrigger(element, 'change'); + expect(element.find('option')[0].selected).toBeTruthy(); + expect(scope.selected).toEqual('A'); + }); }); describe('disabled blank', function() { @@ -1237,6 +1262,7 @@ describe('select', function() { expect(scope.selected).toEqual([scope.values[0]]); }); + it('should select from object', function() { createSelect({ 'ng-model':'selected',