Files
NetMesh/domain/sshConnectionTimeouts.test.ts

39 lines
1.3 KiB
TypeScript
Raw Permalink Normal View History

import assert from 'node:assert/strict';
import test from 'node:test';
import {
DEFAULT_SSH_AUTH_READY_TIMEOUT_SECONDS,
DEFAULT_SSH_TCP_CONNECT_TIMEOUT_SECONDS,
resolveHostSshConnectionTimeouts,
sanitizeOptionalSshTimeoutSeconds,
} from './sshConnectionTimeouts.ts';
test('host SSH connection timeouts preserve the existing defaults', () => {
assert.deepEqual(resolveHostSshConnectionTimeouts({}), {
tcpConnectTimeoutSeconds: DEFAULT_SSH_TCP_CONNECT_TIMEOUT_SECONDS,
authReadyTimeoutSeconds: DEFAULT_SSH_AUTH_READY_TIMEOUT_SECONDS,
});
});
test('host SSH connection timeouts resolve independently per host', () => {
assert.deepEqual(resolveHostSshConnectionTimeouts({
sshTcpConnectTimeoutSeconds: 45,
sshAuthReadyTimeoutSeconds: 300,
}), {
tcpConnectTimeoutSeconds: 45,
authReadyTimeoutSeconds: 300,
});
});
test('invalid host SSH timeout values fall back or are removed on save', () => {
assert.deepEqual(resolveHostSshConnectionTimeouts({
sshTcpConnectTimeoutSeconds: 0,
sshAuthReadyTimeoutSeconds: Number.NaN,
}), {
tcpConnectTimeoutSeconds: DEFAULT_SSH_TCP_CONNECT_TIMEOUT_SECONDS,
authReadyTimeoutSeconds: DEFAULT_SSH_AUTH_READY_TIMEOUT_SECONDS,
});
assert.equal(sanitizeOptionalSshTimeoutSeconds(3601), undefined);
assert.equal(sanitizeOptionalSshTimeoutSeconds(45.4), 45);
});