hermes-agent/ui-tui/src/__tests__/useQueue.test.ts
Brooklyn Nicholson 718088c382 fix(tui): copilot review on #16707 — naming, label consistency, esc priority
- Rename `removeAt` → `removeAtInPlace` and document the mutation
  contract; the old name read like a non-mutating helper.
- Hotkey table + queue header: use `Ctrl+X` / `Esc` to match the
  rest of the UI (was `⌃X` / `esc`).
- Render the queued header as a single template literal so JSX
  text-node whitespace can't sneak into the rendered line.
- Make `Esc` while editing beat the `terminal.hasSelection` clear:
  the header promises 'Esc cancel', so an active selection
  shouldn't silently consume the keystroke.
2026-04-27 15:37:54 -05:00

28 lines
678 B
TypeScript

import { describe, expect, it } from 'vitest'
import { removeAtInPlace } from '../hooks/useQueue.js'
describe('removeAtInPlace', () => {
it('removes the item at the given index in place', () => {
const arr = ['a', 'b', 'c']
removeAtInPlace(arr, 1)
expect(arr).toEqual(['a', 'c'])
})
it('is a no-op when the index is out of bounds', () => {
const arr = ['a', 'b']
removeAtInPlace(arr, -1)
removeAtInPlace(arr, 5)
expect(arr).toEqual(['a', 'b'])
})
it('returns the same reference (mutates in place)', () => {
const arr = ['x']
const same = removeAtInPlace(arr, 0)
expect(same).toBe(arr)
expect(arr).toEqual([])
})
})