diff --git a/packages/core/test/linker/change_detection_integration_spec.ts b/packages/core/test/linker/change_detection_integration_spec.ts index 103ce26c12..d6310b3162 100644 --- a/packages/core/test/linker/change_detection_integration_spec.ts +++ b/packages/core/test/linker/change_detection_integration_spec.ts @@ -1472,26 +1472,28 @@ const TEST_COMPILER_PROVIDERS: Provider[] = [ expect(log).toEqual(['inner-start', 'main-tpl', 'outer-tpl']); }); - fixmeIvy('unknown').it( - 'should dirty check projected views if the declaration place is dirty checked', () => { - ctx.detectChanges(false); - log = []; - innerComp.cdRef.detach(); - mainComp.cdRef.detectChanges(); + fixmeIvy( + 'FW-842: View engine dirty-checks projected views when the declaration place is checked') + .it('should dirty check projected views if the declaration place is dirty checked', + () => { + ctx.detectChanges(false); + log = []; + innerComp.cdRef.detach(); + mainComp.cdRef.detectChanges(); - expect(log).toEqual(['main-start', 'outer-start', 'main-tpl', 'outer-tpl']); + expect(log).toEqual(['main-start', 'outer-start', 'main-tpl', 'outer-tpl']); - log = []; - outerComp.cdRef.detectChanges(); + log = []; + outerComp.cdRef.detectChanges(); - expect(log).toEqual(['outer-start', 'outer-tpl']); + expect(log).toEqual(['outer-start', 'outer-tpl']); - log = []; - outerComp.cdRef.detach(); - mainComp.cdRef.detectChanges(); + log = []; + outerComp.cdRef.detach(); + mainComp.cdRef.detectChanges(); - expect(log).toEqual(['main-start', 'main-tpl']); - }); + expect(log).toEqual(['main-start', 'main-tpl']); + }); }); }); diff --git a/packages/core/test/linker/projection_integration_spec.ts b/packages/core/test/linker/projection_integration_spec.ts index 182e5baa46..105705b263 100644 --- a/packages/core/test/linker/projection_integration_spec.ts +++ b/packages/core/test/linker/projection_integration_spec.ts @@ -371,8 +371,8 @@ describe('projection', () => { }); if (getDOM().supportsNativeShadowDOM()) { - fixmeIvy('unknown').it( - 'should support native content projection and isolate styles per component', () => { + fixmeIvy('FW-841: Content projection with ShadovDom v0 doesn\'t work') + .it('should support native content projection and isolate styles per component', () => { TestBed.configureTestingModule({declarations: [SimpleNative1, SimpleNative2]}); TestBed.overrideComponent(MainComp, { set: { diff --git a/packages/core/test/linker/regression_integration_spec.ts b/packages/core/test/linker/regression_integration_spec.ts index 92f79c131c..f9ad4fc06f 100644 --- a/packages/core/test/linker/regression_integration_spec.ts +++ b/packages/core/test/linker/regression_integration_spec.ts @@ -428,83 +428,84 @@ function declareTestsUsingBootstrap() { if (getDOM().supportsDOMEvents()) { // This test needs a real DOM.... - fixmeIvy('unknown').it('should keep change detecting if there was an error', (done) => { - @Component({ - selector: COMP_SELECTOR, - template: - 'Value:{{value}}{{throwIfNeeded()}}' - }) - class ErrorComp { - value = 0; - thrownValue = 0; - next() { this.value++; } - nextAndThrow() { - this.value++; - this.throwIfNeeded(); - } - throwIfNeeded() { - NgZone.assertInAngularZone(); - if (this.thrownValue !== this.value) { - this.thrownValue = this.value; - throw new Error(`Error: ${this.value}`); + fixmeIvy('FW-840: Exceptions thrown in event handlers are not reported to ErrorHandler') + .it('should keep change detecting if there was an error', (done) => { + @Component({ + selector: COMP_SELECTOR, + template: + 'Value:{{value}}{{throwIfNeeded()}}' + }) + class ErrorComp { + value = 0; + thrownValue = 0; + next() { this.value++; } + nextAndThrow() { + this.value++; + this.throwIfNeeded(); + } + throwIfNeeded() { + NgZone.assertInAngularZone(); + if (this.thrownValue !== this.value) { + this.thrownValue = this.value; + throw new Error(`Error: ${this.value}`); + } + } } - } - } - @Directive({selector: '[dirClick]'}) - class EventDir { - @Output() - dirClick = new EventEmitter(); + @Directive({selector: '[dirClick]'}) + class EventDir { + @Output() + dirClick = new EventEmitter(); - @HostListener('click', ['$event']) - onClick(event: any) { this.dirClick.next(event); } - } + @HostListener('click', ['$event']) + onClick(event: any) { this.dirClick.next(event); } + } - @NgModule({ - imports: [BrowserModule], - declarations: [ErrorComp, EventDir], - bootstrap: [ErrorComp], - providers: [{provide: ErrorHandler, useValue: errorHandler}], - }) - class TestModule { - } + @NgModule({ + imports: [BrowserModule], + declarations: [ErrorComp, EventDir], + bootstrap: [ErrorComp], + providers: [{provide: ErrorHandler, useValue: errorHandler}], + }) + class TestModule { + } - platformBrowserDynamic().bootstrapModule(TestModule).then((ref) => { - NgZone.assertNotInAngularZone(); - const appRef = ref.injector.get(ApplicationRef) as ApplicationRef; - const compRef = appRef.components[0] as ComponentRef; - const compEl = compRef.location.nativeElement; - const nextBtn = compEl.children[0]; - const nextAndThrowBtn = compEl.children[1]; - const nextAndThrowDirBtn = compEl.children[2]; + platformBrowserDynamic().bootstrapModule(TestModule).then((ref) => { + NgZone.assertNotInAngularZone(); + const appRef = ref.injector.get(ApplicationRef) as ApplicationRef; + const compRef = appRef.components[0] as ComponentRef; + const compEl = compRef.location.nativeElement; + const nextBtn = compEl.children[0]; + const nextAndThrowBtn = compEl.children[1]; + const nextAndThrowDirBtn = compEl.children[2]; - nextBtn.click(); - assertValueAndErrors(compEl, 1, 0); - nextBtn.click(); - assertValueAndErrors(compEl, 2, 2); + nextBtn.click(); + assertValueAndErrors(compEl, 1, 0); + nextBtn.click(); + assertValueAndErrors(compEl, 2, 2); - nextAndThrowBtn.click(); - assertValueAndErrors(compEl, 3, 4); - nextAndThrowBtn.click(); - assertValueAndErrors(compEl, 4, 6); + nextAndThrowBtn.click(); + assertValueAndErrors(compEl, 3, 4); + nextAndThrowBtn.click(); + assertValueAndErrors(compEl, 4, 6); - nextAndThrowDirBtn.click(); - assertValueAndErrors(compEl, 5, 8); - nextAndThrowDirBtn.click(); - assertValueAndErrors(compEl, 6, 10); + nextAndThrowDirBtn.click(); + assertValueAndErrors(compEl, 5, 8); + nextAndThrowDirBtn.click(); + assertValueAndErrors(compEl, 6, 10); - // Assert that there were no more errors - expect(logger.errors.length).toBe(12); - done(); - }); + // Assert that there were no more errors + expect(logger.errors.length).toBe(12); + done(); + }); - function assertValueAndErrors(compEl: any, value: number, errorIndex: number) { - expect(compEl).toHaveText(`Value:${value}`); - expect(logger.errors[errorIndex][0]).toBe('ERROR'); - expect(logger.errors[errorIndex][1].message).toBe(`Error: ${value}`); - expect(logger.errors[errorIndex + 1][0]).toBe('ERROR CONTEXT'); - } - }); + function assertValueAndErrors(compEl: any, value: number, errorIndex: number) { + expect(compEl).toHaveText(`Value:${value}`); + expect(logger.errors[errorIndex][0]).toBe('ERROR'); + expect(logger.errors[errorIndex][1].message).toBe(`Error: ${value}`); + expect(logger.errors[errorIndex + 1][0]).toBe('ERROR CONTEXT'); + } + }); } }); }