From: 白雾三语 <32354856+baiwusanyu-c@users.noreply.github.com> Date: Tue, 12 Dec 2023 07:52:49 +0000 (+0800) Subject: test: add v-show unit test (#56) X-Git-Tag: v3.6.0-alpha.1~16^2~711 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e25c22ddf1dc3adc2682dde8f615a2eb225f2fe;p=thirdparty%2Fvuejs%2Fcore.git test: add v-show unit test (#56) --- diff --git a/packages/runtime-vapor/__tests__/vShow.spec.ts b/packages/runtime-vapor/__tests__/vShow.spec.ts new file mode 100644 index 0000000000..66f5b4b1f0 --- /dev/null +++ b/packages/runtime-vapor/__tests__/vShow.spec.ts @@ -0,0 +1,59 @@ +import { template, children, withDirectives, on, vShow, render } from '../src' +import { ref, defineComponent, nextTick } from 'vue' +import { beforeEach, afterEach, describe, test, expect } from 'vitest' + +let host: HTMLElement + +const initHost = () => { + host = document.createElement('div') + host.setAttribute('id', 'host') + document.body.appendChild(host) +} +beforeEach(() => { + initHost() +}) +afterEach(() => { + host.remove() +}) + +describe('directive: v-show', () => { + test('basic', async () => { + const demo = defineComponent({ + setup() { + const visible = ref(true) + function handleClick() { + visible.value = !visible.value + } + const __returned__ = { visible, handleClick } + Object.defineProperty(__returned__, '__isScriptSetup', { + enumerable: false, + value: true, + }) + return __returned__ + }, + render(_ctx: any) { + const t0 = template('

hello world

') + const n0 = t0() + const { + 0: [n1], + 1: [n2], + } = children(n0 as ChildNode) + withDirectives(n2, [[vShow, () => _ctx.visible]]) + on( + n1 as HTMLElement, + 'click', + (...args) => _ctx.handleClick && _ctx.handleClick(...args), + ) + return n0 + }, + }) + render(demo as any, {}, '#host') + const btn = host.querySelector('button') + expect(host.innerHTML).toBe('

hello world

') + btn?.click() + await nextTick() + expect(host.innerHTML).toBe( + '

hello world

', + ) + }) +}) diff --git a/vitest.config.ts b/vitest.config.ts index e5d5f59345..fc5f18832c 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -26,7 +26,7 @@ export default defineConfig({ threads: !process.env.GITHUB_ACTIONS, setupFiles: 'scripts/setupVitest.ts', environmentMatchGlobs: [ - ['packages/{vue,vue-compat,runtime-dom}/**', 'jsdom'] + ['packages/{vue,vue-compat,runtime-dom,runtime-vapor}/**', 'jsdom'] ], sequence: { hooks: 'list'