mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-27 01:11:40 +00:00
fix(tui): make mac copy use pbcopy
This commit is contained in:
parent
1d0b94a1b9
commit
e388910fe6
4 changed files with 104 additions and 7 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import { describe, expect, it, vi } from 'vitest'
|
||||
|
||||
import { readClipboardText } from '../lib/clipboard.js'
|
||||
import { readClipboardText, writeClipboardText } from '../lib/clipboard.js'
|
||||
|
||||
describe('readClipboardText', () => {
|
||||
it('does nothing off macOS', async () => {
|
||||
|
|
@ -23,3 +23,47 @@ describe('readClipboardText', () => {
|
|||
await expect(readClipboardText('darwin', run)).resolves.toBeNull()
|
||||
})
|
||||
})
|
||||
|
||||
describe('writeClipboardText', () => {
|
||||
it('does nothing off macOS', async () => {
|
||||
const start = vi.fn()
|
||||
|
||||
await expect(writeClipboardText('hello', 'linux', start)).resolves.toBe(false)
|
||||
expect(start).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('writes text to pbcopy on macOS', async () => {
|
||||
const stdin = { end: vi.fn() }
|
||||
const child = {
|
||||
once: vi.fn((event: string, cb: (code?: number) => void) => {
|
||||
if (event === 'close') {
|
||||
cb(0)
|
||||
}
|
||||
|
||||
return child
|
||||
}),
|
||||
stdin
|
||||
}
|
||||
const start = vi.fn().mockReturnValue(child)
|
||||
|
||||
await expect(writeClipboardText('hello world', 'darwin', start as any)).resolves.toBe(true)
|
||||
expect(start).toHaveBeenCalledWith('pbcopy', [], expect.objectContaining({ stdio: ['pipe', 'ignore', 'ignore'], windowsHide: true }))
|
||||
expect(stdin.end).toHaveBeenCalledWith('hello world')
|
||||
})
|
||||
|
||||
it('returns false when pbcopy fails', async () => {
|
||||
const child = {
|
||||
once: vi.fn((event: string, cb: () => void) => {
|
||||
if (event === 'error') {
|
||||
cb()
|
||||
}
|
||||
|
||||
return child
|
||||
}),
|
||||
stdin: { end: vi.fn() }
|
||||
}
|
||||
const start = vi.fn().mockReturnValue(child)
|
||||
|
||||
await expect(writeClipboardText('hello world', 'darwin', start as any)).resolves.toBe(false)
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue