test(core): ngOnDestroy called before output events are detached (#9946)
closes #6984 closes #5436
This commit is contained in:
parent
1bd858fb43
commit
752edca81b
|
@ -84,6 +84,7 @@ export function main() {
|
||||||
CompWithRef,
|
CompWithRef,
|
||||||
EmitterDirective,
|
EmitterDirective,
|
||||||
PushComp,
|
PushComp,
|
||||||
|
OnDestroyDirective,
|
||||||
OrderCheckDirective2,
|
OrderCheckDirective2,
|
||||||
OrderCheckDirective0,
|
OrderCheckDirective0,
|
||||||
OrderCheckDirective1,
|
OrderCheckDirective1,
|
||||||
|
@ -1040,7 +1041,16 @@ export function main() {
|
||||||
]);
|
]);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should call ngOnDestory on pipes', fakeAsync(() => {
|
it('should deliver synchronous events to parent', fakeAsync(() => {
|
||||||
|
var ctx = createCompFixture('<div (destroy)="a=$event" onDestroyDirective></div>');
|
||||||
|
|
||||||
|
ctx.detectChanges(false);
|
||||||
|
ctx.destroy();
|
||||||
|
|
||||||
|
expect(ctx.componentInstance.a).toEqual('destroyed');
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should call ngOnDestroy on pipes', fakeAsync(() => {
|
||||||
var ctx = createCompFixture('{{true | pipeWithOnDestroy }}');
|
var ctx = createCompFixture('{{true | pipeWithOnDestroy }}');
|
||||||
|
|
||||||
ctx.detectChanges(false);
|
ctx.detectChanges(false);
|
||||||
|
@ -1442,6 +1452,13 @@ class InjectableWithLifecycle {
|
||||||
ngOnDestroy() { this.log.add(this.name, 'ngOnDestroy'); }
|
ngOnDestroy() { this.log.add(this.name, 'ngOnDestroy'); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Directive({selector: '[onDestroyDirective]'})
|
||||||
|
class OnDestroyDirective implements OnDestroy {
|
||||||
|
@Output('destroy') emitter = new EventEmitter<string>(false);
|
||||||
|
|
||||||
|
ngOnDestroy() { this.emitter.emit('destroyed'); }
|
||||||
|
}
|
||||||
|
|
||||||
@Directive({selector: '[orderCheck0]'})
|
@Directive({selector: '[orderCheck0]'})
|
||||||
class OrderCheckDirective0 {
|
class OrderCheckDirective0 {
|
||||||
private _name: string;
|
private _name: string;
|
||||||
|
|
Loading…
Reference in New Issue