1
- import { collectSourceFiles , FileMap , CollectOptions } from '../src/collect' ;
1
+ import { SourceCollector , FileMap , CollectOptions } from '../src/collect' ;
2
+
3
+ describe ( 'SourceCollector' , ( ) => {
4
+ let collector : SourceCollector ;
5
+ let collectorWithoutContent : SourceCollector ;
6
+ let collectorWithCustomExtensions : SourceCollector ;
7
+
8
+ beforeAll ( ( ) => {
9
+ collector = new SourceCollector ( ) ;
10
+ collectorWithoutContent = new SourceCollector ( { includeContent : false } ) ;
11
+ collectorWithCustomExtensions = new SourceCollector ( { extensions : [ '.custom' , '.ts' ] } ) ;
12
+ } ) ;
2
13
3
- describe ( 'collectSourceFiles' , ( ) => {
4
14
describe ( 'basic functionality' , ( ) => {
5
15
it ( 'should collect a single file with no imports' , ( ) => {
6
16
const files = [ { path : 'main.ts' , content : 'const x = 1;' } ] ;
7
17
8
- const result = collectSourceFiles ( 'main.ts' , files ) ;
18
+ const result = collector . collect ( 'main.ts' , files ) ;
9
19
10
20
expect ( result ) . toEqual ( {
11
21
'main.ts' : 'const x = 1;' ,
@@ -15,7 +25,7 @@ describe('collectSourceFiles', () => {
15
25
it ( 'should return empty object when entry file not found' , ( ) => {
16
26
const files = [ { path : 'other.ts' , content : 'const x = 1;' } ] ;
17
27
18
- const result = collectSourceFiles ( 'main.ts' , files ) ;
28
+ const result = collector . collect ( 'main.ts' , files ) ;
19
29
20
30
expect ( result ) . toEqual ( { } ) ;
21
31
} ) ;
@@ -28,7 +38,7 @@ describe('collectSourceFiles', () => {
28
38
{ path : 'helper.ts' , content : 'export const foo = 1;' } ,
29
39
] ;
30
40
31
- const result = collectSourceFiles ( 'main.ts' , files ) ;
41
+ const result = collector . collect ( 'main.ts' , files ) ;
32
42
33
43
expect ( result ) . toEqual ( {
34
44
'main.ts' : 'import { foo } from "./helper";' ,
@@ -46,7 +56,7 @@ describe('collectSourceFiles', () => {
46
56
{ path : 'utils/shared.ts' , content : 'export const bar = 1;' } ,
47
57
] ;
48
58
49
- const result = collectSourceFiles ( 'main.ts' , files ) ;
59
+ const result = collector . collect ( 'main.ts' , files ) ;
50
60
51
61
expect ( result ) . toEqual ( {
52
62
'main.ts' : 'import { foo } from "./utils/helper";' ,
@@ -61,7 +71,7 @@ describe('collectSourceFiles', () => {
61
71
{ path : 'utils/helper.ts' , content : 'export const foo = 1;' } ,
62
72
] ;
63
73
64
- const result = collectSourceFiles ( 'src/main.ts' , files ) ;
74
+ const result = collector . collect ( 'src/main.ts' , files ) ;
65
75
66
76
expect ( result ) . toEqual ( {
67
77
'src/main.ts' : 'import { foo } from "../utils/helper";' ,
@@ -92,7 +102,7 @@ describe('collectSourceFiles', () => {
92
102
{ path : 'helper6.ts' , content : 'export const baz = 1;' } ,
93
103
] ;
94
104
95
- const result = collectSourceFiles ( 'main.ts' , files ) ;
105
+ const result = collector . collect ( 'main.ts' , files ) ;
96
106
const keys = Object . keys ( result ) ;
97
107
98
108
expect ( keys ) . toHaveLength ( 7 ) ;
@@ -118,7 +128,7 @@ describe('collectSourceFiles', () => {
118
128
{ path : 'helper.ts' , content : 'export const foo = 1;' } ,
119
129
] ;
120
130
121
- const result = collectSourceFiles ( 'main.ts' , files ) ;
131
+ const result = collector . collect ( 'main.ts' , files ) ;
122
132
const keys = Object . keys ( result ) ;
123
133
124
134
expect ( keys ) . toHaveLength ( 2 ) ;
@@ -135,7 +145,7 @@ describe('collectSourceFiles', () => {
135
145
{ path : 'helper.ts' , content : 'export const foo = 1;' } ,
136
146
] ;
137
147
138
- const result = collectSourceFiles ( 'main.ts' , files ) ;
148
+ const result = collector . collect ( 'main.ts' , files ) ;
139
149
140
150
expect ( result ) . toEqual ( {
141
151
'main.ts' : 'import { foo } from "./helper";' ,
@@ -149,7 +159,7 @@ describe('collectSourceFiles', () => {
149
159
{ path : 'helper.jsx' , content : 'export const foo = 1;' } ,
150
160
] ;
151
161
152
- const result = collectSourceFiles ( 'main.ts' , files ) ;
162
+ const result = collector . collect ( 'main.ts' , files ) ;
153
163
154
164
expect ( result ) . toEqual ( {
155
165
'main.ts' : 'import { foo } from "./helper";' ,
@@ -163,11 +173,7 @@ describe('collectSourceFiles', () => {
163
173
{ path : 'helper.custom' , content : 'export const foo = 1;' } ,
164
174
] ;
165
175
166
- const options : CollectOptions = {
167
- extensions : [ '.custom' , '.ts' ] ,
168
- } ;
169
-
170
- const result = collectSourceFiles ( 'main.ts' , files , options ) ;
176
+ const result = collectorWithCustomExtensions . collect ( 'main.ts' , files ) ;
171
177
172
178
expect ( result ) . toEqual ( {
173
179
'main.ts' : 'import { foo } from "./helper";' ,
@@ -182,7 +188,7 @@ describe('collectSourceFiles', () => {
182
188
{ path : 'helper.ts' , content : 'export const foo = "with-ext";' } ,
183
189
] ;
184
190
185
- const result = collectSourceFiles ( 'main.ts' , files ) ;
191
+ const result = collector . collect ( 'main.ts' , files ) ;
186
192
187
193
expect ( result [ 'helper' ] ) . toBe ( 'export const foo = "exact";' ) ;
188
194
} ) ;
@@ -195,7 +201,7 @@ describe('collectSourceFiles', () => {
195
201
{ path : 'b.ts' , content : 'import { a } from "./a"; export const b = 2;' } ,
196
202
] ;
197
203
198
- const result = collectSourceFiles ( 'a.ts' , files ) ;
204
+ const result = collector . collect ( 'a.ts' , files ) ;
199
205
200
206
expect ( result ) . toEqual ( {
201
207
'a.ts' : 'import { b } from "./b"; export const a = 1;' ,
@@ -208,7 +214,7 @@ describe('collectSourceFiles', () => {
208
214
{ path : 'main.ts' , content : 'import { foo } from "./main"; export const foo = 1;' } ,
209
215
] ;
210
216
211
- const result = collectSourceFiles ( 'main.ts' , files ) ;
217
+ const result = collector . collect ( 'main.ts' , files ) ;
212
218
213
219
expect ( result ) . toEqual ( {
214
220
'main.ts' : 'import { foo } from "./main"; export const foo = 1;' ,
@@ -223,11 +229,7 @@ describe('collectSourceFiles', () => {
223
229
{ path : 'helper.ts' , content : 'export const foo = 1;' } ,
224
230
] ;
225
231
226
- const options : CollectOptions = {
227
- includeContent : false ,
228
- } ;
229
-
230
- const result = collectSourceFiles ( 'main.ts' , files , options ) ;
232
+ const result = collectorWithoutContent . collect ( 'main.ts' , files ) ;
231
233
232
234
expect ( result ) . toEqual ( {
233
235
'main.ts' : '' ,
@@ -238,8 +240,9 @@ describe('collectSourceFiles', () => {
238
240
it ( 'should use default options when not provided' , ( ) => {
239
241
const files = [ { path : 'main.ts' , content : 'const x = 1;' } ] ;
240
242
241
- const result1 = collectSourceFiles ( 'main.ts' , files ) ;
242
- const result2 = collectSourceFiles ( 'main.ts' , files , { } ) ;
243
+ const result1 = collector . collect ( 'main.ts' , files ) ;
244
+ const collector2 = new SourceCollector ( { } ) ;
245
+ const result2 = collector2 . collect ( 'main.ts' , files ) ;
243
246
244
247
expect ( result1 ) . toEqual ( result2 ) ;
245
248
} ) ;
@@ -249,7 +252,7 @@ describe('collectSourceFiles', () => {
249
252
it ( 'should handle empty file content' , ( ) => {
250
253
const files = [ { path : 'main.ts' , content : '' } ] ;
251
254
252
- const result = collectSourceFiles ( 'main.ts' , files ) ;
255
+ const result = collector . collect ( 'main.ts' , files ) ;
253
256
254
257
expect ( result ) . toEqual ( {
255
258
'main.ts' : '' ,
@@ -261,7 +264,7 @@ describe('collectSourceFiles', () => {
261
264
{ path : 'main.ts' , content : '// This is a comment\n/* Block comment */' } ,
262
265
] ;
263
266
264
- const result = collectSourceFiles ( 'main.ts' , files ) ;
267
+ const result = collector . collect ( 'main.ts' , files ) ;
265
268
266
269
expect ( result ) . toEqual ( {
267
270
'main.ts' : '// This is a comment\n/* Block comment */' ,
@@ -282,7 +285,7 @@ describe('collectSourceFiles', () => {
282
285
{ path : 'helper.ts' , content : 'export const foo = 1;' } ,
283
286
] ;
284
287
285
- const result = collectSourceFiles ( 'main.ts' , files ) ;
288
+ const result = collector . collect ( 'main.ts' , files ) ;
286
289
const keys = Object . keys ( result ) ;
287
290
288
291
expect ( keys ) . toHaveLength ( 2 ) ;
@@ -304,7 +307,7 @@ describe('collectSourceFiles', () => {
304
307
{ path : 'helper.ts' , content : 'export const foo = 1;' } ,
305
308
] ;
306
309
307
- const result = collectSourceFiles ( 'main.ts' , files ) ;
310
+ const result = collector . collect ( 'main.ts' , files ) ;
308
311
const keys = Object . keys ( result ) ;
309
312
310
313
// Should only collect the real import, not the ones in comments/strings
@@ -320,7 +323,7 @@ describe('collectSourceFiles', () => {
320
323
{ path : 'absolute/helper.ts' , content : 'export const foo = 1;' } ,
321
324
] ;
322
325
323
- const result = collectSourceFiles ( 'main.ts' , files ) ;
326
+ const result = collector . collect ( 'main.ts' , files ) ;
324
327
325
328
expect ( result ) . toEqual ( {
326
329
'main.ts' : 'import { foo } from "/absolute/helper";' ,
@@ -331,7 +334,7 @@ describe('collectSourceFiles', () => {
331
334
it ( 'should handle missing intermediate directories' , ( ) => {
332
335
const files = [ { path : 'main.ts' , content : 'import { foo } from "./missing/helper";' } ] ;
333
336
334
- const result = collectSourceFiles ( 'main.ts' , files ) ;
337
+ const result = collector . collect ( 'main.ts' , files ) ;
335
338
336
339
expect ( result ) . toEqual ( {
337
340
'main.ts' : 'import { foo } from "./missing/helper";' ,
@@ -354,7 +357,7 @@ describe('collectSourceFiles', () => {
354
357
{ path : 'src/components/types.ts' , content : 'export interface Props {}' } ,
355
358
] ;
356
359
357
- const result = collectSourceFiles ( 'src/components/Button/index.ts' , files ) ;
360
+ const result = collector . collect ( 'src/components/Button/index.ts' , files ) ;
358
361
const keys = Object . keys ( result ) ;
359
362
360
363
expect ( keys ) . toHaveLength ( 4 ) ;
@@ -382,7 +385,7 @@ describe('collectSourceFiles', () => {
382
385
{ path : 'helper.ts' , content : 'export const helper = {};' } ,
383
386
] ;
384
387
385
- const result = collectSourceFiles ( 'main.ts' , files ) ;
388
+ const result = collector . collect ( 'main.ts' , files ) ;
386
389
const keys = Object . keys ( result ) ;
387
390
388
391
expect ( keys ) . toHaveLength ( 5 ) ;
0 commit comments