import { compile } from '../src'
import { getCompiledString } from './utils'
describe('ssr: text', () => {
test('static text', () => {
expect(getCompiledString(`foo`)).toMatchInlineSnapshot(`"\`foo\`"`)
})
test('static text escape', () => {
expect(getCompiledString(`<foo>`)).toMatchInlineSnapshot(
`"\`<foo>\`"`
)
})
test('nested elements with static text', () => {
expect(
getCompiledString(`
hellobye
`)
).toMatchInlineSnapshot(
`"\`hellobye
\`"`
)
})
test('interpolation', () => {
expect(compile(`foo {{ bar }} baz`).code).toMatchInlineSnapshot(`
"const { ssrInterpolate: _ssrInterpolate } = require(\\"@vue/server-renderer\\")
return function ssrRender(_ctx, _push, _parent) {
_push(\`foo \${_ssrInterpolate(_ctx.bar)} baz\`)
}"
`)
})
test('nested elements with interpolation', () => {
expect(
compile(`{{ foo }} barbaz {{ qux }}
`)
.code
).toMatchInlineSnapshot(`
"const { ssrInterpolate: _ssrInterpolate } = require(\\"@vue/server-renderer\\")
return function ssrRender(_ctx, _push, _parent) {
_push(\`\${
_ssrInterpolate(_ctx.foo)
} barbaz \${
_ssrInterpolate(_ctx.qux)
}
\`)
}"
`)
})
})