import { describe, expect, it } from 'vitest' import { resolveTerminalInputTargets, shouldBroadcastTerminalInput, } from '../../src/utils/terminalPanes' const panes = [ { id: 'left', shellId: 'shell-1' }, { id: 'starting', shellId: null }, { id: 'right', shellId: 'shell-3' }, ] describe('terminal pane input routing', () => { it('routes normal input only to the source pane', () => { expect(resolveTerminalInputTargets(panes, 'right', false)).toEqual(['shell-3']) }) it('routes broadcast input to every ready shell in pane order', () => { expect(resolveTerminalInputTargets(panes, 'left', true)).toEqual([ 'shell-1', 'shell-3', ]) }) it('does not write when the source pane has no ready shell', () => { expect(resolveTerminalInputTargets(panes, 'starting', false)).toEqual([]) expect(resolveTerminalInputTargets(panes, 'missing', false)).toEqual([]) }) it('broadcasts from both SSH and local terminals when enabled', () => { expect(shouldBroadcastTerminalInput(true, true, 'local')).toBe(true) expect(shouldBroadcastTerminalInput(true, false, 'ssh-connection')).toBe(true) expect(shouldBroadcastTerminalInput(true, false, null)).toBe(false) expect(shouldBroadcastTerminalInput(false, false, 'ssh-connection')).toBe(false) }) })