fix: stabilize Windows launchers for v2.1.4
Fix Windows portable, installer, and desktop launcher startup paths; bump desktop metadata to 2.1.4.
This commit is contained in:
71
tests/windows-launchers.test.mjs
Normal file
71
tests/windows-launchers.test.mjs
Normal file
@@ -0,0 +1,71 @@
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { join } from 'node:path';
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
const repoRoot = fileURLToPath(new URL('..', import.meta.url));
|
||||
|
||||
function readRepoFile(...parts) {
|
||||
return readFileSync(join(repoRoot, ...parts), 'utf8');
|
||||
}
|
||||
|
||||
function lineOf(content, needle) {
|
||||
const lines = content.split(/\r?\n/);
|
||||
const index = lines.findIndex((line) => line.includes(needle));
|
||||
assert.notEqual(index, -1, `missing line containing: ${needle}`);
|
||||
return lines[index];
|
||||
}
|
||||
|
||||
test('Windows-Start dependency fallback text escapes parentheses inside IF block', () => {
|
||||
const script = readRepoFile('portable', 'Windows-Start.bat');
|
||||
|
||||
assert.match(
|
||||
lineOf(script, 'Falling back to npm install'),
|
||||
/\^\(USB drives may take 20\+ minutes\^\)\./,
|
||||
);
|
||||
assert.match(
|
||||
lineOf(script, 'pre-installed deps'),
|
||||
/\^\(~200 MB\^\)\./,
|
||||
);
|
||||
});
|
||||
|
||||
test('portable Windows launchers disable OpenClaw bonjour discovery', () => {
|
||||
for (const scriptName of [
|
||||
'Windows-Start.bat',
|
||||
'Windows-Menu.bat',
|
||||
'Windows-Install.bat',
|
||||
]) {
|
||||
const script = readRepoFile('portable', scriptName);
|
||||
assert.match(
|
||||
script,
|
||||
/OPENCLAW_DISABLE_BONJOUR=1/,
|
||||
`${scriptName} should disable bonjour discovery`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('PowerShell installer generated start.bat disables OpenClaw bonjour discovery', () => {
|
||||
const script = readRepoFile('install', 'install.ps1');
|
||||
|
||||
assert.match(script, /\$startBat = @'/);
|
||||
assert.match(
|
||||
script,
|
||||
/set "OPENCLAW_DISABLE_BONJOUR=1"/,
|
||||
'generated start.bat should disable bonjour discovery',
|
||||
);
|
||||
});
|
||||
|
||||
test('Electron desktop launcher disables OpenClaw bonjour discovery on Windows only', () => {
|
||||
const source = readRepoFile('u-claw-app', 'src', 'main.js');
|
||||
|
||||
assert.match(
|
||||
source,
|
||||
/if\s*\(\s*process\.platform\s*===\s*['"]win32['"]\s*\)\s*{[\s\S]*?env\.OPENCLAW_DISABLE_BONJOUR\s*=\s*['"]1['"]/,
|
||||
);
|
||||
assert.doesNotMatch(
|
||||
source,
|
||||
/OPENCLAW_DISABLE_BONJOUR:\s*['"]1['"]/,
|
||||
'bonjour disable flag should not be in the unconditional env object',
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user