From 8eb9b0016673a0417ee5d76b8f5a8c6b8449f7b0 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Thu, 14 Nov 2024 14:17:03 +0100 Subject: [PATCH 1/3] chore(selenium): add beta suffix --- scripts/selenium.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/selenium.ts b/scripts/selenium.ts index 7e3da39d9..202d1b4cc 100644 --- a/scripts/selenium.ts +++ b/scripts/selenium.ts @@ -35,7 +35,7 @@ import {RESULTS_DIR} from "../lib/constants.js"; import filterVersionsLib from "../lib/filter-versions.js"; import getSecrets from "../lib/secrets.js"; -import type {BrowserName} from "@mdn/browser-compat-data"; +import type {BrowserName, BrowserStatement} from "@mdn/browser-compat-data"; import "../lib/selenium-keepalive.js"; @@ -122,6 +122,10 @@ const earliestBrowserVersions = { safari: "5.1", }; +const isBeta = (browser: BrowserName, version: string): boolean => { + return (bcdBrowsers[browser] as BrowserStatement).releases[version]?.status === 'beta'; +} + /** * Returns a formatted string representing the browser name, version, and operating system. * @param browser - The browser name. @@ -134,6 +138,9 @@ const prettyName = ( version: string, os: string, ): string => { + if (isBeta(browser, version)) { + version = `${version}-beta`; + }; return `${bcdBrowsers[browser].name} ${version} on ${os}`; }; @@ -646,7 +653,10 @@ const run = async ( const downloadUrl = await downloadEl.getAttribute("href"); if (!ctx.testenv) { - const filename = path.basename(new URL(downloadUrl).pathname); + let filename = path.basename(new URL(downloadUrl).pathname); + if (isBeta(browser, version)) { + filename.replace(browser, `${browser}-beta`); + } log(task, `Downloading ${filename} ...`); const report = await (await fetch(downloadUrl)).buffer(); await fs.writeFile(path.join(RESULTS_DIR, filename), report); From 7193ff7d7bb57c9fd46033debaf1f5afd17aa611 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Thu, 14 Nov 2024 14:25:41 +0100 Subject: [PATCH 2/3] chore(selenium): add release data to report --- scripts/selenium.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/selenium.ts b/scripts/selenium.ts index 202d1b4cc..0ad5f105f 100644 --- a/scripts/selenium.ts +++ b/scripts/selenium.ts @@ -658,8 +658,9 @@ const run = async ( filename.replace(browser, `${browser}-beta`); } log(task, `Downloading ${filename} ...`); - const report = await (await fetch(downloadUrl)).buffer(); - await fs.writeFile(path.join(RESULTS_DIR, filename), report); + const report = await (await fetch(downloadUrl)).json(); + report['release'] = bcdBrowsers[browser].releases[version]; + await fs.writeFile(path.join(RESULTS_DIR, filename), JSON.stringify(report)); } } finally { driver.quit().catch(() => {}); From 4a19230019ce9d85c0f1b0ea33d46bc6e831aa47 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Thu, 14 Nov 2024 22:24:35 +0100 Subject: [PATCH 3/3] style: fix ESLint issues --- scripts/selenium.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scripts/selenium.ts b/scripts/selenium.ts index 0ad5f105f..757c39af0 100644 --- a/scripts/selenium.ts +++ b/scripts/selenium.ts @@ -122,6 +122,12 @@ const earliestBrowserVersions = { safari: "5.1", }; +/** + * Checks if a browser version has beta status. + * @param browser - The browser name. + * @param version - The browser version. + * @returns True if the version has beta status, false otherwise. + */ const isBeta = (browser: BrowserName, version: string): boolean => { return (bcdBrowsers[browser] as BrowserStatement).releases[version]?.status === 'beta'; } @@ -140,7 +146,7 @@ const prettyName = ( ): string => { if (isBeta(browser, version)) { version = `${version}-beta`; - }; + } return `${bcdBrowsers[browser].name} ${version} on ${os}`; }; @@ -655,10 +661,10 @@ const run = async ( if (!ctx.testenv) { let filename = path.basename(new URL(downloadUrl).pathname); if (isBeta(browser, version)) { - filename.replace(browser, `${browser}-beta`); + filename = filename.replace(browser, `${browser}-beta`); } log(task, `Downloading ${filename} ...`); - const report = await (await fetch(downloadUrl)).json(); + const report = await (await fetch(downloadUrl)).json() as any; report['release'] = bcdBrowsers[browser].releases[version]; await fs.writeFile(path.join(RESULTS_DIR, filename), JSON.stringify(report)); }