Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions tests/e2e/tests/misc/browsers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ export default async function () {
throw new Error('SauceLabs is not configured.');
}

await ng('generate', 'private-e2e', '--related-app-name', 'test-project');

// Workaround for https://github.com/angular/angular/issues/32192
await replaceInFile('src/app/app.html', /class="material-icons"/g, '');

Expand Down Expand Up @@ -43,6 +45,7 @@ export default async function () {
await ng(
'e2e',
'test-project',
'--no-webdriver-update',
'--protractor-config=e2e/protractor-saucelabs.conf.js',
'--dev-server-target=',
);
Expand Down
9 changes: 5 additions & 4 deletions tests/e2e/tests/protractor/test-fails.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { execAndCaptureError } from '../../utils/process';
import { execAndCaptureError, ng } from '../../utils/process';
import { updateJsonFile } from '../../utils/project';

export default async function () {
// Revert the `private-protractor` builder name back to the previous `protractor`.
// Setup `protractor` builder.
await updateJsonFile('angular.json', (config) => {
config.projects['test-project'].architect['e2e'].builder =
'@angular-devkit/build-angular:protractor';
config.projects['test-project'].architect['e2e'] = {
builder: '@angular-devkit/build-angular:protractor',
};
});

const error = await execAndCaptureError('ng', ['e2e']);
Expand Down
27 changes: 0 additions & 27 deletions tests/e2e/utils/project.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,7 @@ export async function prepareProjectForE2e(name: string) {

console.log(`Project ${name} created... Installing packages.`);
await installWorkspacePackages();
await ng('generate', 'private-e2e', '--related-app-name', name);

await useCIChrome(name, 'e2e');
await useCIChrome(name, '');
await useCIDefaults(name);

Expand Down Expand Up @@ -137,12 +135,6 @@ export function useCIDefaults(projectName = 'test-project'): Promise<void> {
const appTargets = project.targets || project.architect;
appTargets.build.options.progress = false;
appTargets.test.options.progress = false;
if (appTargets.e2e) {
// Disable auto-updating webdriver in e2e.
appTargets.e2e.options.webdriverUpdate = false;
// Use a random port in e2e.
appTargets.e2e.options.port = 0;
}

if (appTargets.serve) {
// Use a random port in serve.
Expand All @@ -153,25 +145,6 @@ export function useCIDefaults(projectName = 'test-project'): Promise<void> {
}

export async function useCIChrome(projectName: string, projectDir = ''): Promise<void> {
const protractorConf = path.join(projectDir, 'protractor.conf.js');
if (fs.existsSync(protractorConf)) {
// Ensure the headless sandboxed chrome is configured in the protractor config
await replaceInFile(
protractorConf,
`browserName: 'chrome'`,
`browserName: 'chrome',
chromeOptions: {
args: ['--headless', '--no-sandbox', '--disable-gpu', '--disable-dev-shm-usage'],
binary: String.raw\`${process.env.CHROME_BIN}\`,
}`,
);
await replaceInFile(
protractorConf,
'directConnect: true,',
`directConnect: true, chromeDriver: String.raw\`${process.env.CHROMEDRIVER_BIN}\`,`,
);
}

const karmaConf = path.join(projectDir, 'karma.conf.js');
if (fs.existsSync(karmaConf)) {
// Ensure the headless sandboxed chrome is configured in the karma config
Expand Down
Loading