diff --git a/src/lib/chips/chip-list.spec.ts b/src/lib/chips/chip-list.spec.ts index 5f006e427acc..e69fc81bff4f 100644 --- a/src/lib/chips/chip-list.spec.ts +++ b/src/lib/chips/chip-list.spec.ts @@ -345,6 +345,15 @@ describe('MatChipList', () => { }); }); + it('should complete the stateChanges stream on destroy', () => { + const spy = jasmine.createSpy('stateChanges complete'); + const subscription = chipListInstance.stateChanges.subscribe(undefined, undefined, spy); + + fixture.destroy(); + expect(spy).toHaveBeenCalled(); + subscription.unsubscribe(); + }); + }); describe('selection logic', () => { diff --git a/src/lib/chips/chip-list.ts b/src/lib/chips/chip-list.ts index c5e0451731a0..1241dac4cc04 100644 --- a/src/lib/chips/chip-list.ts +++ b/src/lib/chips/chip-list.ts @@ -359,6 +359,7 @@ export class MatChipList implements MatFormFieldControl, ControlValueAccess this._changeSubscription.unsubscribe(); } this._dropSubscriptions(); + this.stateChanges.complete(); }