-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.test.js
115 lines (106 loc) · 2.31 KB
/
index.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
const { transformSync } = require('@babel/core');
const plugin = require('./index');
expect.addSnapshotSerializer({
print: (val) => val,
test: () => true,
});
const transform = (input) => {
const { code } = transformSync(input, {
plugins: [plugin],
});
return code;
};
describe('named-exports-order', () => {
it('named exports', () => {
expect(
transform(`
export const a = 0;
export const b = 1;
`)
).toMatchInlineSnapshot(`
export const a = 0;
export const b = 1;
export const __namedExportsOrder = ["a", "b"];
`);
});
it('default export', () => {
expect(
transform(`
export default { title: 'foo' };
export const a = 0;
`)
).toMatchInlineSnapshot(`
export default {
title: 'foo'
};
export const a = 0;
export const __namedExportsOrder = ["a"];
`);
});
it('no exports', () => {
expect(
transform(`
const a = 0;
const b = 1;
`)
).toMatchInlineSnapshot(`
const a = 0;
const b = 1;
`);
});
it('export specifiers', () => {
expect(
transform(`
const a = 0;
const b = 1;
export { a, b };
`)
).toMatchInlineSnapshot(`
const a = 0;
const b = 1;
export { a, b };
export const __namedExportsOrder = ["a", "b"];
`);
});
it('function exports', () => {
expect(
transform(`
export function b() {};
export function c() {};
`)
).toMatchInlineSnapshot(`
export function b() {}
;
export function c() {}
;
export const __namedExportsOrder = ["b", "c"];
`);
});
it('duplicate named exports order', () => {
expect(
transform(`
export const a = 0;
export const __namedExportsOrder = ["a", "b"];
export const b = 1;
`)
).toMatchInlineSnapshot(`
export const a = 0;
export const __namedExportsOrder = ["a", "b"];
export const b = 1;
`);
});
it('mixed', () => {
expect(
transform(`
export const a = 0;
export function b () {}
export { a as c };
`)
).toMatchInlineSnapshot(`
export const a = 0;
export function b() {}
export { a as c };
export const __namedExportsOrder = ["a", "b", "c"];
`);
});
});