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; }
}

View File

@ -985,6 +985,10 @@ window.testBlocklist = {
"error": "Error: Expected mat-slide-toggle-thumb-container to contain 'mat-dragging'.",
"notes": "Unknown"
},
"MatSlideToggle without forms custom action configuration should not change value on click when click action is noop": {
"error": "TypeError: this._inputElement is undefined",
"notes": "Unknown"
},
"MatDrawer methods should be able to open": {
"error": "Error: Expected 0 to be 1.",
"notes": "Unknown"