65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import { expect, test } from 'bun:test'
|
|
import {
|
|
shouldHandleInputAsPaste,
|
|
supportsClipboardImageFallback,
|
|
} from './usePasteHandler.ts'
|
|
|
|
test('supports clipboard image fallback on Windows', () => {
|
|
expect(supportsClipboardImageFallback('windows')).toBe(true)
|
|
})
|
|
|
|
test('supports clipboard image fallback on macOS', () => {
|
|
expect(supportsClipboardImageFallback('macos')).toBe(true)
|
|
})
|
|
|
|
test('supports clipboard image fallback on Linux', () => {
|
|
expect(supportsClipboardImageFallback('linux')).toBe(true)
|
|
})
|
|
|
|
test('does not support clipboard image fallback on WSL', () => {
|
|
expect(supportsClipboardImageFallback('wsl')).toBe(false)
|
|
})
|
|
|
|
test('does not support clipboard image fallback on unknown platforms', () => {
|
|
expect(supportsClipboardImageFallback('unknown')).toBe(false)
|
|
})
|
|
|
|
test('does not treat a bracketed paste as pending when no paste handlers are provided', () => {
|
|
expect(
|
|
shouldHandleInputAsPaste({
|
|
hasTextPasteHandler: false,
|
|
hasImagePasteHandler: false,
|
|
inputLength: 'kimi-k2.5'.length,
|
|
pastePending: false,
|
|
hasImageFilePath: false,
|
|
isFromPaste: true,
|
|
}),
|
|
).toBe(false)
|
|
})
|
|
|
|
test('treats bracketed text paste as pending when a text paste handler exists', () => {
|
|
expect(
|
|
shouldHandleInputAsPaste({
|
|
hasTextPasteHandler: true,
|
|
hasImagePasteHandler: false,
|
|
inputLength: 'kimi-k2.5'.length,
|
|
pastePending: false,
|
|
hasImageFilePath: false,
|
|
isFromPaste: true,
|
|
}),
|
|
).toBe(true)
|
|
})
|
|
|
|
test('treats image path paste as pending when only an image handler exists', () => {
|
|
expect(
|
|
shouldHandleInputAsPaste({
|
|
hasTextPasteHandler: false,
|
|
hasImagePasteHandler: true,
|
|
inputLength: 'C:\\Users\\jat\\image.png'.length,
|
|
pastePending: false,
|
|
hasImageFilePath: true,
|
|
isFromPaste: false,
|
|
}),
|
|
).toBe(true)
|
|
})
|