fix(ivy): WorkerAppModule should be an APP_ROOT (#28544)

PR Close #28544
This commit is contained in:
Marc Laval
2019-02-05 17:14:18 +01:00
committed by Matias Niemelä
parent e3032a0d17
commit 43081a01d8
6 changed files with 161 additions and 169 deletions

View File

@ -6,82 +6,80 @@
* found in the LICENSE file at https://angular.io/license
*/
import {fixmeIvy} from '@angular/private/testing';
import {browser, by, element, protractor} from 'protractor';
import {verifyNoBrowserErrors} from '../../../../e2e_util/e2e_util';
fixmeIvy('NullInjectorError: No provider for InjectionToken ROOT_CONTEXT_TOKEN!')
.describe('WebWorker Router', () => {
beforeEach(() => {
// This test can't wait for Angular as Testability is not available when using WebWorker
browser.ignoreSynchronization = true;
browser.get('/');
});
describe('WebWorker Router', () => {
beforeEach(() => {
// This test can't wait for Angular as Testability is not available when using WebWorker
browser.ignoreSynchronization = true;
browser.get('/');
});
afterEach(() => {
verifyNoBrowserErrors();
browser.ignoreSynchronization = false;
});
afterEach(() => {
verifyNoBrowserErrors();
browser.ignoreSynchronization = false;
});
const contentSelector = 'app main h1';
const navSelector = 'app nav ul';
const baseUrl = '/';
const contentSelector = 'app main h1';
const navSelector = 'app nav ul';
const baseUrl = '/';
it('should route on click', () => {
browser.get(baseUrl);
it('should route on click', () => {
browser.get(baseUrl);
waitForElement(contentSelector);
let content = element(by.css(contentSelector));
expect(content.getText()).toEqual('Start');
waitForElement(contentSelector);
let content = element(by.css(contentSelector));
expect(content.getText()).toEqual('Start');
const aboutBtn = element(by.css(navSelector + ' .about'));
aboutBtn.click();
waitForUrl(/\/about/);
waitForElement(contentSelector);
waitForElementText(contentSelector, 'About');
content = element(by.css(contentSelector));
expect(content.getText()).toEqual('About');
expect(browser.getCurrentUrl()).toMatch(/\/about/);
const aboutBtn = element(by.css(navSelector + ' .about'));
aboutBtn.click();
waitForUrl(/\/about/);
waitForElement(contentSelector);
waitForElementText(contentSelector, 'About');
content = element(by.css(contentSelector));
expect(content.getText()).toEqual('About');
expect(browser.getCurrentUrl()).toMatch(/\/about/);
const contactBtn = element(by.css(navSelector + ' .contact'));
contactBtn.click();
waitForUrl(/\/contact/);
waitForElement(contentSelector);
waitForElementText(contentSelector, 'Contact');
content = element(by.css(contentSelector));
expect(content.getText()).toEqual('Contact');
expect(browser.getCurrentUrl()).toMatch(/\/contact/);
});
const contactBtn = element(by.css(navSelector + ' .contact'));
contactBtn.click();
waitForUrl(/\/contact/);
waitForElement(contentSelector);
waitForElementText(contentSelector, 'Contact');
content = element(by.css(contentSelector));
expect(content.getText()).toEqual('Contact');
expect(browser.getCurrentUrl()).toMatch(/\/contact/);
});
it('should load the correct route from the URL', () => {
browser.get(baseUrl + '#/about');
it('should load the correct route from the URL', () => {
browser.get(baseUrl + '#/about');
waitForElement(contentSelector);
waitForElementText(contentSelector, 'About');
const content = element(by.css(contentSelector));
expect(content.getText()).toEqual('About');
});
waitForElement(contentSelector);
waitForElementText(contentSelector, 'About');
const content = element(by.css(contentSelector));
expect(content.getText()).toEqual('About');
});
function waitForElement(selector: string): void {
browser.wait(protractor.until.elementLocated(by.css(selector)), 15000);
}
function waitForElement(selector: string): void {
browser.wait(protractor.until.elementLocated(by.css(selector)), 15000);
}
function waitForElementText(contentSelector: string, expected: string): void {
browser.wait(() => {
const deferred = protractor.promise.defer();
const elem = element(by.css(contentSelector));
elem.getText().then((text: string) => { return deferred.fulfill(text === expected); });
return deferred.promise;
}, 5000);
}
function waitForElementText(contentSelector: string, expected: string): void {
browser.wait(() => {
const deferred = protractor.promise.defer();
const elem = element(by.css(contentSelector));
elem.getText().then((text: string) => { return deferred.fulfill(text === expected); });
return deferred.promise;
}, 5000);
}
function waitForUrl(regex: RegExp): void {
browser.wait(() => {
const deferred = protractor.promise.defer();
browser.getCurrentUrl().then(
(url: string) => { return deferred.fulfill(url.match(regex) !== null); });
return deferred.promise;
}, 5000);
}
});
function waitForUrl(regex: RegExp): void {
browser.wait(() => {
const deferred = protractor.promise.defer();
browser.getCurrentUrl().then(
(url: string) => { return deferred.fulfill(url.match(regex) !== null); });
return deferred.promise;
}, 5000);
}
});