Dynamic Chrome version selection

This commit is contained in:
Pascal Birchler
2026-04-02 10:40:28 +02:00
parent 66c3fbb4e3
commit dc7908acee
+23 -6
View File
@@ -109,18 +109,35 @@ async function test_integration() {
return;
}
// Install the latest Chrome and Firefox webdrivers without referencing
// package-lock.json, to ensure that they're up to date.
await execa('npm', ['install', '--no-save', 'chromedriver', 'geckodriver'], {
preferLocal: true,
});
logHelper.log(`Downloading browsers...`);
const expiration = 24;
// We are only running tests in stable, see bellow for reasons.
await seleniumAssistant.downloadLocalBrowser('chrome', 'stable', expiration);
await seleniumAssistant.downloadLocalBrowser('firefox', 'stable', expiration);
// Determine downloaded Chrome version to match ChromeDriver
const chromeBrowser = seleniumAssistant.getLocalBrowser('chrome', 'stable');
let chromedriverSpec = 'chromedriver';
if (chromeBrowser && chromeBrowser.isValid()) {
const version = chromeBrowser.getVersionNumber();
if (version !== -1) {
chromedriverSpec = `chromedriver@${version}`;
logHelper.log(
`Matched Chrome version ${version}, installing ${chromedriverSpec}`,
);
}
}
// Install the matching Chrome and latest Firefox webdrivers without referencing
// package-lock.json, to ensure that they're up to date.
await execa(
'npm',
['install', '--no-save', chromedriverSpec, 'geckodriver'],
{
preferLocal: true,
},
);
const packagesToTest = globSync(`test/${global.packageOrStar}/integration`);
if (packagesToTest.length === 0) {
return;