use-restore-active.test.ts 736 B

123456789101112131415161718192021222324
  1. import { nextTick, ref } from 'vue'
  2. import { describe, expect, it } from 'vitest'
  3. import { useRestoreActive } from '../use-restore-active'
  4. describe('useRestoreActive', () => {
  5. it('should restore active element', async () => {
  6. const visible = ref(false)
  7. useRestoreActive(visible)
  8. const btn1 = document.createElement('button')
  9. const btn2 = document.createElement('button')
  10. document.body.appendChild(btn1)
  11. document.body.appendChild(btn2)
  12. btn1.focus()
  13. expect(document.activeElement).toBe(btn1)
  14. visible.value = true
  15. await nextTick()
  16. btn2.focus()
  17. expect(document.activeElement).toBe(btn2)
  18. visible.value = false
  19. await nextTick()
  20. expect(document.activeElement).toBe(btn1)
  21. })
  22. })