From 9a786532248116ccb2ba12a2700d61e512b4354c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E4=BA=9A=E6=98=95?= <1549469775@qq.com> Date: Fri, 24 Jan 2025 15:12:20 +0800 Subject: [PATCH] fix bug --- .../__tests__/__snapshots__/index.ts.snap | 3 +++ .../src/directive/vDebounce/__tests__/index.ts | 29 ++++++++++++++-------- 2 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 packages/vue3/src/directive/vDebounce/__tests__/__snapshots__/index.ts.snap diff --git a/packages/vue3/src/directive/vDebounce/__tests__/__snapshots__/index.ts.snap b/packages/vue3/src/directive/vDebounce/__tests__/__snapshots__/index.ts.snap new file mode 100644 index 0000000..ca49cab --- /dev/null +++ b/packages/vue3/src/directive/vDebounce/__tests__/__snapshots__/index.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`自定义指令 > 快照测试 1`] = `"num: 1"`; diff --git a/packages/vue3/src/directive/vDebounce/__tests__/index.ts b/packages/vue3/src/directive/vDebounce/__tests__/index.ts index eeb9526..7b95702 100644 --- a/packages/vue3/src/directive/vDebounce/__tests__/index.ts +++ b/packages/vue3/src/directive/vDebounce/__tests__/index.ts @@ -18,7 +18,24 @@ const tc = defineComponent({ }); describe("自定义指令", async () => { - // vue-test-utils 的 mount api, 将组件实例化 + it("快照测试", async () => { + const wrapper = mount(tc, { + global: { + directives: { + debounce: vDebounce, + }, + }, + }); + const interval = setInterval(async () => { + await wrapper.find("button").trigger("click"); + }, 200); + await new Promise((resolve) => setTimeout(resolve, 1000)); + clearInterval(interval); + await new Promise((resolve) => setTimeout(resolve, 700)); + await nextTick(); + const btn = wrapper.get("button"); + expect(btn.text()).toMatchSnapshot(); + }); it("防抖提交", async () => { const wrapper = mount(tc, { global: { @@ -27,24 +44,14 @@ describe("自定义指令", async () => { }, }, }); - - // 每过 200 毫秒点击一次 button const interval = setInterval(async () => { - // find api 查找目标元素 await wrapper.find("button").trigger("click"); }, 200); - // 阻塞 1000 秒, 让点击事件在 1 秒内执行 4 次 await new Promise((resolve) => setTimeout(resolve, 1000)); - clearInterval(interval); - - // 阻塞 700 秒, 等待函数执行 await new Promise((resolve) => setTimeout(resolve, 700)); - // 确保组件重新渲染 await nextTick(); - // 获取目标元素 const btn = wrapper.get("button"); - // 对目标元素的文本进行断言 expect(btn.text()).toBe("num: 1"); }); });