tests / publish.test.cjs
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 runtime = require("../scripts/runtime.cjs");
test("Windows PowerShell allows native stderr progress but rejects failures and other accounts", { skip: process.platform !== "win32" }, async () => {
const directory = fs.mkdtempSync(path.join(os.tmpdir(), "publish regression "));
const cli = path.join(directory, "mock-lms.cmd");
fs.writeFileSync(cli, [
"@echo off",
'if "%1"=="push" (echo UPLOAD_ATTEMPTED & exit /b 99)',
"echo Waking up LM Studio service... 1>&2",
'if "%PUBLISH_TEST_CASE%"=="wrong" (echo You are currently logged in as: somebody-else & exit /b 0)',
"echo You are currently logged in as: yuanjumay",
'if "%PUBLISH_TEST_CASE%"=="failure" exit /b 1',
"exit /b 0",
].join("\r\n"));
const quote = value => "'" + value.replaceAll("'", "''") + "'";
const script = path.resolve(__dirname, "..", "publish.ps1");
const command = `Set-Alias -Name lms -Value ${quote(cli)}; & ${quote(script)} -CheckOnly`;
for (const scenario of ["correct", "wrong", "failure"]) {
const result = await runtime.run("powershell", ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command", command], {
env: { PUBLISH_TEST_CASE: scenario }, allowFailure: true, timeout: 20000,
});
assert.ok(!result.stdout.includes("UPLOAD_ATTEMPTED"));
if (scenario === "correct") {
assert.equal(result.code, 0, result.stderr);
assert.ok(result.stdout.includes("checks passed"));
assert.ok(result.stdout.includes("Waking up LM Studio service"));
} else {
assert.notEqual(result.code, 0);
assert.ok(!result.stdout.includes("checks passed"));
}
}
});
tests / publish.test.cjs
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 runtime = require("../scripts/runtime.cjs");
test("Windows PowerShell allows native stderr progress but rejects failures and other accounts", { skip: process.platform !== "win32" }, async () => {
const directory = fs.mkdtempSync(path.join(os.tmpdir(), "publish regression "));
const cli = path.join(directory, "mock-lms.cmd");
fs.writeFileSync(cli, [
"@echo off",
'if "%1"=="push" (echo UPLOAD_ATTEMPTED & exit /b 99)',
"echo Waking up LM Studio service... 1>&2",
'if "%PUBLISH_TEST_CASE%"=="wrong" (echo You are currently logged in as: somebody-else & exit /b 0)',
"echo You are currently logged in as: yuanjumay",
'if "%PUBLISH_TEST_CASE%"=="failure" exit /b 1',
"exit /b 0",
].join("\r\n"));
const quote = value => "'" + value.replaceAll("'", "''") + "'";
const script = path.resolve(__dirname, "..", "publish.ps1");
const command = `Set-Alias -Name lms -Value ${quote(cli)}; & ${quote(script)} -CheckOnly`;
for (const scenario of ["correct", "wrong", "failure"]) {
const result = await runtime.run("powershell", ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command", command], {
env: { PUBLISH_TEST_CASE: scenario }, allowFailure: true, timeout: 20000,
});
assert.ok(!result.stdout.includes("UPLOAD_ATTEMPTED"));
if (scenario === "correct") {
assert.equal(result.code, 0, result.stderr);
assert.ok(result.stdout.includes("checks passed"));
assert.ok(result.stdout.includes("Waking up LM Studio service"));
} else {
assert.notEqual(result.code, 0);
assert.ok(!result.stdout.includes("checks passed"));
}
}
});