34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
|
|
"use strict";
|
||
|
|
|
||
|
|
const { describe, it } = require("node:test");
|
||
|
|
const assert = require("node:assert/strict");
|
||
|
|
const { isSshConnAlive, isTransportExecError } = require("./execConnHealth.cjs");
|
||
|
|
|
||
|
|
describe("isSshConnAlive", () => {
|
||
|
|
it("returns false for missing conn", () => {
|
||
|
|
assert.equal(isSshConnAlive(null), false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("returns false when socket is destroyed", () => {
|
||
|
|
assert.equal(isSshConnAlive({ _sock: { destroyed: true } }), false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("returns true when socket is alive", () => {
|
||
|
|
assert.equal(isSshConnAlive({ _sock: { destroyed: false } }), true);
|
||
|
|
assert.equal(isSshConnAlive({}), true);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("isTransportExecError", () => {
|
||
|
|
it("detects common ssh2 transport failures", () => {
|
||
|
|
assert.equal(isTransportExecError("Not connected"), true);
|
||
|
|
assert.equal(isTransportExecError("Channel open failure: open failed"), true);
|
||
|
|
assert.equal(isTransportExecError("read ECONNRESET"), true);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("ignores unrelated command errors", () => {
|
||
|
|
assert.equal(isTransportExecError("docker: no such container"), false);
|
||
|
|
assert.equal(isTransportExecError("permission denied"), false);
|
||
|
|
});
|
||
|
|
});
|