39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
|
|
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);
|
||
|
|
});
|