feat(forms): allow markAsPending to emit events (#20212)
closes #17958 BREAKING CHANGE: - `AbstractControl#statusChanges` now emits an event of `'PENDING'` when you call `AbstractControl#markAsPending` - Previously it did not emit an event when you called `markAsPending` - To migrate you would need to ensure that if you are filtering or checking events from `statusChanges` that you account for the new event when calling `markAsPending` PR Close #20212
This commit is contained in:

committed by
Victor Berchet

parent
90e9c59e23
commit
e86b64b620
@ -622,6 +622,36 @@ import {of } from 'rxjs/observable/of';
|
||||
expect(c.pending).toEqual(true);
|
||||
expect(a.pending).toEqual(false);
|
||||
});
|
||||
|
||||
describe('status change events', () => {
|
||||
let logger: string[];
|
||||
|
||||
beforeEach(() => {
|
||||
logger = [];
|
||||
a.statusChanges.subscribe((status) => logger.push(status));
|
||||
});
|
||||
|
||||
it('should emit event after marking control as pending', () => {
|
||||
c.markAsPending();
|
||||
expect(logger).toEqual(['PENDING']);
|
||||
});
|
||||
|
||||
it('should not emit event from parent when onlySelf is true', () => {
|
||||
c.markAsPending({onlySelf: true});
|
||||
expect(logger).toEqual([]);
|
||||
});
|
||||
|
||||
it('should not emit event when emitEvent = false', () => {
|
||||
c.markAsPending({emitEvent: false});
|
||||
expect(logger).toEqual([]);
|
||||
});
|
||||
|
||||
it('should emit event when parent is markedAsPending', () => {
|
||||
a.markAsPending();
|
||||
expect(logger).toEqual(['PENDING']);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('valueChanges', () => {
|
||||
|
Reference in New Issue
Block a user