use-cursor.vitest.tsx 706 B

123456789101112131415161718192021
  1. import { nextTick, shallowRef } from 'vue'
  2. import { describe, expect, it } from 'vitest'
  3. import { useCursor } from '../use-cursor'
  4. describe('useCursor', () => {
  5. it('record and set cursor correctly', async () => {
  6. const inputRef = shallowRef<HTMLInputElement>()
  7. const [recordCursor, setCursor] = useCursor(inputRef)
  8. if (inputRef.value == undefined) return
  9. inputRef.value.value = 'abc'
  10. //set a cursor position
  11. inputRef.value.setSelectionRange(1, 1)
  12. recordCursor()
  13. inputRef.value.value = 'a-bc'
  14. setCursor()
  15. await nextTick()
  16. const { selectionStart, selectionEnd } = inputRef.value
  17. expect(selectionStart).toEqual(2)
  18. expect(selectionEnd).toEqual(2)
  19. })
  20. })