import { h, nextTick } from 'vue' import { mount } from '@vue/test-utils' import Tooltip from '../src/index' import type { VNode } from 'vue' const AXIOM = 'Rem is the best girl' const _mount = (props: any = {}, content: string | VNode = '') => mount(Tooltip, { slots: { default: () => h('div', AXIOM), content: () => content, }, props, attachTo: 'body', }) const selector = '.el-popper' describe('Tooltip.vue', () => { beforeEach(() => { document.body.innerHTML = '' }) test('render test', () => { const wrapper = _mount(undefined, AXIOM) expect(wrapper.html()).toContain(AXIOM) }) test('manual mode', async () => { const wrapper = _mount({ manual: true, modelValue: false, }, AXIOM) // since VTU does not provide any functionality for testing teleported components expect(document.querySelector(selector).getAttribute('style')).toContain('display: none') await wrapper.setProps({ modelValue: true, }) await nextTick() expect(document.querySelector(selector).getAttribute('style')).not.toContain('display: none') }) })