| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { compile } from '../src'
- import { getCompiledString } from './utils'
- describe('ssr: text', () => {
- test('static text', () => {
- expect(getCompiledString(`foo`)).toMatchInlineSnapshot(`"\`foo\`"`)
- })
- test('static text with template string special chars', () => {
- expect(getCompiledString(`\`\${foo}\``)).toMatchInlineSnapshot(
- `"\`\\\`\\\${foo}\\\`\`"`,
- )
- })
- test('static text with char escape', () => {
- // the desired generated code should be `\\\$foo`
- // snapshot -> inline snapshot goes through two escapes
- // so that makes a total of 3 * 2 * 2 = 12 back slashes
- expect(getCompiledString(`\\$foo`)).toMatchInlineSnapshot(
- `"\`\\\\\\$foo\`"`,
- )
- })
- test('comments', () => {
- expect(getCompiledString(`<!--bar-->`)).toMatchInlineSnapshot(
- `"\`<!--bar-->\`"`,
- )
- })
- test('static text escape', () => {
- expect(getCompiledString(`<foo>`)).toMatchInlineSnapshot(
- `"\`<foo>\`"`,
- )
- })
- test('nested elements with static text', () => {
- expect(
- getCompiledString(`<div><span>hello</span><span>bye</span></div>`),
- ).toMatchInlineSnapshot(
- `"\`<div><span>hello</span><span>bye</span></div>\`"`,
- )
- })
- test('interpolation', () => {
- expect(compile(`foo {{ bar }} baz`).code).toMatchInlineSnapshot(`
- "const { ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
- return function ssrRender(_ctx, _push, _parent, _attrs) {
- _push(\`foo \${_ssrInterpolate(_ctx.bar)} baz\`)
- }"
- `)
- })
- test('nested elements with interpolation', () => {
- expect(
- compile(`<div><span>{{ foo }} bar</span><span>baz {{ qux }}</span></div>`)
- .code,
- ).toMatchInlineSnapshot(`
- "const { ssrRenderAttrs: _ssrRenderAttrs, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
- return function ssrRender(_ctx, _push, _parent, _attrs) {
- _push(\`<div\${
- _ssrRenderAttrs(_attrs)
- }><span>\${
- _ssrInterpolate(_ctx.foo)
- } bar</span><span>baz \${
- _ssrInterpolate(_ctx.qux)
- }</span></div>\`)
- }"
- `)
- })
- })
|