Skip to content

Commit 17c8a9c

Browse files
committed
fix: Remove usage of ast-type builders
BREAKING CHANGE: The helpers `resolveObjectValuesToArray` and `resolveObjectKeysToArray` return now `string[]` instead of a `NodePath`
1 parent 2de52a7 commit 17c8a9c

7 files changed

+200
-151
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`resolveObjectKeysToArray can resolve imported objects passed to Object.keys 1`] = `
4+
Array [
5+
"\\"bar\\"",
6+
"\\"foo\\"",
7+
"\\"1\\"",
8+
"\\"2\\"",
9+
"\\"3\\"",
10+
"\\"baz\\"",
11+
]
12+
`;
13+
14+
exports[`resolveObjectKeysToArray can resolve spreads from imported objects 1`] = `
15+
Array [
16+
"\\"foo\\"",
17+
"\\"baz\\"",
18+
"\\"bar\\"",
19+
]
20+
`;
21+
22+
exports[`resolveObjectKeysToArray resolves Object.keys but ignores duplicates 1`] = `
23+
Array [
24+
"\\"boo\\"",
25+
"\\"foo\\"",
26+
"\\"doo\\"",
27+
]
28+
`;
29+
30+
exports[`resolveObjectKeysToArray resolves Object.keys but ignores duplicates with getter and setter 1`] = `
31+
Array [
32+
"\\"x\\"",
33+
]
34+
`;
35+
36+
exports[`resolveObjectKeysToArray resolves Object.keys when using getters 1`] = `
37+
Array [
38+
"\\"boo\\"",
39+
"\\"foo\\"",
40+
"\\"bar\\"",
41+
]
42+
`;
43+
44+
exports[`resolveObjectKeysToArray resolves Object.keys when using resolvable spread 1`] = `
45+
Array [
46+
"\\"boo\\"",
47+
"\\"foo\\"",
48+
"\\"doo\\"",
49+
]
50+
`;
51+
52+
exports[`resolveObjectKeysToArray resolves Object.keys when using setters 1`] = `
53+
Array [
54+
"\\"boo\\"",
55+
"\\"foo\\"",
56+
"\\"bar\\"",
57+
]
58+
`;
59+
60+
exports[`resolveObjectKeysToArray resolves Object.keys with identifiers 1`] = `
61+
Array [
62+
"\\"bar\\"",
63+
"\\"foo\\"",
64+
]
65+
`;
66+
67+
exports[`resolveObjectKeysToArray resolves Object.keys with literals 1`] = `
68+
Array [
69+
"\\"bar\\"",
70+
"\\"5\\"",
71+
]
72+
`;
73+
74+
exports[`resolveObjectKeysToArray resolves Object.keys with literals as computed key 1`] = `
75+
Array [
76+
"\\"bar\\"",
77+
"\\"5\\"",
78+
]
79+
`;
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`resolveObjectValuesToArray can resolve imported objects passed to Object.values 1`] = `
4+
Array [
5+
"\\"bar\\"",
6+
"\\"foo\\"",
7+
"0",
8+
"5",
9+
"null",
10+
"null",
11+
"7",
12+
"\\"foo\\"",
13+
]
14+
`;
15+
16+
exports[`resolveObjectValuesToArray can resolve spreads from imported objects 1`] = `
17+
Array [
18+
"\\"bar\\"",
19+
"\\"baz\\"",
20+
"\\"foo\\"",
21+
]
22+
`;
23+
24+
exports[`resolveObjectValuesToArray resolves Object.values but ignores duplicates 1`] = `
25+
Array [
26+
"1",
27+
"5",
28+
"2",
29+
]
30+
`;
31+
32+
exports[`resolveObjectValuesToArray resolves Object.values but ignores duplicates with getter and setter 1`] = `Array []`;
33+
34+
exports[`resolveObjectValuesToArray resolves Object.values when using getters 1`] = `
35+
Array [
36+
"1",
37+
"2",
38+
]
39+
`;
40+
41+
exports[`resolveObjectValuesToArray resolves Object.values when using resolvable spread 1`] = `
42+
Array [
43+
"1",
44+
"4",
45+
"2",
46+
]
47+
`;
48+
49+
exports[`resolveObjectValuesToArray resolves Object.values when using setters 1`] = `
50+
Array [
51+
"1",
52+
"2",
53+
]
54+
`;
55+
56+
exports[`resolveObjectValuesToArray resolves Object.values with literals as computed key 1`] = `
57+
Array [
58+
"2",
59+
"1",
60+
]
61+
`;
62+
63+
exports[`resolveObjectValuesToArray resolves Object.values with numbers 1`] = `
64+
Array [
65+
"0",
66+
"5",
67+
]
68+
`;
69+
70+
exports[`resolveObjectValuesToArray resolves Object.values with strings 1`] = `
71+
Array [
72+
"\\"bar\\"",
73+
"\\"foo\\"",
74+
]
75+
`;
76+
77+
exports[`resolveObjectValuesToArray resolves Object.values with undefined or null 1`] = `
78+
Array [
79+
"null",
80+
"null",
81+
]
82+
`;
Lines changed: 10 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { builders } from 'ast-types';
21
import {
32
statement,
43
noopImporter,
@@ -32,38 +31,23 @@ describe('resolveObjectKeysToArray', () => {
3231
['var foo = { bar: 1, foo: 2 };', 'Object.keys(foo);'].join('\n'),
3332
);
3433

35-
expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
36-
builders.arrayExpression([
37-
builders.literal('bar'),
38-
builders.literal('foo'),
39-
]),
40-
);
34+
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
4135
});
4236

4337
it('resolves Object.keys with literals', () => {
4438
const path = expressionLast(
4539
['var foo = { "bar": 1, 5: 2 };', 'Object.keys(foo);'].join('\n'),
4640
);
4741

48-
expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
49-
builders.arrayExpression([
50-
builders.literal('bar'),
51-
builders.literal('5'),
52-
]),
53-
);
42+
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
5443
});
5544

5645
it('resolves Object.keys with literals as computed key', () => {
5746
const path = expressionLast(
5847
['var foo = { ["bar"]: 1, [5]: 2};', 'Object.keys(foo);'].join('\n'),
5948
);
6049

61-
expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
62-
builders.arrayExpression([
63-
builders.literal('bar'),
64-
builders.literal('5'),
65-
]),
66-
);
50+
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
6751
});
6852

6953
it('resolves Object.keys when using resolvable spread', () => {
@@ -75,13 +59,7 @@ describe('resolveObjectKeysToArray', () => {
7559
].join('\n'),
7660
);
7761

78-
expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
79-
builders.arrayExpression([
80-
builders.literal('boo'),
81-
builders.literal('foo'),
82-
builders.literal('doo'),
83-
]),
84-
);
62+
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
8563
});
8664

8765
it('resolves Object.keys when using getters', () => {
@@ -91,13 +69,7 @@ describe('resolveObjectKeysToArray', () => {
9169
),
9270
);
9371

94-
expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
95-
builders.arrayExpression([
96-
builders.literal('boo'),
97-
builders.literal('foo'),
98-
builders.literal('bar'),
99-
]),
100-
);
72+
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
10173
});
10274

10375
it('resolves Object.keys when using setters', () => {
@@ -108,13 +80,7 @@ describe('resolveObjectKeysToArray', () => {
10880
].join('\n'),
10981
);
11082

111-
expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
112-
builders.arrayExpression([
113-
builders.literal('boo'),
114-
builders.literal('foo'),
115-
builders.literal('bar'),
116-
]),
117-
);
83+
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
11884
});
11985

12086
it('resolves Object.keys but ignores duplicates', () => {
@@ -126,13 +92,7 @@ describe('resolveObjectKeysToArray', () => {
12692
].join('\n'),
12793
);
12894

129-
expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
130-
builders.arrayExpression([
131-
builders.literal('boo'),
132-
builders.literal('foo'),
133-
builders.literal('doo'),
134-
]),
135-
);
95+
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
13696
});
13797

13898
it('resolves Object.keys but ignores duplicates with getter and setter', () => {
@@ -142,9 +102,7 @@ describe('resolveObjectKeysToArray', () => {
142102
),
143103
);
144104

145-
expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
146-
builders.arrayExpression([builders.literal('x')]),
147-
);
105+
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
148106
});
149107

150108
it('does not resolve Object.keys when using unresolvable spread', () => {
@@ -169,16 +127,7 @@ describe('resolveObjectKeysToArray', () => {
169127
Object.keys(foo);
170128
`);
171129

172-
expect(resolveObjectKeysToArray(path, mockImporter)).toEqualASTNode(
173-
builders.arrayExpression([
174-
builders.literal('bar'),
175-
builders.literal('foo'),
176-
builders.literal(1),
177-
builders.literal(2),
178-
builders.literal(3),
179-
builders.literal('baz'),
180-
]),
181-
);
130+
expect(resolveObjectKeysToArray(path, mockImporter)).toMatchSnapshot();
182131
});
183132

184133
it('can resolve spreads from imported objects', () => {
@@ -188,12 +137,6 @@ describe('resolveObjectKeysToArray', () => {
188137
Object.keys(abc);
189138
`);
190139

191-
expect(resolveObjectKeysToArray(path, mockImporter)).toEqualASTNode(
192-
builders.arrayExpression([
193-
builders.literal('foo'),
194-
builders.literal('baz'),
195-
builders.literal('bar'),
196-
]),
197-
);
140+
expect(resolveObjectKeysToArray(path, mockImporter)).toMatchSnapshot();
198141
});
199142
});

0 commit comments

Comments
 (0)