'use strict'; const test = require('node:test'); const assert = require('node:assert/strict'); const fs = require('node:fs'); const os = require('node:os'); const path = require('node:path'); const { spawnSync } = require('node:child_process'); const ROOT = path.join(__dirname, '..'); const read = (name) => fs.readFileSync(path.join(ROOT, name), 'utf8'); const readJson = (name) => JSON.parse(read(name)); function writeKit(root, { version = '1.2.6', legacy = false } = {}) { const extension = path.join(root, 'chrome-extension'); fs.mkdirSync(extension, { recursive: true }); fs.writeFileSync(path.join(root, 'AltaCameraProxy.exe'), 'synthetic executable'); fs.writeFileSync(path.join(root, 'aware-cam-proxy.exe'), 'synthetic helper'); for (const name of ['popup.html', 'popup.js', 'popup.css', 'options.html', 'options.js', 'options.css']) { fs.writeFileSync(path.join(extension, name), legacy && name === 'popup.js' ? 'apt-local-bridge-token' : `'use strict';`); } fs.writeFileSync(path.join(extension, 'manifest.json'), JSON.stringify({ manifest_version: 3, name: 'Alta Proxy Tool Bridge', version, })); } test('application and extension versions and supported dependencies stay coordinated', () => { const pkg = readJson('package.json'); const lock = readJson('package-lock.json'); const manifest = readJson('chrome-extension/manifest.json'); assert.equal(pkg.version, '1.2.6'); assert.equal(manifest.version, pkg.version); assert.equal(lock.version, pkg.version); assert.equal(lock.packages[''].version, pkg.version); assert.deepEqual(pkg.dependencies, { axios: '1.19.0' }); assert.deepEqual(pkg.devDependencies, { electron: '43.4.1', 'electron-builder': '26.15.3', }); for (const removed of ['crypto-js', 'electron-packager']) { assert.equal(pkg.dependencies?.[removed], undefined); assert.equal(pkg.devDependencies?.[removed], undefined); } }); test('build remains Windows portable without misleading signing overrides', () => { const pkg = readJson('package.json'); assert.equal(pkg.build.win.target, 'portable'); assert.equal(pkg.build.portable.artifactName, 'AltaCameraProxy-${version}-portable.exe'); assert.equal(Object.hasOwn(pkg.build.win, 'signAndEditExecutable'), false); assert.equal(Object.hasOwn(pkg.build, 'forceCodeSigning'), false); assert.equal(pkg.scripts['audit:prod'], 'npm audit --omit=dev --audit-level=low'); assert.match(pkg.scripts.check, /verify-kit/); }); test('main heading includes the v1.2.6 updater smoke marker', () => { assert.match(read('index.html'), /