vue3-yuanma/packages/compiler-ssr/__tests__/ssrSuspense.spec.ts

52 lines
1.6 KiB
TypeScript

import { compile } from '../src'
describe('ssr compile: suspense', () => {
test('implicit default', () => {
expect(compile(`<suspense><foo/></suspense>`).code).toMatchInlineSnapshot(`
"const { resolveComponent: _resolveComponent, withCtx: _withCtx } = require(\\"vue\\")
const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSuspense: _ssrRenderSuspense } = require(\\"@vue/server-renderer\\")
return function ssrRender(_ctx, _push, _parent) {
const _component_foo = _resolveComponent(\\"foo\\")
_ssrRenderSuspense(_push, {
default: () => {
_push(_ssrRenderComponent(_component_foo, null, null, _parent))
},
_: 1
})
}"
`)
})
test('explicit slots', () => {
expect(
compile(`<suspense>
<template #default>
<foo/>
</template>
<template #fallback>
loading...
</template>
</suspense>`).code
).toMatchInlineSnapshot(`
"const { resolveComponent: _resolveComponent, withCtx: _withCtx } = require(\\"vue\\")
const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSuspense: _ssrRenderSuspense } = require(\\"@vue/server-renderer\\")
return function ssrRender(_ctx, _push, _parent) {
const _component_foo = _resolveComponent(\\"foo\\")
_ssrRenderSuspense(_push, {
default: () => {
_push(_ssrRenderComponent(_component_foo, null, null, _parent))
},
fallback: () => {
_push(\` loading... \`)
},
_: 1
})
}"
`)
})
})