From 66dd1aaecdb96684b04f9f3d9d387af7738acac3 Mon Sep 17 00:00:00 2001 From: underfin <2218301630@qq.com> Date: Thu, 7 May 2020 23:10:28 +0800 Subject: [PATCH] test(Transition): test transition (#1140) --- .../__tests__/transition/Transition.spec.ts | 69 +++++++++++++++++++ packages/vue/examples/transition/index.html | 64 +++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 packages/vue/examples/__tests__/transition/Transition.spec.ts create mode 100644 packages/vue/examples/transition/index.html diff --git a/packages/vue/examples/__tests__/transition/Transition.spec.ts b/packages/vue/examples/__tests__/transition/Transition.spec.ts new file mode 100644 index 00000000..bd7d49a0 --- /dev/null +++ b/packages/vue/examples/__tests__/transition/Transition.spec.ts @@ -0,0 +1,69 @@ +import { E2E_TIMEOUT, setupPuppeteer } from '../e2eUtils' +import path from 'path' + +function nextFrame(cb: () => void) { + requestAnimationFrame(() => { + requestAnimationFrame(cb) + }) +} + +describe('e2e: Transition', () => { + const { page, html, click, classList } = setupPuppeteer() + const baseUrl = `file://${path.resolve( + __dirname, + '../../transition/index.html' + )}` + const duration = 50, + buffer = 10 + const container = '#test' + + test( + 'basic transition', + async () => { + await page().goto(baseUrl) + await page().waitFor('#app') + expect(await html(container)).toBe('
') + + await click('button') + expect(await classList('#test div')).toStrictEqual([ + 'test', + 'v-leave-active', + 'v-leave-from' + ]) + await new Promise((resolve, reject) => { + nextFrame(async () => { + expect(await classList('#test div')).toStrictEqual([ + 'test', + 'v-leave-active', + 'v-leave-to' + ]) + setTimeout(async () => { + expect(await html('#test')).toBe('') + resolve() + }, duration + buffer) + }) + }) + + await click('button') + expect(await classList('#test div')).toStrictEqual([ + 'test', + 'v-enter-active', + 'v-enter-from' + ]) + await new Promise((resolve, reject) => { + nextFrame(async () => { + expect(await classList('#test div')).toStrictEqual([ + 'test', + 'v-enter-active', + 'v-enter-to' + ]) + setTimeout(async () => { + expect(await html('#test')).toBe('') + resolve() + }, duration + buffer) + }) + }) + }, + E2E_TIMEOUT + ) +}) diff --git a/packages/vue/examples/transition/index.html b/packages/vue/examples/transition/index.html new file mode 100644 index 00000000..e68863ec --- /dev/null +++ b/packages/vue/examples/transition/index.html @@ -0,0 +1,64 @@ + + + + +