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.
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
Generated
+2
-2
@@ -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",
|
||||
|
||||
+5
-2
@@ -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",
|
||||
@@ -68,7 +68,10 @@
|
||||
"src/styles.css",
|
||||
"src/workspace.css",
|
||||
"build/icon.png",
|
||||
"package.json"
|
||||
"package.json",
|
||||
"!node_modules/better-sqlite3/build/**",
|
||||
"!node_modules/better-sqlite3/deps/**",
|
||||
"!node_modules/better-sqlite3/src/**"
|
||||
],
|
||||
"extraResources": [
|
||||
{
|
||||
|
||||
+1
-1
@@ -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',
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
|
||||
+1
-1
@@ -940,7 +940,7 @@
|
||||
|
||||
<div class="settings-card" data-settings-pane="updates" hidden>
|
||||
<h3 id="updateTitle">Updates</h3>
|
||||
<p id="versionInfo" class="card-intro">Version: v1.0.10</p>
|
||||
<p id="versionInfo" class="card-intro">Version: v1.0.11</p>
|
||||
<button type="button" class="btn-secondary" id="checkUpdateBtn" onclick="checkUpdate()">Nach Updates suchen</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import { test, expect, describe } from 'vitest';
|
||||
import { test, expect, describe, vi } from 'vitest';
|
||||
import { MemorySecureStorage, createElectronSecureStorage, type SecureStorage } from './secure-storage';
|
||||
|
||||
vi.mock('electron', () => ({}));
|
||||
|
||||
describe('MemorySecureStorage', () => {
|
||||
test('isEncryptionAvailable returns false (kennzeichnet Memory-Mode)', () => {
|
||||
const s: SecureStorage = new MemorySecureStorage();
|
||||
|
||||
Reference in New Issue
Block a user