From: daiwei Date: Thu, 23 Oct 2025 02:59:51 +0000 (+0800) Subject: refactor(tests): simplify imports and reuse compile function X-Git-Tag: v3.6.0-alpha.3~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d8f944ee3996f0b49b3a8fd84ed3931304d6cfa;p=thirdparty%2Fvuejs%2Fcore.git refactor(tests): simplify imports and reuse compile function --- diff --git a/packages/runtime-vapor/__tests__/hydration.spec.ts b/packages/runtime-vapor/__tests__/hydration.spec.ts index fea78e9be1..17174408ee 100644 --- a/packages/runtime-vapor/__tests__/hydration.spec.ts +++ b/packages/runtime-vapor/__tests__/hydration.spec.ts @@ -4,13 +4,10 @@ import { delegateEvents, } from '../src' import { defineAsyncComponent, nextTick, reactive, ref } from '@vue/runtime-dom' -import { compileScript, parse } from '@vue/compiler-sfc' -import * as runtimeVapor from '../src' -import * as runtimeDom from '@vue/runtime-dom' -import * as VueServerRenderer from '@vue/server-renderer' import { isString } from '@vue/shared' import type { VaporComponentInstance } from '../src/component' import type { TeleportFragment } from '../src/components/Teleport' +import { VueServerRenderer, compile, runtimeDom, runtimeVapor } from './_utils' const formatHtml = (raw: string) => { return raw @@ -19,48 +16,6 @@ const formatHtml = (raw: string) => { .replace(/\n{2,}/g, '\n') } -const Vue = { ...runtimeDom, ...runtimeVapor } - -function compile( - sfc: string, - data: runtimeDom.Ref, - components: Record = {}, - { vapor = true, ssr = false } = {}, -) { - if (!sfc.includes(`const data = _data; const components = _components;` + - sfc - } - const descriptor = parse(sfc).descriptor - - const script = compileScript(descriptor, { - id: 'x', - isProd: true, - inlineTemplate: true, - genDefaultAs: '__sfc__', - vapor, - templateOptions: { - ssr, - }, - }) - - const code = - script.content - .replace(/\bimport {/g, 'const {') - .replace(/ as _/g, ': _') - .replace(/} from ['"]vue['"]/g, `} = Vue`) - .replace(/} from "vue\/server-renderer"/g, '} = VueServerRenderer') + - '\nreturn __sfc__' - - return new Function('Vue', 'VueServerRenderer', '_data', '_components', code)( - Vue, - VueServerRenderer, - data, - components, - ) -} - async function testWithVaporApp( code: string, components?: Record,