From 9fb6a6124f4455f825d2a1e026111e20eae6e865 Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Fri, 18 Nov 2022 03:29:08 -0800 Subject: [PATCH] fixup! test: run legacy-cli e2e tests via bazel fixup: add ChromeHeadlessNoSandbox browser to to karma builder --- .../build_angular/src/builders/karma/index.ts | 6 ++ .../e2e/assets/13.0-project/karma.conf.js | 13 +++- tests/legacy-cli/e2e/utils/project.ts | 66 ------------------- 3 files changed, 18 insertions(+), 67 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/builders/karma/index.ts b/packages/angular_devkit/build_angular/src/builders/karma/index.ts index 50da6fe0f24c..ca105f161f96 100644 --- a/packages/angular_devkit/build_angular/src/builders/karma/index.ts +++ b/packages/angular_devkit/build_angular/src/builders/karma/index.ts @@ -222,6 +222,12 @@ function getBuiltInKarmaConfig( logLevel: karma.constants.LOG_INFO, autoWatch: true, browsers: ['Chrome'], + customLaunchers: { + ChromeHeadlessNoSandbox: { + base: 'ChromeHeadless', + flags: ['--no-sandbox', '--headless', '--disable-gpu', '--disable-dev-shm-usage'], + }, + }, restartOnFileChange: true, }; } diff --git a/tests/legacy-cli/e2e/assets/13.0-project/karma.conf.js b/tests/legacy-cli/e2e/assets/13.0-project/karma.conf.js index ccec87ca2b1f..1d0cda7c76fc 100644 --- a/tests/legacy-cli/e2e/assets/13.0-project/karma.conf.js +++ b/tests/legacy-cli/e2e/assets/13.0-project/karma.conf.js @@ -37,7 +37,18 @@ module.exports = function (config) { colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Chrome'], + browsers: ['ChromeHeadlessNoSandbox'], + customLaunchers: { + ChromeHeadlessNoSandbox: { + base: 'ChromeHeadless', + flags: [ + '--no-sandbox', + '--headless', + '--disable-gpu', + '--disable-dev-shm-usage', + ], + } + }, singleRun: false, restartOnFileChange: true }); diff --git a/tests/legacy-cli/e2e/utils/project.ts b/tests/legacy-cli/e2e/utils/project.ts index 791bb3e07f6a..736b42634afd 100644 --- a/tests/legacy-cli/e2e/utils/project.ts +++ b/tests/legacy-cli/e2e/utils/project.ts @@ -187,45 +187,6 @@ export function useCIDefaults(projectName = 'test-project'): Promise { }); } -const KARMA_CONF_DEFAULT = ` - module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - jasmine: {}, - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - jasmineHtmlReporter: { - suppressAll: true // removes the duplicated traces - }, - coverageReporter: { - dir: require('path').join(__dirname, './coverage/$PROJECT_NAME$'), - subdir: '.', - reporters: [ - { type: 'html' }, - { type: 'text-summary' } - ] - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); - }; -`; - export async function useCIChrome(projectName: string, projectDir = ''): Promise { const protractorConf = path.join(projectDir, 'protractor.conf.js'); if (fs.existsSync(protractorConf)) { @@ -245,38 +206,11 @@ export async function useCIChrome(projectName: string, projectDir = ''): Promise ); } - const karmaConf = path.join(projectDir, 'karma.conf.js'); - - // Create one with default config if it doesn't exist - if (!fs.existsSync(karmaConf)) { - await writeFile(karmaConf, KARMA_CONF_DEFAULT.replace('$PROJECT_NAME$', projectName)); - } - // Update to use the headless sandboxed chrome - await replaceInFile( - karmaConf, - /browsers:.*\]\s*,/, - ` - browsers: ['ChromeHeadlessNoSandbox'], - customLaunchers: { - ChromeHeadlessNoSandbox: { - base: 'ChromeHeadless', - flags: [ - '--no-sandbox', - '--headless', - '--disable-gpu', - '--disable-dev-shm-usage', - ], - } - }, - `, - ); - return updateJsonFile('angular.json', (workspaceJson) => { const project = workspaceJson.projects[projectName]; const appTargets = project.targets || project.architect; appTargets.test.options.browsers = 'ChromeHeadlessNoSandbox'; - appTargets.test.options.karmaConfig = karmaConf; }); }