import { defineComponent, nextTick, onMounted, ref } from 'vue' import { mount } from '@vue/test-utils' import { describe, expect, it } from 'vitest' import { hasClass } from '@element-plus/utils' import { useLockscreen } from '../use-lockscreen' const kls = 'el-popup-parent--hidden' const Comp = defineComponent({ setup() { const flag = ref(false) useLockscreen(flag) onMounted(() => { flag.value = true }) return () => undefined }, }) describe('useLockscreen', () => { it('should lock screen when trigger is true', async () => { const wrapper = mount({ setup: () => () => , }) await nextTick() expect(hasClass(document.body, kls)).toBe(true) wrapper.unmount() await nextTick() expect(hasClass(document.body, kls)).toBe(false) }) it('should cleanup when unmounted', async () => { const shouldRender = ref(true) mount({ setup: () => () => shouldRender.value ? : undefined, }) await nextTick() expect(hasClass(document.body, kls)).toBe(true) shouldRender.value = false await nextTick() expect(hasClass(document.body, kls)).toBe(false) }) })