1import { rewriteDefault } from '../src'23describe('compiler sfc: rewriteDefault', () => {4 test('without export default', () => {5 expect(rewriteDefault(`export a = {}`, 'script')).toMatchInlineSnapshot(`6 "export a = {}7 const script = {}"8 `)9 })1011 test('rewrite export default', () => {12 expect(13 rewriteDefault(`export default {}`, 'script')14 ).toMatchInlineSnapshot(`"const script = {}"`)15 })1617 test('rewrite export named default', () => {18 expect(19 rewriteDefault(20 `const a = 1 \n export { a as b, a as default, a as c}`,21 'script'22 )23 ).toMatchInlineSnapshot(`24 "const a = 1 25 export { a as b, a as c}26 const script = a"27 `)2829 expect(30 rewriteDefault(31 `const a = 1 \n export { a as b, a as default , a as c}`,32 'script'33 )34 ).toMatchInlineSnapshot(`35 "const a = 1 36 export { a as b, a as c}37 const script = a"38 `)39 })4041 test('w/ comments', async () => {42 expect(rewriteDefault(`// export default\nexport default {}`, 'script'))43 .toMatchInlineSnapshot(`44 "// export default45 const script = {}"46 `)47 })4849 test('export named default multiline', () => {50 expect(51 rewriteDefault(`let App = {}\n export {\nApp as default\n}`, '_sfc_main')52 ).toMatchInlineSnapshot(`53 "let App = {}54 export {55 56 }57 const _sfc_main = App"58 `)59 })6061 test('export named default multiline /w comments', () => {62 expect(63 rewriteDefault(64 `const a = 1 \n export {\n a as b,\n a as default,\n a as c}\n` +65 `// export { myFunction as default }`,66 'script'67 )68 ).toMatchInlineSnapshot(`69 "const a = 1 70 export {71 a as b,72 73 a as c}74 // export { myFunction as default }75 const script = a"76 `)7778 expect(79 rewriteDefault(80 `const a = 1 \n export {\n a as b,\n a as default ,\n a as c}\n` +81 `// export { myFunction as default }`,82 'script'83 )84 ).toMatchInlineSnapshot(`85 "const a = 1 86 export {87 a as b,88 89 a as c}90 // export { myFunction as default }91 const script = a"92 `)93 })9495 test(`export { default } from '...'`, async () => {96 expect(97 rewriteDefault(`export { default, foo } from './index.js'`, 'script')98 ).toMatchInlineSnapshot(`99 "import { default as __VUE_DEFAULT__ } from './index.js'100 export { foo } from './index.js'101 const script = __VUE_DEFAULT__"102 `)103104 expect(105 rewriteDefault(`export { default , foo } from './index.js'`, 'script')106 ).toMatchInlineSnapshot(`107 "import { default as __VUE_DEFAULT__ } from './index.js'108 export { foo } from './index.js'109 const script = __VUE_DEFAULT__"110 `)111112 expect(113 rewriteDefault(`export { foo, default } from './index.js'`, 'script')114 ).toMatchInlineSnapshot(`115 "import { default as __VUE_DEFAULT__ } from './index.js'116 export { foo, } from './index.js'117 const script = __VUE_DEFAULT__"118 `)119120 expect(121 rewriteDefault(122 `export { foo as default, bar } from './index.js'`,123 'script'124 )125 ).toMatchInlineSnapshot(`126 "import { foo } from './index.js'127 export { bar } from './index.js'128 const script = foo"129 `)130131 expect(132 rewriteDefault(133 `export { foo as default , bar } from './index.js'`,134 'script'135 )136 ).toMatchInlineSnapshot(`137 "import { foo } from './index.js'138 export { bar } from './index.js'139 const script = foo"140 `)141142 expect(143 rewriteDefault(144 `export { bar, foo as default } from './index.js'`,145 'script'146 )147 ).toMatchInlineSnapshot(`148 "import { foo } from './index.js'149 export { bar, } from './index.js'150 const script = foo"151 `)152 })153154 test('export default class', async () => {155 expect(rewriteDefault(`export default class Foo {}`, 'script'))156 .toMatchInlineSnapshot(`157 "class Foo {}158 const script = Foo"159 `)160 })161162 test('export default class w/ comments', async () => {163 expect(164 rewriteDefault(`// export default\nexport default class Foo {}`, 'script')165 ).toMatchInlineSnapshot(`166 "// export default167 class Foo {}168 const script = Foo"169 `)170 })171172 test('export default class w/ comments 2', async () => {173 expect(174 rewriteDefault(175 `export default {}\n` + `// export default class Foo {}`,176 'script'177 )178 ).toMatchInlineSnapshot(`179 "const script = {}180 // export default class Foo {}"181 `)182 })183184 test('export default class w/ comments 3', async () => {185 expect(186 rewriteDefault(187 `/*\nexport default class Foo {}*/\n` + `export default class Bar {}`,188 'script'189 )190 ).toMatchInlineSnapshot(`191 "/*192 export default class Foo {}*/193 class Bar {}194 const script = Bar"195 `)196 })197198 test('@Component\nexport default class', async () => {199 expect(rewriteDefault(`@Component\nexport default class Foo {}`, 'script'))200 .toMatchInlineSnapshot(`201 "@Component202 class Foo {}203 const script = Foo"204 `)205 })206207 test('@Component\nexport default class w/ comments', async () => {208 expect(209 rewriteDefault(210 `// export default\n@Component\nexport default class Foo {}`,211 'script'212 )213 ).toMatchInlineSnapshot(`214 "// export default215 @Component216 class Foo {}217 const script = Foo"218 `)219 })220221 test('@Component\nexport default class w/ comments 2', async () => {222 expect(223 rewriteDefault(224 `export default {}\n` + `// @Component\n// export default class Foo {}`,225 'script'226 )227 ).toMatchInlineSnapshot(`228 "const script = {}229 // @Component230 // export default class Foo {}"231 `)232 })233234 test('@Component\nexport default class w/ comments 3', async () => {235 expect(236 rewriteDefault(237 `/*\n@Component\nexport default class Foo {}*/\n` +238 `export default class Bar {}`,239 'script'240 )241 ).toMatchInlineSnapshot(`242 "/*243 @Component244 export default class Foo {}*/245 class Bar {}246 const script = Bar"247 `)248 })249250 // #13060251 test('@Component\nexport default class w/ comments 4', async () => {252 expect(253 rewriteDefault(254 `@Component255 export default class App extends Vue {256 /* default <- This word means my component is not built correctly */257 @Prop({ type: String, required: true })258 protected someString: string;259 }`,260 'script'261 )262 ).toMatchInlineSnapshot(`263 "@Component264 class App extends Vue {265 /* default <- This word means my component is not built correctly */266 @Prop({ type: String, required: true })267 protected someString: string;268 }269 const script = App"270 `)271 })272273 // #12892274 test('@Component\nexport default class w/ comments 5', async () => {275 expect(276 rewriteDefault(277 `@Component({})278 export default class HelloWorld extends Vue {279 test = "";280 mounted() {281 console.log("mounted!");282 this.test = "Hallo Welt!";283 }284 exportieren(): void {285 // do nothing286 }287 defaultWert(): void {288 // do nothing289 }290 }`,291 'script',292 ['typescript', 'decorators-legacy']293 )294 ).toMatchInlineSnapshot(`295 "@Component({}) class HelloWorld extends Vue {296 test = "";297 mounted() {298 console.log("mounted!");299 this.test = "Hallo Welt!";300 }301 exportieren(): void {302 // do nothing303 }304 defaultWert(): void {305 // do nothing306 }307 }308 const script = HelloWorld"309 `)310 })311})
Findings
✓ No findings reported for this file.