fix(ivy): rethrow event handler errors in tests (#28707)

Currently errors thrown inside event handler in Ivy are caught and forwarded to the `ErrorHandler`, however this means that if they happen during a unit test, the test won't fail. These changes add a test-specific `ErrorHandler` that throws the error rather than logging it out.

PR Close #28707
This commit is contained in:
Kristiyan Kostadinov
2019-02-13 22:06:42 +01:00
committed by Miško Hevery
parent 83fd66d1d0
commit 63e5d2787b
2 changed files with 11 additions and 0 deletions

View File

@ -15,6 +15,7 @@ import {
Compiler,
Component,
Directive,
ErrorHandler,
Injector,
ModuleWithComponentFactories,
NgModule,
@ -600,6 +601,7 @@ export class TestBedRender3 implements Injector, TestBed {
const providers = [
{provide: NgZone, useValue: ngZone},
{provide: Compiler, useFactory: () => new R3TestCompiler(this)},
{provide: ErrorHandler, useClass: R3TestErrorHandler},
...this._providers,
...this._providerOverrides,
];
@ -813,3 +815,8 @@ class R3TestCompiler implements Compiler {
return meta && meta.id || undefined;
}
}
/** Error handler used for tests. Rethrows errors rather than logging them out. */
class R3TestErrorHandler extends ErrorHandler {
handleError(error: any) { throw error; }
}