ssrPortal.spec.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { compile } from '../src'
  2. describe('ssr compile: teleport', () => {
  3. test('should work', () => {
  4. expect(compile(`<teleport :target="target"><div/></teleport>`).code)
  5. .toMatchInlineSnapshot(`
  6. "const { ssrRenderTeleport: _ssrRenderTeleport } = require(\\"@vue/server-renderer\\")
  7. return function ssrRender(_ctx, _push, _parent, _attrs) {
  8. _ssrRenderTeleport(_push, (_push) => {
  9. _push(\`<div></div>\`)
  10. }, _ctx.target, false, _parent)
  11. }"
  12. `)
  13. })
  14. test('disabled prop handling', () => {
  15. expect(
  16. compile(`<teleport :target="target" disabled><div/></teleport>`).code
  17. ).toMatchInlineSnapshot(`
  18. "const { ssrRenderTeleport: _ssrRenderTeleport } = require(\\"@vue/server-renderer\\")
  19. return function ssrRender(_ctx, _push, _parent, _attrs) {
  20. _ssrRenderTeleport(_push, (_push) => {
  21. _push(\`<div></div>\`)
  22. }, _ctx.target, true, _parent)
  23. }"
  24. `)
  25. expect(
  26. compile(`<teleport :target="target" :disabled="foo"><div/></teleport>`)
  27. .code
  28. ).toMatchInlineSnapshot(`
  29. "const { ssrRenderTeleport: _ssrRenderTeleport } = require(\\"@vue/server-renderer\\")
  30. return function ssrRender(_ctx, _push, _parent, _attrs) {
  31. _ssrRenderTeleport(_push, (_push) => {
  32. _push(\`<div></div>\`)
  33. }, _ctx.target, _ctx.foo, _parent)
  34. }"
  35. `)
  36. })
  37. })