rewriteDefault.spec.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { rewriteDefault } from '../src'
  2. describe('compiler sfc: rewriteDefault', () => {
  3. test('without export default', () => {
  4. expect(rewriteDefault(`export a = {}`, 'script')).toMatchInlineSnapshot(`
  5. "export a = {}
  6. const script = {}"
  7. `)
  8. })
  9. test('rewrite export default', () => {
  10. expect(
  11. rewriteDefault(`export default {}`, 'script')
  12. ).toMatchInlineSnapshot(`"const script = {}"`)
  13. })
  14. test('rewrite export named default', () => {
  15. expect(
  16. rewriteDefault(
  17. `const a = 1 \n export { a as b, a as default, a as c}`,
  18. 'script'
  19. )
  20. ).toMatchInlineSnapshot(`
  21. "const a = 1
  22. export { a as b, a as c}
  23. const script = a"
  24. `)
  25. })
  26. test('w/ comments', async () => {
  27. expect(rewriteDefault(`// export default\nexport default {}`, 'script'))
  28. .toMatchInlineSnapshot(`
  29. "// export default
  30. const script = {}"
  31. `)
  32. })
  33. test('export default class', async () => {
  34. expect(rewriteDefault(`export default class Foo {}`, 'script'))
  35. .toMatchInlineSnapshot(`
  36. "class Foo {}
  37. const script = Foo"
  38. `)
  39. })
  40. test('export default class w/ comments', async () => {
  41. expect(
  42. rewriteDefault(`// export default\nexport default class Foo {}`, 'script')
  43. ).toMatchInlineSnapshot(`
  44. "// export default
  45. class Foo {}
  46. const script = Foo"
  47. `)
  48. })
  49. test('export default class w/ comments 2', async () => {
  50. expect(
  51. rewriteDefault(
  52. `export default {}\n` + `// export default class Foo {}`,
  53. 'script'
  54. )
  55. ).toMatchInlineSnapshot(`
  56. "const script = {}
  57. // export default class Foo {}"
  58. `)
  59. })
  60. test('export default class w/ comments 3', async () => {
  61. expect(
  62. rewriteDefault(
  63. `/*\nexport default class Foo {}*/\n` + `export default class Bar {}`,
  64. 'script'
  65. )
  66. ).toMatchInlineSnapshot(`
  67. "/*
  68. export default class Foo {}*/
  69. const script = class Bar {}"
  70. `)
  71. })
  72. })