test(ivy): update e2e tests to use Renderer2 instead of Renderer (#28558)

PR Close #28558
This commit is contained in:
Marc Laval 2019-02-06 10:52:18 +01:00 committed by Matias Niemelä
parent 6709db9677
commit 0e6f799aec
4 changed files with 62 additions and 66 deletions

View File

@ -6,35 +6,33 @@
* found in the LICENSE file at https://angular.io/license * found in the LICENSE file at https://angular.io/license
*/ */
import {fixmeIvy} from '@angular/private/testing';
import {browser} from 'protractor'; import {browser} from 'protractor';
import {verifyNoBrowserErrors} from '../../../e2e_util/e2e_util'; import {verifyNoBrowserErrors} from '../../../e2e_util/e2e_util';
fixmeIvy('FW-1032: Ivy doesn\'t support injecting Renderer, the deprecated renderer V1') describe('hello world', function() {
.describe('hello world', function() {
afterEach(verifyNoBrowserErrors); afterEach(verifyNoBrowserErrors);
describe('hello world app', function() { describe('hello world app', function() {
const URL = '/'; const URL = '/';
it('should greet', function() { it('should greet', function() {
browser.get(URL); browser.get(URL);
expect(getComponentText('hello-app', '.greeting')).toEqual('hello world!');
});
it('should change greeting', function() {
browser.get(URL);
clickComponentButton('hello-app', '.changeButton');
expect(getComponentText('hello-app', '.greeting')).toEqual('howdy world!');
});
});
expect(getComponentText('hello-app', '.greeting')).toEqual('hello world!');
}); });
it('should change greeting', function() {
browser.get(URL);
clickComponentButton('hello-app', '.changeButton');
expect(getComponentText('hello-app', '.greeting')).toEqual('howdy world!');
});
});
});
function getComponentText(selector: string, innerSelector: string) { function getComponentText(selector: string, innerSelector: string) {
return browser.executeScript( return browser.executeScript(
`return document.querySelector("${selector}").querySelector("${innerSelector}").textContent`); `return document.querySelector("${selector}").querySelector("${innerSelector}").textContent`);

View File

@ -6,56 +6,54 @@
* found in the LICENSE file at https://angular.io/license * found in the LICENSE file at https://angular.io/license
*/ */
import {fixmeIvy} from '@angular/private/testing';
import {ExpectedConditions, browser, by, element, protractor} from 'protractor'; import {ExpectedConditions, browser, by, element, protractor} from 'protractor';
import {verifyNoBrowserErrors} from '../../../../e2e_util/e2e_util'; import {verifyNoBrowserErrors} from '../../../../e2e_util/e2e_util';
fixmeIvy('FW-1032: Ivy doesn\'t support injecting Renderer, the deprecated renderer V1') describe('WebWorkers Kitchen Sink', function() {
.describe('WebWorkers Kitchen Sink', function() { afterEach(() => {
afterEach(() => { verifyNoBrowserErrors();
verifyNoBrowserErrors(); browser.ignoreSynchronization = false;
browser.ignoreSynchronization = false; });
}); const selector = 'hello-app .greeting';
const selector = 'hello-app .greeting'; const URL = '/';
const URL = '/';
it('should greet', () => { it('should greet', () => {
// This test can't wait for Angular as Testability is not available when using WebWorker // This test can't wait for Angular as Testability is not available when using WebWorker
browser.ignoreSynchronization = true; browser.ignoreSynchronization = true;
browser.get(URL); browser.get(URL);
browser.wait(protractor.until.elementLocated(by.css(selector)), 15000); browser.wait(protractor.until.elementLocated(by.css(selector)), 15000);
const elem = element(by.css(selector)); const elem = element(by.css(selector));
browser.wait(ExpectedConditions.textToBePresentInElement(elem, 'hello world!'), 5000); browser.wait(ExpectedConditions.textToBePresentInElement(elem, 'hello world!'), 5000);
expect(elem.getText()).toEqual('hello world!'); expect(elem.getText()).toEqual('hello world!');
}); });
it('should change greeting', () => { it('should change greeting', () => {
// This test can't wait for Angular as Testability is not available when using WebWorker // This test can't wait for Angular as Testability is not available when using WebWorker
browser.ignoreSynchronization = true; browser.ignoreSynchronization = true;
browser.get(URL); browser.get(URL);
const changeButtonSelector = 'hello-app .changeButton'; const changeButtonSelector = 'hello-app .changeButton';
browser.wait(protractor.until.elementLocated(by.css(changeButtonSelector)), 15000); browser.wait(protractor.until.elementLocated(by.css(changeButtonSelector)), 15000);
element(by.css(changeButtonSelector)).click(); element(by.css(changeButtonSelector)).click();
const elem = element(by.css(selector)); const elem = element(by.css(selector));
browser.wait(ExpectedConditions.textToBePresentInElement(elem, 'howdy world!'), 5000); browser.wait(ExpectedConditions.textToBePresentInElement(elem, 'howdy world!'), 5000);
expect(elem.getText()).toEqual('howdy world!'); expect(elem.getText()).toEqual('howdy world!');
}); });
it('should display correct key names', () => { it('should display correct key names', () => {
// This test can't wait for Angular as Testability is not available when using WebWorker // This test can't wait for Angular as Testability is not available when using WebWorker
browser.ignoreSynchronization = true; browser.ignoreSynchronization = true;
browser.get(URL); browser.get(URL);
browser.wait(protractor.until.elementLocated(by.css('.sample-area')), 15000); browser.wait(protractor.until.elementLocated(by.css('.sample-area')), 15000);
const area = element.all(by.css('.sample-area')).first(); const area = element.all(by.css('.sample-area')).first();
expect(area.getText()).toEqual('(none)'); expect(area.getText()).toEqual('(none)');
area.sendKeys('u'); area.sendKeys('u');
browser.wait(ExpectedConditions.textToBePresentInElement(area, 'U'), 5000); browser.wait(ExpectedConditions.textToBePresentInElement(area, 'U'), 5000);
expect(area.getText()).toEqual('U'); expect(area.getText()).toEqual('U');
}); });
}); });

View File

@ -6,7 +6,7 @@
* found in the LICENSE file at https://angular.io/license * found in the LICENSE file at https://angular.io/license
*/ */
import {Component, Directive, ElementRef, Injectable, NgModule, Renderer} from '@angular/core'; import {Component, Directive, ElementRef, Injectable, NgModule, Renderer2} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser'; import {BrowserModule} from '@angular/platform-browser';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
@ -22,8 +22,8 @@ export class GreetingService {
export class RedDec { export class RedDec {
// ElementRef is always injectable and it wraps the element on which the // ElementRef is always injectable and it wraps the element on which the
// directive was found by the compiler. // directive was found by the compiler.
constructor(el: ElementRef, renderer: Renderer) { constructor(el: ElementRef, renderer: Renderer2) {
renderer.setElementStyle(el.nativeElement, 'color', 'red'); renderer.setStyle(el.nativeElement, 'color', 'red');
} }
} }

View File

@ -6,7 +6,7 @@
* found in the LICENSE file at https://angular.io/license * found in the LICENSE file at https://angular.io/license
*/ */
import {Component, Directive, ElementRef, Injectable, Renderer} from '@angular/core'; import {Component, Directive, ElementRef, Injectable, Renderer2} from '@angular/core';
// A service available to the Injector, used by the HelloCmp component. // A service available to the Injector, used by the HelloCmp component.
@Injectable() @Injectable()
@ -20,8 +20,8 @@ export class GreetingService {
export class RedDec { export class RedDec {
// ElementRef is always injectable and it wraps the element on which the // ElementRef is always injectable and it wraps the element on which the
// directive was found by the compiler. // directive was found by the compiler.
constructor(el: ElementRef, renderer: Renderer) { constructor(el: ElementRef, renderer: Renderer2) {
renderer.setElementStyle(el.nativeElement, 'color', 'red'); renderer.setStyle(el.nativeElement, 'color', 'red');
} }
} }