mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-15 08:04:12 +00:00
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
import fs from "node:fs";
|
|
import path from "node:path";
|
|
|
|
const root = process.cwd();
|
|
|
|
function fail(message) {
|
|
console.error(`[smoke-test] ${message}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
function assertManifest(browserDir) {
|
|
const manifestPath = path.join(root, "dist", browserDir, "manifest.json");
|
|
if (!fs.existsSync(manifestPath)) {
|
|
fail(`Missing ${manifestPath} — run npm run build first`);
|
|
}
|
|
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
|
|
if (!manifest.manifest_version) fail(`${browserDir} manifest missing manifest_version`);
|
|
if (!manifest.name) fail(`${browserDir} manifest missing name`);
|
|
if (!manifest.version) fail(`${browserDir} manifest missing version`);
|
|
|
|
const sw =
|
|
manifest.background?.service_worker ??
|
|
manifest.background?.scripts?.[0] ??
|
|
null;
|
|
if (sw) {
|
|
const swPath = path.join(root, "dist", browserDir, sw);
|
|
if (!fs.existsSync(swPath)) {
|
|
fail(`${browserDir} service worker not found on disk: ${sw}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
function assertAssets(browserDir) {
|
|
const assetsDir = path.join(root, "dist", browserDir, "assets");
|
|
if (!fs.existsSync(assetsDir)) {
|
|
fail(`Missing assets directory: dist/${browserDir}/assets`);
|
|
}
|
|
const jsFiles = fs.readdirSync(assetsDir).filter((f) => f.endsWith(".js"));
|
|
if (jsFiles.length === 0) {
|
|
fail(`No JS assets in dist/${browserDir}/assets`);
|
|
}
|
|
}
|
|
|
|
for (const browser of ["chrome", "firefox"]) {
|
|
assertManifest(browser);
|
|
assertAssets(browser);
|
|
}
|
|
|
|
console.log("[smoke-test] dist/chrome and dist/firefox look OK");
|