Update
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import { EventEmitter } from "node:events";
|
||||
import { createRequire } from "node:module";
|
||||
|
||||
const require = createRequire(import.meta.url);
|
||||
const { SshService, parseCapabilityOutput } = require("../src/main/ssh-service.cjs");
|
||||
|
||||
test("SSH capability parsing keeps Git optional and reports deployment prerequisites separately", () => {
|
||||
const b64 = (value) => Buffer.from(value).toString("base64");
|
||||
const parsed = parseCapabilityOutput(`noise\n__FORGEFLOW_SERVER_TEST__\nplatform=${b64("Linux Unraid")}\ndocker=true\ndockerReady=true\ncompose=true\ncomposeVersion=${b64("Docker Compose version v2.40.0")}\ngit=false\ntar=true\nchecksum=true\nbaseWritable=true\n`);
|
||||
assert.equal(parsed.dockerReady, true);
|
||||
assert.equal(parsed.compose, true);
|
||||
assert.equal(parsed.git, false);
|
||||
assert.equal(parsed.tar, true);
|
||||
assert.equal(parsed.checksum, true);
|
||||
assert.equal(parsed.baseWritable, true);
|
||||
});
|
||||
|
||||
test("SSH execution rejects truncated output instead of using an incomplete inventory", async () => {
|
||||
const service = new SshService({ store: {}, diagnostics: null });
|
||||
const stream = new EventEmitter();
|
||||
stream.stderr = new EventEmitter();
|
||||
const client = {
|
||||
exec(_command, callback) {
|
||||
callback(null, stream);
|
||||
queueMicrotask(() => {
|
||||
stream.emit("data", Buffer.from("x".repeat(64)));
|
||||
stream.emit("close", 0, null);
|
||||
});
|
||||
},
|
||||
};
|
||||
await assert.rejects(
|
||||
service.execClient(client, "inventory", { maxOutput: 16, timeout: 1_000 }),
|
||||
(error) => error?.code === "SSH_OUTPUT_TRUNCATED" && /incomplete result/.test(error.message),
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user