ssrPortal.spec.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { compile } from '../src'
  2. describe('ssr compile: teleport', () => {
  3. test('should work', () => {
  4. expect(compile(`<teleport :to="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(compile(`<teleport :to="target" disabled><div/></teleport>`).code)
  16. .toMatchInlineSnapshot(`
  17. "const { ssrRenderTeleport: _ssrRenderTeleport } = require("vue/server-renderer")
  18. return function ssrRender(_ctx, _push, _parent, _attrs) {
  19. _ssrRenderTeleport(_push, (_push) => {
  20. _push(\`<div></div>\`)
  21. }, _ctx.target, true, _parent)
  22. }"
  23. `)
  24. expect(
  25. compile(`<teleport :to="target" :disabled="foo"><div/></teleport>`).code,
  26. ).toMatchInlineSnapshot(`
  27. "const { ssrRenderTeleport: _ssrRenderTeleport } = require("vue/server-renderer")
  28. return function ssrRender(_ctx, _push, _parent, _attrs) {
  29. _ssrRenderTeleport(_push, (_push) => {
  30. _push(\`<div></div>\`)
  31. }, _ctx.target, _ctx.foo, _parent)
  32. }"
  33. `)
  34. })
  35. })