fix(forms): support unbound disabled in ngModel (#11736)

This commit is contained in:
Kara
2016-09-20 14:55:47 -07:00
committed by Alex Eagle
parent d95344430c
commit 44da4984f9
3 changed files with 68 additions and 2 deletions

View File

@ -485,7 +485,7 @@ export function main() {
});
describe('NgModel', () => {
var ngModel: any /** TODO #9100 */;
let ngModel: NgModel;
beforeEach(() => {
ngModel = new NgModel(
@ -539,6 +539,45 @@ export function main() {
expect(ngModel.control.errors).toEqual({'async': true});
}));
it('should mark as disabled properly', fakeAsync(() => {
ngModel.ngOnChanges({isDisabled: new SimpleChange('', undefined)});
tick();
expect(ngModel.control.disabled).toEqual(false);
ngModel.ngOnChanges({isDisabled: new SimpleChange('', null)});
tick();
expect(ngModel.control.disabled).toEqual(false);
ngModel.ngOnChanges({isDisabled: new SimpleChange('', false)});
tick();
expect(ngModel.control.disabled).toEqual(false);
ngModel.ngOnChanges({isDisabled: new SimpleChange('', 'false')});
tick();
expect(ngModel.control.disabled).toEqual(false);
ngModel.ngOnChanges({isDisabled: new SimpleChange('', 0)});
tick();
expect(ngModel.control.disabled).toEqual(false);
ngModel.ngOnChanges({isDisabled: new SimpleChange(null, '')});
tick();
expect(ngModel.control.disabled).toEqual(true);
ngModel.ngOnChanges({isDisabled: new SimpleChange(null, 'true')});
tick();
expect(ngModel.control.disabled).toEqual(true);
ngModel.ngOnChanges({isDisabled: new SimpleChange(null, true)});
tick();
expect(ngModel.control.disabled).toEqual(true);
ngModel.ngOnChanges({isDisabled: new SimpleChange(null, 'anything else')});
tick();
expect(ngModel.control.disabled).toEqual(true);
}));
});
describe('FormControlName', () => {