mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
fix(select): complete state change event (#8777)
* fix(select): complete state change event * chore: add event test
This commit is contained in:
@@ -1778,6 +1778,25 @@ describe('MatSelect', () => {
|
||||
}));
|
||||
});
|
||||
|
||||
describe('change events', () => {
|
||||
beforeEach(async(() => configureMatSelectTestingModule([SelectWithPlainTabindex])));
|
||||
|
||||
it('should complete the stateChanges stream on destroy', () => {
|
||||
const fixture = TestBed.createComponent(SelectWithPlainTabindex);
|
||||
fixture.detectChanges();
|
||||
|
||||
const debugElement = fixture.debugElement.query(By.directive(MatSelect));
|
||||
const select = debugElement.componentInstance;
|
||||
|
||||
const spy = jasmine.createSpy('stateChanges complete');
|
||||
const subscription = select.stateChanges.subscribe(undefined, undefined, spy);
|
||||
|
||||
fixture.destroy();
|
||||
expect(spy).toHaveBeenCalled();
|
||||
subscription.unsubscribe();
|
||||
});
|
||||
});
|
||||
|
||||
describe('when initially hidden', () => {
|
||||
beforeEach(async(() => configureMatSelectTestingModule([BasicSelectInitiallyHidden])));
|
||||
|
||||
|
||||
@@ -509,6 +509,7 @@ export class MatSelect extends _MatSelectMixinBase implements AfterContentInit,
|
||||
ngOnDestroy() {
|
||||
this._destroy.next();
|
||||
this._destroy.complete();
|
||||
this.stateChanges.complete();
|
||||
}
|
||||
|
||||
/** Toggles the overlay panel open or closed. */
|
||||
|
||||
Reference in New Issue
Block a user