feat(@schematics/angular): generate E2E tests with native promise support

This change adjusts the E2E schematic to generate a protractor configuration with the selenium promise manager disabled.  It also adjusts the generated test files to use native promises and async/await to control test execution.
This commit is contained in:
Charles Lyding 2020-10-01 19:10:16 -04:00 committed by Charles
parent d4eaab2579
commit 0bdea8ddea
5 changed files with 9 additions and 10 deletions

View File

@ -16,6 +16,7 @@ exports.config = {
browserName: 'chrome' browserName: 'chrome'
}, },
directConnect: true, directConnect: true,
SELENIUM_PROMISE_MANAGER: false,
baseUrl: 'http://localhost:4200/', baseUrl: 'http://localhost:4200/',
framework: 'jasmine', framework: 'jasmine',
jasmineNodeOpts: { jasmineNodeOpts: {

View File

@ -8,9 +8,9 @@ describe('workspace-project App', () => {
page = new AppPage(); page = new AppPage();
}); });
it('should display welcome message', () => { it('should display welcome message', async () => {
page.navigateTo(); await page.navigateTo();
expect(page.getTitleText()).toEqual('<%= relatedAppName %> app is running!'); expect(await page.getTitleText()).toEqual('<%= relatedAppName %> app is running!');
}); });
afterEach(async () => { afterEach(async () => {

View File

@ -1,11 +1,11 @@
import { browser, by, element } from 'protractor'; import { browser, by, element } from 'protractor';
export class AppPage { export class AppPage {
navigateTo(): Promise<unknown> { async navigateTo(): Promise<unknown> {
return browser.get(browser.baseUrl) as Promise<unknown>; return browser.get(browser.baseUrl);
} }
getTitleText(): Promise<string> { async getTitleText(): Promise<string> {
return element(by.css('<%= rootSelector %> .content span')).getText() as Promise<string>; return element(by.css('<%= rootSelector %> .content span')).getText();
} }
} }

View File

@ -7,7 +7,6 @@
"target": "es2018", "target": "es2018",
"types": [ "types": [
"jasmine", "jasmine",
"jasminewd2",
"node" "node"
] ]
} }

View File

@ -25,8 +25,7 @@
"devDependencies": { "devDependencies": {
"@angular/cli": "<%= '~' + version %>", "@angular/cli": "<%= '~' + version %>",
"@angular/compiler-cli": "<%= latestVersions.Angular %>",<% if (!minimal) { %> "@angular/compiler-cli": "<%= latestVersions.Angular %>",<% if (!minimal) { %>
"@types/jasmine": "~3.5.0", "@types/jasmine": "~3.5.0",<% } %>
"@types/jasminewd2": "~2.0.3",<% } %>
"@types/node": "^12.11.1",<% if (!minimal) { %> "@types/node": "^12.11.1",<% if (!minimal) { %>
"codelyzer": "^6.0.0", "codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0", "jasmine-core": "~3.6.0",