feat(ssr): compiler-ssr support for Suspense
This commit is contained in:
51
packages/compiler-ssr/__tests__/ssrSuspense.spec.ts
Normal file
51
packages/compiler-ssr/__tests__/ssrSuspense.spec.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { compile } from '../src'
|
||||
|
||||
describe('ssr compile: suspense', () => {
|
||||
test('implicit default', () => {
|
||||
expect(compile(`<suspense><foo/></suspense>`).code).toMatchInlineSnapshot(`
|
||||
"const { resolveComponent: _resolveComponent } = require(\\"vue\\")
|
||||
const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSuspense: _ssrRenderSuspense } = require(\\"@vue/server-renderer\\")
|
||||
|
||||
return function ssrRender(_ctx, _push, _parent) {
|
||||
const _component_foo = _resolveComponent(\\"foo\\")
|
||||
|
||||
_push(_ssrRenderSuspense({
|
||||
default: (_push) => {
|
||||
_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 } = require(\\"vue\\")
|
||||
const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSuspense: _ssrRenderSuspense } = require(\\"@vue/server-renderer\\")
|
||||
|
||||
return function ssrRender(_ctx, _push, _parent) {
|
||||
const _component_foo = _resolveComponent(\\"foo\\")
|
||||
|
||||
_push(_ssrRenderSuspense({
|
||||
default: (_push) => {
|
||||
_push(_ssrRenderComponent(_component_foo, null, null, _parent))
|
||||
},
|
||||
fallback: (_push) => {
|
||||
_push(\` loading... \`)
|
||||
},
|
||||
_: 1
|
||||
}))
|
||||
}"
|
||||
`)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user