68 lines
2.2 KiB
JavaScript
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');
|