Files
tabby/tabby-ssh/test/terminalType.test.ts
T
a8abcc0be6 Allow per-profile custom SSH TERM (#11480)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Co-authored-by: x06579 <x06579@ai-dashboard>
Co-authored-by: Eugene <inbox@null.page>
2026-09-11 22:03:05 +02:00

35 lines
1.6 KiB
TypeScript

import { describe, it } from 'node:test'
import assert from 'node:assert/strict'
import { DEFAULT_SSH_TERMINAL_TYPE, resolveSSHTerminalType } from '../src/session/shellChannel.ts'
describe('resolveSSHTerminalType', () => {
it('returns the custom terminal type when set', () => {
assert.equal(resolveSSHTerminalType('vt100'), 'vt100')
assert.equal(resolveSSHTerminalType('xterm'), 'xterm')
assert.equal(resolveSSHTerminalType('linux'), 'linux')
})
it('falls back to xterm-256color for blank or whitespace-only values', () => {
assert.equal(resolveSSHTerminalType(''), DEFAULT_SSH_TERMINAL_TYPE)
assert.equal(resolveSSHTerminalType(' '), DEFAULT_SSH_TERMINAL_TYPE)
assert.equal(resolveSSHTerminalType('\t\n'), DEFAULT_SSH_TERMINAL_TYPE)
})
it('falls back to xterm-256color when missing', () => {
assert.equal(resolveSSHTerminalType(undefined), DEFAULT_SSH_TERMINAL_TYPE)
assert.equal(resolveSSHTerminalType(null), DEFAULT_SSH_TERMINAL_TYPE)
assert.equal(DEFAULT_SSH_TERMINAL_TYPE, 'xterm-256color')
})
it('falls back to xterm-256color for non-string persisted values', () => {
assert.equal(resolveSSHTerminalType(256), DEFAULT_SSH_TERMINAL_TYPE)
assert.equal(resolveSSHTerminalType(false), DEFAULT_SSH_TERMINAL_TYPE)
assert.equal(resolveSSHTerminalType({ terminal: 'vt100' }), DEFAULT_SSH_TERMINAL_TYPE)
})
it('trims surrounding whitespace from a custom value', () => {
assert.equal(resolveSSHTerminalType(' vt100 '), 'vt100')
assert.equal(resolveSSHTerminalType('\txterm-color\n'), 'xterm-color')
})
})