import { nextTick, ref } from 'vue'
import { describe, expect, it } from 'vitest'
import { useRestoreActive } from '../use-restore-active'

describe('useRestoreActive', () => {
  it('should restore active element', async () => {
    const visible = ref(false)
    useRestoreActive(visible)

    const btn1 = document.createElement('button')
    const btn2 = document.createElement('button')
    document.body.appendChild(btn1)
    document.body.appendChild(btn2)
    btn1.focus()
    expect(document.activeElement).toBe(btn1)
    visible.value = true
    await nextTick()
    btn2.focus()
    expect(document.activeElement).toBe(btn2)
    visible.value = false
    await nextTick()
    expect(document.activeElement).toBe(btn1)
  })
})
