meldestelle/karma.config.d/chrome.js
2025-08-17 01:12:42 +02:00

68 lines
2.2 KiB
JavaScript

// Karma configuration for Chrome browser testing
// This file fixes Chrome/Chromium path issues and permission errors
config.set({
// Use Chrome with custom configuration to avoid snap permission issues
browsers: ['ChromeHeadlessNoSandbox'],
// Custom browser configuration
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
'--disable-web-security',
'--disable-features=VizDisplayCompositor',
'--disable-dev-shm-usage',
'--disable-gpu',
'--remote-debugging-port=9222'
]
},
ChromeHeadlessCI: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
'--disable-web-security',
'--disable-features=VizDisplayCompositor',
'--disable-dev-shm-usage',
'--disable-gpu',
'--headless',
'--disable-extensions',
'--disable-plugins',
'--disable-images',
'--disable-javascript',
'--disable-default-apps',
'--disable-translate',
'--disable-background-timer-throttling',
'--disable-renderer-backgrounding',
'--disable-device-discovery-notifications'
]
}
},
// Browser detection and fallback
detectBrowsers: {
enabled: false // Disable auto-detection to use our custom config
},
// Timeout configuration to handle slower CI environments
browserNoActivityTimeout: 60000,
browserDisconnectTimeout: 10000,
browserDisconnectTolerance: 3,
// Process configuration
processKillTimeout: 5000,
captureTimeout: 60000
});
// Try to use system Chrome if snap Chromium fails
if (process.env.CI || process.env.GITHUB_ACTIONS) {
// Use CI-optimized Chrome configuration in CI environments
config.browsers = ['ChromeHeadlessCI'];
} else {
// Use standard no-sandbox configuration for local development
config.browsers = ['ChromeHeadlessNoSandbox'];
}
console.log('Chrome browser configuration applied for testing');