mirror of https://github.com/webpack/webpack.git
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
import * as C from "./reexport-namespace";
|
|
import { counter } from "./reexport-namespace";
|
|
import { exportsInfo } from "./counter";
|
|
import { exportsInfo as exportsInfo2 } from "./counter2";
|
|
import * as counter3 from "./counter3";
|
|
import * as counter4 from "./counter4";
|
|
|
|
it("expect tree-shake unused exports #1", () => {
|
|
const { D } = C;
|
|
expect(D).toBe(1);
|
|
expect(C.exportsInfo.D).toBe(true);
|
|
expect(C.exportsInfo.E).toBe(false);
|
|
});
|
|
|
|
it("expect tree-shake unused exports #2", () => {
|
|
const { d, c } = C.counter;
|
|
const { ['d']: d1 } = counter;
|
|
expect(d).toBe(1);
|
|
expect(c).toBe(1);
|
|
expect(d1).toBe(1);
|
|
expect(exportsInfo.d).toBe(true);
|
|
expect(exportsInfo.c).toBe(true);
|
|
expect(exportsInfo.counter).toBe(false);
|
|
});
|
|
|
|
it("expect multiple assignment work correctly", () => {
|
|
const { e, d: d1 } = counter4;
|
|
let c1;
|
|
const { f, d: d2 } = { c: c1 } = counter4;
|
|
expect(c1).toBe(1);
|
|
expect(d1).toBe(1);
|
|
expect(d2).toBe(1);
|
|
expect(e).toBe(1);
|
|
expect(f).toBe(1);
|
|
expect(counter4.exportsInfo.c).toBe(true);
|
|
expect(counter4.exportsInfo.d).toBe(true);
|
|
expect(counter4.exportsInfo.e).toBe(true);
|
|
expect(counter4.exportsInfo.f).toBe(true);
|
|
expect(counter4.exportsInfo.g).toBe(false);
|
|
expect(counter4.exportsInfo.counter).toBe(false);
|
|
});
|
|
|
|
it("expect tree-shake bailout when rest element is used", () => {
|
|
const { d, ...rest } = counter3;
|
|
expect(d).toBe(1);
|
|
expect(rest.exportsInfo.d).toBe(true);
|
|
expect(rest.exportsInfo.counter).toBe(true);
|
|
});
|
|
|
|
it("expect support of \"deep\" tree-shaking", () => {
|
|
const { counter2: { d } } = C;
|
|
expect(d).toBe(1);
|
|
expect(exportsInfo2.d).toBe(true);
|
|
expect(exportsInfo2.counter).toBe(false);
|
|
});
|