import swc from '../..'; it("should compress", async () => { const { code } = await swc.minify(` import foo from '@src/app'; console.log(foo) `); expect(code).toMatchInlineSnapshot(`"import foo from'@src/app';console.log(foo)"`); }) it("should accept object", async () => { const { code } = await swc.minify(` import foo from '@src/app'; console.log(foo) `, {}); expect(code).toMatchInlineSnapshot(`"import foo from'@src/app';console.log(foo)"`); }) it("should accpept { mangle = true }", async () => { const { code } = await swc.minify(` import foo from '@src/app'; console.log(foo) `, { compress: false, mangle: true, }); expect(code).toMatchInlineSnapshot(`"import a from'@src/app';console.log(a)"`); }) it("should accpept { mangle = object }", async () => { const { code } = await swc.minify(` import foo from '@src/app'; console.log(foo) `, { compress: false, mangle: { topLevel: true }, }); expect(code).toMatchInlineSnapshot(`"import a from'@src/app';console.log(a)"`); }) it("should mangle locals", async () => { const { code } = await swc.minify(` (function(){ const longName = Math.random() + '_' + Math.random(); console.log(longName); console.log(longName); console.log(longName); console.log(longName); console.log(longName); console.log(longName); })() `, { compress: false, mangle: { topLevel: true }, }); expect(code).toMatchInlineSnapshot(`"(function(){const a=Math.random()+'_'+Math.random();console.log(a);console.log(a);console.log(a);console.log(a);console.log(a);console.log(a)})()"`); }) describe('soruce map', () => { it("should have `names`", async () => { const { map } = await swc.minify(` (function(){ const longName = Math.random() + '_' + Math.random(); console.log(longName); console.log(longName); })() `, { sourceMap: true, compress: false, mangle: { topLevel: true }, }); expect(JSON.parse(map)).toHaveProperty("names"); expect(JSON.parse(map).names).not.toEqual([]) }); it("should have `sources` if file name is speicified", async () => { const { map } = await swc.minify({ 'foo.js': `(function(){ const longName = Math.random() + '_' + Math.random(); console.log(longName); })()` }, { sourceMap: true, compress: false, mangle: { topLevel: true }, }); const j = JSON.parse(map); expect(j).toHaveProperty("sources"); expect(j.sources).not.toEqual([]); }); }) describe('transform apis', () => { it("handle jsc.minify", async () => { const { code } = await swc.transform(` (function(){ const longName = Math.random() + '_' + Math.random(); console.log(longName); console.log(longName); console.log(longName); console.log(longName); console.log(longName); console.log(longName); })() `, { jsc: { minify: { compress: false, mangle: { topLevel: true }, } }, minify: true, }); expect(code).toMatchInlineSnapshot(`"(function(){var a=Math.random()+'_'+Math.random();console.log(a);console.log(a);console.log(a);console.log(a);console.log(a);console.log(a)})()"`); }) })