defineExpose.spec.ts 737 B

1234567891011121314151617181920212223242526
  1. import { assertCode, compileSFCScript as compile } from '../utils'
  2. test('defineExpose()', () => {
  3. const { content } = compile(`
  4. <script setup>
  5. defineExpose({ foo: 123 })
  6. </script>
  7. `)
  8. assertCode(content)
  9. // should remove defineOptions import and call
  10. expect(content).not.toMatch('defineExpose')
  11. // should generate correct setup signature
  12. expect(content).toMatch(`setup(__props, { expose: __expose }) {`)
  13. // should replace callee
  14. expect(content).toMatch(/\b__expose\(\{ foo: 123 \}\)/)
  15. })
  16. test('<script> after <script setup> the script content not end with `\\n`', () => {
  17. const { content } = compile(`
  18. <script setup>
  19. import { x } from './x'
  20. </script>
  21. <script>const n = 1</script>
  22. `)
  23. assertCode(content)
  24. })