From 275d252f25150832335585f4dafd012c97ecfe14 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe <259325684+Sucukdeluxe@users.noreply.github.com> Date: Wed, 12 Aug 2026 21:38:18 +0200 Subject: [PATCH] test(ci): isolate Electron secure storage coverage Mock Electron in the Node-only secure-storage unit test so its expected unavailable-path assertion never triggers Electron's binary bootstrap. Bump the patch release contracts to 1.0.11 after the 1.0.10 tag CI failure. --- CHANGELOG.md | 4 ++++ README.md | 2 +- package-lock.json | 4 ++-- package.json | 11 +++++++---- scripts/dev.mjs | 2 +- scripts/smoke-test-public-release-config.js | 13 ++++++++----- src/index.html | 2 +- src/main/infra/secure-storage.test.ts | 4 +++- 8 files changed, 27 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 169c2c0..02ef72c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.0.11 - 2026-08-12 + +- Stabilize the Windows CI secure-storage test without invoking Electron's binary bootstrap outside Electron. + ## 1.0.10 - 2026-08-12 - Ignore malformed updater events without a version instead of showing an unusable update prompt. diff --git a/README.md b/README.md index c5002ee..b90353e 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ The application works in public mode without a Twitch login. Connecting a Twitch ## Installation 1. Open the [latest GitHub release](https://github.com/Sucukdeluxe/Twitch-VOD-Manager/releases/latest). -2. Download `Twitch-VOD-Manager-Setup-1.0.10.exe`. +2. Download `Twitch-VOD-Manager-Setup-1.0.11.exe`. 3. Run the installer and choose the installation directory. 4. Start Twitch VOD Manager and add a streamer. diff --git a/package-lock.json b/package-lock.json index 44c7618..20df66b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "twitch-vod-manager", - "version": "1.0.10", + "version": "1.0.11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "twitch-vod-manager", - "version": "1.0.10", + "version": "1.0.11", "license": "MIT", "dependencies": { "axios": "^1.16.1", diff --git a/package.json b/package.json index 6b59b01..9973d34 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "twitch-vod-manager", - "version": "1.0.10", + "version": "1.0.11", "description": "Twitch VOD Manager - Download Twitch VODs easily", "main": "dist/main.js", "author": "Sucukdeluxe", @@ -66,9 +66,12 @@ "dist/**/*", "src/index.html", "src/styles.css", - "src/workspace.css", - "build/icon.png", - "package.json" + "src/workspace.css", + "build/icon.png", + "package.json", + "!node_modules/better-sqlite3/build/**", + "!node_modules/better-sqlite3/deps/**", + "!node_modules/better-sqlite3/src/**" ], "extraResources": [ { diff --git a/scripts/dev.mjs b/scripts/dev.mjs index 7bc959b..8fa1cf9 100644 --- a/scripts/dev.mjs +++ b/scripts/dev.mjs @@ -93,7 +93,7 @@ if (process.platform === 'win32') { sourcePath: electronSourceExecutable, destinationPath: resolve(rootDirectory, 'node_modules', 'electron', 'dist', 'Twitch VOD Manager.exe'), iconPath: resolve(rootDirectory, 'build', 'icon.ico'), - version: '1.0.10', + version: '1.0.11', }); } diff --git a/scripts/smoke-test-public-release-config.js b/scripts/smoke-test-public-release-config.js index a306a47..c8f1dec 100644 --- a/scripts/smoke-test-public-release-config.js +++ b/scripts/smoke-test-public-release-config.js @@ -15,13 +15,16 @@ function check(condition, message) { if (!condition) failures.push(message); } -check(packageJson.version === '1.0.10', `package version is ${packageJson.version}`); -check(packageLock.version === '1.0.10', `lockfile version is ${packageLock.version}`); -check(packageLock.packages?.['']?.version === '1.0.10', `lockfile root package version is ${packageLock.packages?.['']?.version}`); +check(packageJson.version === '1.0.11', `package version is ${packageJson.version}`); +check(packageLock.version === '1.0.11', `lockfile version is ${packageLock.version}`); +check(packageLock.packages?.['']?.version === '1.0.11', `lockfile root package version is ${packageLock.packages?.['']?.version}`); check(packageJson.build?.appId === 'io.github.sucukdeluxe.twitch-vod-manager', `appId is ${packageJson.build?.appId}`); check(packageJson.build?.publish?.provider === 'generic', `publish provider is ${packageJson.build?.publish?.provider}`); check(packageJson.build?.publish?.url === 'https://github.com/Sucukdeluxe/Twitch-VOD-Manager/releases/latest/download/', `publish URL is ${packageJson.build?.publish?.url}`); -check(JSON.stringify(packageJson.build?.files) === JSON.stringify(['dist/**/*', 'src/index.html', 'src/styles.css', 'src/workspace.css', 'build/icon.png', 'package.json']), 'packaged file list is not restricted'); +for (const pattern of ['!node_modules/better-sqlite3/build/**', '!node_modules/better-sqlite3/deps/**', '!node_modules/better-sqlite3/src/**']) { + check(packageJson.build?.files?.includes(pattern), `missing packaged native build exclusion: ${pattern}`); +} +check(JSON.stringify(packageJson.build?.files) === JSON.stringify(['dist/**/*', 'src/index.html', 'src/styles.css', 'src/workspace.css', 'build/icon.png', 'package.json', '!node_modules/better-sqlite3/build/**', '!node_modules/better-sqlite3/deps/**', '!node_modules/better-sqlite3/src/**']), 'packaged file list is not restricted'); check(packageJson.build?.win?.icon === 'build/icon.ico', `Windows icon is ${packageJson.build?.win?.icon}`); check(packageJson.build?.nsis?.installerIcon === 'build/icon.ico', `installer icon is ${packageJson.build?.nsis?.installerIcon}`); check(packageJson.build?.nsis?.uninstallerIcon === 'build/icon.ico', `uninstaller icon is ${packageJson.build?.nsis?.uninstallerIcon}`); @@ -62,7 +65,7 @@ check(mainSource.includes('GITHUB_RELEASES_DOWNLOAD_BASE_URL'), 'GitHub releases check(mainSource.includes('https://api.github.com/repos/Sucukdeluxe/Twitch-VOD-Manager/releases/latest'), 'GitHub latest release API URL is missing'); check(mainSource.includes('https://github.com/Sucukdeluxe/Twitch-VOD-Manager/releases/download'), 'GitHub release download URL is missing'); check(!/storyboards\/\d{8,12}(?:-|\/)/.test(mainSource), 'numeric Twitch VOD example remains in the public source'); -check(indexSource.includes('Version: v1.0.10'), 'initial version label is not 1.0.10'); +check(indexSource.includes('Version: v1.0.11'), 'initial version label is not 1.0.11'); check(!indexSource.includes('Version: v4.1.13'), 'legacy version label is still present'); check(fs.existsSync(manifestPath), 'public release manifest is missing'); diff --git a/src/index.html b/src/index.html index ef445c1..bf25c5c 100644 --- a/src/index.html +++ b/src/index.html @@ -940,7 +940,7 @@
Version: v1.0.10
+Version: v1.0.11