test(ivy): turn on platform-browser-dynamic tests on CI (#27940)

We missed removing the `fixme-ivy-aot` bazel tag from the BUILD file
of platform-browser-dynamic, so we weren't running the
`//packages/platform-browser-dynamic/test:test_web_chromium-local`
test target on CI. This commit turns on the tests and adds root causes
where they are known.

PR Close #27940
This commit is contained in:
Kara Erickson 2019-01-04 19:10:14 -08:00
parent 4c9aff5695
commit 6b0c1a71fa
4 changed files with 54 additions and 50 deletions

View File

@ -12,6 +12,7 @@ ts_library(
"//packages/platform-browser-dynamic", "//packages/platform-browser-dynamic",
"//packages/platform-browser-dynamic/testing", "//packages/platform-browser-dynamic/testing",
"//packages/platform-browser/testing", "//packages/platform-browser/testing",
"//packages/private/testing",
], ],
) )
@ -30,9 +31,6 @@ ts_web_test_suite(
"//packages/platform-browser/test:static_assets/test.html", "//packages/platform-browser/test:static_assets/test.html",
"//packages/platform-browser/test:browser/static_assets/200.html", "//packages/platform-browser/test:browser/static_assets/200.html",
], ],
tags = [
"fixme-ivy-aot",
],
deps = [ deps = [
":test_lib", ":test_lib",
], ],

View File

@ -9,11 +9,10 @@
import {ResourceLoader, UrlResolver} from '@angular/compiler'; import {ResourceLoader, UrlResolver} from '@angular/compiler';
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {TestBed, async, fakeAsync, tick} from '@angular/core/testing'; import {TestBed, async, fakeAsync, tick} from '@angular/core/testing';
import {CachedResourceLoader} from '@angular/platform-browser-dynamic/src/resource_loader/resource_loader_cache';
import {setTemplateCache} from '@angular/platform-browser-dynamic/test/resource_loader/resource_loader_cache_setter';
import {expect} from '@angular/platform-browser/testing/src/matchers'; import {expect} from '@angular/platform-browser/testing/src/matchers';
import {fixmeIvy} from '@angular/private/testing';
import {CachedResourceLoader} from '../../src/resource_loader/resource_loader_cache';
import {setTemplateCache} from './resource_loader_cache_setter';
if (isBrowser) { if (isBrowser) {
describe('CachedResourceLoader', () => { describe('CachedResourceLoader', () => {
@ -55,19 +54,20 @@ if (isBrowser) {
.catch((error) => {/** success */}); .catch((error) => {/** success */});
})); }));
it('should allow fakeAsync Tests to load components with templateUrl synchronously', fixmeIvy('FW-553: TestBed is unaware of async compilation')
fakeAsync(() => { .it('should allow fakeAsync Tests to load components with templateUrl synchronously',
TestBed.configureTestingModule({declarations: [TestComponent]}); fakeAsync(() => {
TestBed.compileComponents(); TestBed.configureTestingModule({declarations: [TestComponent]});
tick(); TestBed.compileComponents();
tick();
const fixture = TestBed.createComponent(TestComponent); const fixture = TestBed.createComponent(TestComponent);
// This should initialize the fixture. // This should initialize the fixture.
tick(); tick();
expect(fixture.debugElement.children[0].nativeElement).toHaveText('Hello'); expect(fixture.debugElement.children[0].nativeElement).toHaveText('Hello');
})); }));
}); });
} }

View File

@ -7,7 +7,7 @@
*/ */
import {AsyncTestCompleter, beforeEach, describe, expect, inject, it} from '@angular/core/testing/src/testing_internal'; import {AsyncTestCompleter, beforeEach, describe, expect, inject, it} from '@angular/core/testing/src/testing_internal';
import {ResourceLoaderImpl} from '../../src/resource_loader/resource_loader_impl'; import {ResourceLoaderImpl} from '@angular/platform-browser-dynamic/src/resource_loader/resource_loader_impl';
if (isBrowser) { if (isBrowser) {
describe('ResourceLoaderImpl', () => { describe('ResourceLoaderImpl', () => {

View File

@ -10,7 +10,8 @@ import {ResourceLoader} from '@angular/compiler';
import {Compiler, Component, NgModule} from '@angular/core'; import {Compiler, Component, NgModule} from '@angular/core';
import {TestBed, async, fakeAsync, inject, tick} from '@angular/core/testing'; import {TestBed, async, fakeAsync, inject, tick} from '@angular/core/testing';
import {ResourceLoaderImpl} from '../src/resource_loader/resource_loader_impl'; import {ResourceLoaderImpl} from '@angular/platform-browser-dynamic/src/resource_loader/resource_loader_impl';
import {fixmeIvy} from '@angular/private/testing';
@ -62,10 +63,11 @@ if (isBrowser) {
{providers: [{provide: FancyService, useValue: new FancyService()}]}); {providers: [{provide: FancyService, useValue: new FancyService()}]});
}); });
it('provides a real ResourceLoader instance', fixmeIvy('unknown').it(
inject([ResourceLoader], (resourceLoader: ResourceLoader) => { 'provides a real ResourceLoader instance',
expect(resourceLoader instanceof ResourceLoaderImpl).toBeTruthy(); inject([ResourceLoader], (resourceLoader: ResourceLoader) => {
})); expect(resourceLoader instanceof ResourceLoaderImpl).toBeTruthy();
}));
it('should allow the use of fakeAsync', it('should allow the use of fakeAsync',
fakeAsync(inject([FancyService], (service: any /** TODO #9100 */) => { fakeAsync(inject([FancyService], (service: any /** TODO #9100 */) => {
@ -78,7 +80,7 @@ if (isBrowser) {
}); });
describe('Compiler', () => { describe('Compiler', () => {
it('should return NgModule id when asked', () => { fixmeIvy('unknown').it('should return NgModule id when asked', () => {
@NgModule({ @NgModule({
id: 'test-module', id: 'test-module',
}) })
@ -115,37 +117,41 @@ if (isBrowser) {
const restoreJasmineIt = () => { jasmine.getEnv().it = originalJasmineIt; }; const restoreJasmineIt = () => { jasmine.getEnv().it = originalJasmineIt; };
it('should fail when an ResourceLoader fails', done => { fixmeIvy('FW-553: TestBed is unaware of async compilation')
const itPromise = patchJasmineIt(); .it('should fail when an ResourceLoader fails', done => {
const itPromise = patchJasmineIt();
it('should fail with an error from a promise', async(() => { it('should fail with an error from a promise', async(() => {
TestBed.configureTestingModule({declarations: [BadTemplateUrl]}); TestBed.configureTestingModule({declarations: [BadTemplateUrl]});
TestBed.compileComponents(); TestBed.compileComponents();
})); }));
itPromise.then( itPromise.then(
() => { done.fail('Expected test to fail, but it did not'); }, () => { done.fail('Expected test to fail, but it did not'); },
(err: any) => { (err: any) => {
expect(err.message) expect(err.message)
.toEqual('Uncaught (in promise): Failed to load non-existent.html'); .toEqual('Uncaught (in promise): Failed to load non-existent.html');
done(); done();
}); });
restoreJasmineIt(); restoreJasmineIt();
}, 10000); }, 10000);
}); });
describe('TestBed createComponent', function() { describe('TestBed createComponent', function() {
it('should allow an external templateUrl', async(() => { fixmeIvy('FW-553: TestBed is unaware of async compilation')
TestBed.configureTestingModule({declarations: [ExternalTemplateComp]}); .it('should allow an external templateUrl', async(() => {
TestBed.compileComponents().then(() => { TestBed.configureTestingModule({declarations: [ExternalTemplateComp]});
const componentFixture = TestBed.createComponent(ExternalTemplateComp); TestBed.compileComponents().then(() => {
componentFixture.detectChanges(); const componentFixture = TestBed.createComponent(ExternalTemplateComp);
expect(componentFixture.nativeElement.textContent).toEqual('from external template'); componentFixture.detectChanges();
}); expect(componentFixture.nativeElement.textContent)
}), .toEqual('from external template');
10000); // Long timeout here because this test makes an actual ResourceLoader request, and });
// is slow }),
// on Edge. 10000); // Long timeout here because this test makes an actual ResourceLoader
// request, and
// is slow
// on Edge.
}); });
}); });
} }