/* eslint-disable @typescript-eslint/no-empty-function */ // eslint-disable-next-line import/no-extraneous-dependencies import { mount } from '@vue/test-utils' import { defineComponent } from 'vue-demi' export type RenderHookResult = { result?: T; } export const renderHook = ( callback: () => Result | void = () => { }, ): RenderHookResult => { let result const Container = defineComponent({ setup() { result = callback() return result }, render() { return null }, }) mount(Container) return { result, } } export const waitForNextUpdate = (timeout?: number) => new Promise((resolve) => { setTimeout(() => { resolve(undefined) }, timeout) })