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

80 lines
2.5 KiB
TypeScript
Raw Normal View History

2020-02-05 10:03:16 +08:00
import { compile } from '../src'
describe('ssr: v-show', () => {
test('basic', () => {
expect(compile(`<div v-show="foo"/>`).code).toMatchInlineSnapshot(`
"const { ssrRenderStyle: _ssrRenderStyle } = require(\\"@vue/server-renderer\\")
2020-02-05 10:03:16 +08:00
return function ssrRender(_ctx, _push, _parent) {
2020-02-16 00:10:52 +08:00
_push(\`<div style=\\"\${_ssrRenderStyle((_ctx.foo) ? null : { display: \\"none\\" })}\\"></div>\`)
2020-02-05 10:03:16 +08:00
}"
`)
})
test('with static style', () => {
expect(compile(`<div style="color:red" v-show="foo"/>`).code)
.toMatchInlineSnapshot(`
"const { ssrRenderStyle: _ssrRenderStyle } = require(\\"@vue/server-renderer\\")
2020-02-05 10:03:16 +08:00
return function ssrRender(_ctx, _push, _parent) {
2020-02-16 00:10:52 +08:00
_push(\`<div style=\\"\${_ssrRenderStyle([
{\\"color\\":\\"red\\"},
2020-02-05 10:03:16 +08:00
(_ctx.foo) ? null : { display: \\"none\\" }
2020-02-16 00:10:52 +08:00
])}\\"></div>\`)
2020-02-05 10:03:16 +08:00
}"
`)
})
test('with dynamic style', () => {
expect(compile(`<div :style="{ color: 'red' }" v-show="foo"/>`).code)
.toMatchInlineSnapshot(`
"const { ssrRenderStyle: _ssrRenderStyle } = require(\\"@vue/server-renderer\\")
2020-02-05 10:03:16 +08:00
return function ssrRender(_ctx, _push, _parent) {
2020-02-16 00:10:52 +08:00
_push(\`<div style=\\"\${_ssrRenderStyle([
2020-02-05 10:03:16 +08:00
{ color: 'red' },
(_ctx.foo) ? null : { display: \\"none\\" }
2020-02-16 00:10:52 +08:00
])}\\"></div>\`)
2020-02-05 10:03:16 +08:00
}"
`)
})
test('with static + dynamic style', () => {
expect(
compile(`<div style="color:red" :style="{ fontSize: 14 }" v-show="foo"/>`)
.code
).toMatchInlineSnapshot(`
"const { ssrRenderStyle: _ssrRenderStyle } = require(\\"@vue/server-renderer\\")
2020-02-05 10:03:16 +08:00
return function ssrRender(_ctx, _push, _parent) {
2020-02-16 00:10:52 +08:00
_push(\`<div style=\\"\${_ssrRenderStyle([
{\\"color\\":\\"red\\"},
2020-02-05 10:03:16 +08:00
{ fontSize: 14 },
(_ctx.foo) ? null : { display: \\"none\\" }
2020-02-16 00:10:52 +08:00
])}\\"></div>\`)
2020-02-05 10:03:16 +08:00
}"
`)
})
test('with v-bind', () => {
expect(
compile(
`<div v-bind="baz" style="color:red" :style="{ fontSize: 14 }" v-show="foo"/>`
).code
).toMatchInlineSnapshot(`
"const { mergeProps: _mergeProps } = require(\\"vue\\")
const { ssrRenderAttrs: _ssrRenderAttrs } = require(\\"@vue/server-renderer\\")
2020-02-05 10:03:16 +08:00
return function ssrRender(_ctx, _push, _parent) {
_push(\`<div\${_ssrRenderAttrs(_mergeProps(_ctx.baz, {
2020-02-05 10:03:16 +08:00
style: [
{\\"color\\":\\"red\\"},
2020-02-05 10:03:16 +08:00
{ fontSize: 14 },
(_ctx.foo) ? null : { display: \\"none\\" }
]
}))}></div>\`)
}"
`)
})
})