testchimp-runner-core 0.0.87 → 0.0.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,604 @@
1
+ "use strict";
2
+ /**
3
+ * Utilities for parsing test files to extract hooks and tests
4
+ * Supports Playwright hooks: test.beforeAll, test.afterAll, test.beforeEach, test.afterEach
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.TestFileParser = void 0;
44
+ const parser_1 = require("@babel/parser");
45
+ const traverse_1 = __importDefault(require("@babel/traverse"));
46
+ const t = __importStar(require("@babel/types"));
47
+ const generator_1 = __importDefault(require("@babel/generator"));
48
+ class TestFileParser {
49
+ /**
50
+ * Generate full test name with suite prefix
51
+ * @param suitePath - Array of suite names from root to current suite
52
+ * @param testName - Original test name
53
+ * @returns Full test name with suite prefix (e.g., "LoginSuite__testLogin")
54
+ */
55
+ static generateTestFullName(suitePath, testName) {
56
+ if (suitePath.length === 0) {
57
+ return testName;
58
+ }
59
+ return `${suitePath.join('__')}__${testName}`;
60
+ }
61
+ /**
62
+ * Find all parent describe blocks for a given AST path
63
+ * @param path - Babel AST path
64
+ * @returns Array of suite names from root to current (empty if not in any describe block)
65
+ */
66
+ static findSuitePath(path) {
67
+ const suitePath = [];
68
+ let currentPath = path.parentPath;
69
+ while (currentPath) {
70
+ // Check if current path is a test.describe() call
71
+ if (currentPath.isCallExpression()) {
72
+ const callee = currentPath.node.callee;
73
+ if (t.isMemberExpression(callee)) {
74
+ const object = callee.object;
75
+ const property = callee.property;
76
+ if (t.isIdentifier(object) && object.name === 'test' &&
77
+ t.isIdentifier(property) && property.name === 'describe') {
78
+ // Extract suite name from first argument
79
+ if (currentPath.node.arguments.length >= 1) {
80
+ const suiteNameArg = currentPath.node.arguments[0];
81
+ let suiteName = null;
82
+ if (t.isStringLiteral(suiteNameArg)) {
83
+ suiteName = suiteNameArg.value;
84
+ }
85
+ else if (t.isTemplateLiteral(suiteNameArg)) {
86
+ if (suiteNameArg.quasis.length > 0) {
87
+ suiteName = suiteNameArg.quasis[0].value.raw;
88
+ }
89
+ }
90
+ if (suiteName) {
91
+ suitePath.unshift(suiteName); // Add to beginning (root first)
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ currentPath = currentPath.parentPath;
98
+ }
99
+ return suitePath;
100
+ }
101
+ /**
102
+ * Parse a test file to extract hooks and tests, supporting test.describe() blocks
103
+ * @param script - The test file content
104
+ * @param testNames - Optional array of test names to filter (supports both original names and full names with suite prefix)
105
+ * @returns Parsed structure with hooks and tests
106
+ */
107
+ static parseTestFile(script, testNames) {
108
+ const result = {
109
+ fileHooks: {
110
+ beforeAll: [],
111
+ afterAll: [],
112
+ beforeEach: [],
113
+ afterEach: []
114
+ },
115
+ tests: [],
116
+ suites: []
117
+ };
118
+ try {
119
+ // Parse the script with Babel
120
+ const ast = (0, parser_1.parse)(script, {
121
+ sourceType: 'module',
122
+ plugins: ['typescript', 'classProperties', 'decorators-legacy'],
123
+ allowImportExportEverywhere: true
124
+ });
125
+ // Track if we should filter tests
126
+ const shouldFilter = testNames && testNames.length > 0;
127
+ const testNameSet = shouldFilter ? new Set(testNames.map(name => name.trim())) : null;
128
+ // Map to store suites by their path (for nested suite tracking)
129
+ const suiteMap = new Map();
130
+ /**
131
+ * Recursively parse a suite (describe block) and its nested suites
132
+ */
133
+ const parseSuite = (describePath, parentSuitePath) => {
134
+ if (!describePath.isCallExpression()) {
135
+ return null;
136
+ }
137
+ const callee = describePath.node.callee;
138
+ if (!t.isMemberExpression(callee)) {
139
+ return null;
140
+ }
141
+ const object = callee.object;
142
+ const property = callee.property;
143
+ if (!t.isIdentifier(object) || object.name !== 'test' ||
144
+ !t.isIdentifier(property) || property.name !== 'describe') {
145
+ return null;
146
+ }
147
+ // Extract suite name
148
+ if (describePath.node.arguments.length < 2) {
149
+ return null;
150
+ }
151
+ const suiteNameArg = describePath.node.arguments[0];
152
+ let suiteName = null;
153
+ if (t.isStringLiteral(suiteNameArg)) {
154
+ suiteName = suiteNameArg.value;
155
+ }
156
+ else if (t.isTemplateLiteral(suiteNameArg)) {
157
+ if (suiteNameArg.quasis.length > 0) {
158
+ suiteName = suiteNameArg.quasis[0].value.raw;
159
+ }
160
+ }
161
+ if (!suiteName) {
162
+ return null;
163
+ }
164
+ // Build current suite path
165
+ const currentSuitePath = [...parentSuitePath, suiteName];
166
+ const suitePathKey = currentSuitePath.join('__');
167
+ // Check if suite already exists (shouldn't happen, but safety check)
168
+ if (suiteMap.has(suitePathKey)) {
169
+ return suiteMap.get(suitePathKey);
170
+ }
171
+ // Create new suite
172
+ const suite = {
173
+ name: suiteName,
174
+ suitePath: currentSuitePath,
175
+ beforeAll: [],
176
+ afterAll: [],
177
+ beforeEach: [],
178
+ afterEach: [],
179
+ tests: [],
180
+ nestedSuites: []
181
+ };
182
+ suiteMap.set(suitePathKey, suite);
183
+ // Get callback function (second argument)
184
+ const callback = describePath.node.arguments[1];
185
+ if (!t.isFunctionExpression(callback) && !t.isArrowFunctionExpression(callback)) {
186
+ return suite;
187
+ }
188
+ // Traverse the callback body to find hooks, tests, and nested describe blocks
189
+ const callbackBody = callback.body;
190
+ if (!t.isBlockStatement(callbackBody)) {
191
+ return suite;
192
+ }
193
+ // Traverse the suite's callback body
194
+ // Traverse the block statement directly - Babel can handle this
195
+ (0, traverse_1.default)(callbackBody, {
196
+ CallExpression(path) {
197
+ const callee = path.node.callee;
198
+ // Check for test.beforeAll, test.afterAll, test.beforeEach, test.afterEach
199
+ if (t.isMemberExpression(callee)) {
200
+ const object = callee.object;
201
+ const property = callee.property;
202
+ if (t.isIdentifier(object) && object.name === 'test' && t.isIdentifier(property)) {
203
+ const hookName = property.name;
204
+ // Check if this is a hook
205
+ if (hookName === 'beforeAll' || hookName === 'afterAll' ||
206
+ hookName === 'beforeEach' || hookName === 'afterEach') {
207
+ // Get the callback function
208
+ if (path.node.arguments.length >= 1) {
209
+ const hookCallback = path.node.arguments[0];
210
+ if (t.isFunctionExpression(hookCallback) || t.isArrowFunctionExpression(hookCallback)) {
211
+ let hookBody;
212
+ if (t.isBlockStatement(hookCallback.body)) {
213
+ hookBody = (0, generator_1.default)(hookCallback.body, { comments: false }).code;
214
+ }
215
+ else {
216
+ const exprCode = (0, generator_1.default)(hookCallback.body, { comments: false }).code;
217
+ hookBody = `{ return ${exprCode}; }`;
218
+ }
219
+ const hook = {
220
+ code: hookBody,
221
+ name: hookName,
222
+ suitePath: currentSuitePath,
223
+ scope: 'suite'
224
+ };
225
+ // Add to suite's appropriate array
226
+ if (hookName === 'beforeAll') {
227
+ suite.beforeAll.push(hook);
228
+ }
229
+ else if (hookName === 'afterAll') {
230
+ suite.afterAll.push(hook);
231
+ }
232
+ else if (hookName === 'beforeEach') {
233
+ suite.beforeEach.push(hook);
234
+ }
235
+ else if (hookName === 'afterEach') {
236
+ suite.afterEach.push(hook);
237
+ }
238
+ }
239
+ }
240
+ return;
241
+ }
242
+ }
243
+ }
244
+ // Check for test() calls
245
+ if (t.isIdentifier(callee) && callee.name === 'test') {
246
+ if (path.node.arguments.length >= 2) {
247
+ const testNameArg = path.node.arguments[0];
248
+ const testCallback = path.node.arguments[1];
249
+ // Extract test name
250
+ let testName = null;
251
+ if (t.isStringLiteral(testNameArg)) {
252
+ testName = testNameArg.value;
253
+ }
254
+ else if (t.isTemplateLiteral(testNameArg)) {
255
+ if (testNameArg.quasis.length > 0) {
256
+ testName = testNameArg.quasis[0].value.raw;
257
+ }
258
+ }
259
+ if (testName) {
260
+ const fullName = TestFileParser.generateTestFullName(currentSuitePath, testName);
261
+ // Filter tests if testNames provided (support both original and full names)
262
+ if (shouldFilter && testNameSet) {
263
+ if (!testNameSet.has(testName) && !testNameSet.has(fullName)) {
264
+ return; // Skip this test
265
+ }
266
+ }
267
+ // Extract test body
268
+ if (t.isFunctionExpression(testCallback) || t.isArrowFunctionExpression(testCallback)) {
269
+ let testBody;
270
+ if (t.isBlockStatement(testCallback.body)) {
271
+ testBody = (0, generator_1.default)(testCallback.body, { comments: false }).code;
272
+ }
273
+ else {
274
+ const exprCode = (0, generator_1.default)(testCallback.body, { comments: false }).code;
275
+ testBody = `{ return ${exprCode}; }`;
276
+ }
277
+ suite.tests.push({
278
+ name: testName,
279
+ code: testBody,
280
+ suitePath: currentSuitePath,
281
+ fullName: fullName
282
+ });
283
+ }
284
+ }
285
+ }
286
+ return;
287
+ }
288
+ // Check for nested test.describe() calls
289
+ if (t.isMemberExpression(callee)) {
290
+ const object = callee.object;
291
+ const property = callee.property;
292
+ if (t.isIdentifier(object) && object.name === 'test' &&
293
+ t.isIdentifier(property) && property.name === 'describe') {
294
+ // This is a nested describe block - parse it recursively
295
+ const nestedSuite = parseSuite(path, currentSuitePath);
296
+ if (nestedSuite) {
297
+ suite.nestedSuites.push(nestedSuite);
298
+ }
299
+ return;
300
+ }
301
+ }
302
+ }
303
+ });
304
+ return suite;
305
+ };
306
+ // Traverse the AST to find top-level hooks, tests, and describe blocks
307
+ (0, traverse_1.default)(ast, {
308
+ CallExpression(path) {
309
+ const callee = path.node.callee;
310
+ // Check for test.describe() at top level
311
+ if (t.isMemberExpression(callee)) {
312
+ const object = callee.object;
313
+ const property = callee.property;
314
+ if (t.isIdentifier(object) && object.name === 'test' &&
315
+ t.isIdentifier(property) && property.name === 'describe') {
316
+ // Check if this is at the top level (not nested in another describe)
317
+ const suitePath = TestFileParser.findSuitePath(path);
318
+ if (suitePath.length === 0) {
319
+ // This is a top-level describe block
320
+ const suite = parseSuite(path, []);
321
+ if (suite) {
322
+ result.suites.push(suite);
323
+ }
324
+ }
325
+ return;
326
+ }
327
+ }
328
+ // Check for file-level hooks (test.beforeAll, etc.) - not inside any describe block
329
+ if (t.isMemberExpression(callee)) {
330
+ const object = callee.object;
331
+ const property = callee.property;
332
+ if (t.isIdentifier(object) && object.name === 'test' && t.isIdentifier(property)) {
333
+ const hookName = property.name;
334
+ if (hookName === 'beforeAll' || hookName === 'afterAll' ||
335
+ hookName === 'beforeEach' || hookName === 'afterEach') {
336
+ // Check if this hook is at file level (not inside any describe block)
337
+ const suitePath = TestFileParser.findSuitePath(path);
338
+ if (suitePath.length === 0) {
339
+ // This is a file-level hook
340
+ if (path.node.arguments.length >= 1) {
341
+ const callback = path.node.arguments[0];
342
+ if (t.isFunctionExpression(callback) || t.isArrowFunctionExpression(callback)) {
343
+ let hookBody;
344
+ if (t.isBlockStatement(callback.body)) {
345
+ hookBody = (0, generator_1.default)(callback.body, { comments: false }).code;
346
+ }
347
+ else {
348
+ const exprCode = (0, generator_1.default)(callback.body, { comments: false }).code;
349
+ hookBody = `{ return ${exprCode}; }`;
350
+ }
351
+ const hook = {
352
+ code: hookBody,
353
+ name: hookName,
354
+ suitePath: [],
355
+ scope: 'file'
356
+ };
357
+ // Add to appropriate array
358
+ if (hookName === 'beforeAll') {
359
+ result.fileHooks.beforeAll.push(hook);
360
+ }
361
+ else if (hookName === 'afterAll') {
362
+ result.fileHooks.afterAll.push(hook);
363
+ }
364
+ else if (hookName === 'beforeEach') {
365
+ result.fileHooks.beforeEach.push(hook);
366
+ }
367
+ else if (hookName === 'afterEach') {
368
+ result.fileHooks.afterEach.push(hook);
369
+ }
370
+ }
371
+ }
372
+ }
373
+ return;
374
+ }
375
+ }
376
+ }
377
+ // Check for file-level test() calls (not inside any describe block)
378
+ if (t.isIdentifier(callee) && callee.name === 'test') {
379
+ // Check if this test is at file level
380
+ const suitePath = TestFileParser.findSuitePath(path);
381
+ if (suitePath.length === 0) {
382
+ // This is a file-level test
383
+ if (path.node.arguments.length >= 2) {
384
+ const testNameArg = path.node.arguments[0];
385
+ const testCallback = path.node.arguments[1];
386
+ // Extract test name
387
+ let testName = null;
388
+ if (t.isStringLiteral(testNameArg)) {
389
+ testName = testNameArg.value;
390
+ }
391
+ else if (t.isTemplateLiteral(testNameArg)) {
392
+ if (testNameArg.quasis.length > 0) {
393
+ testName = testNameArg.quasis[0].value.raw;
394
+ }
395
+ }
396
+ if (testName) {
397
+ const fullName = TestFileParser.generateTestFullName([], testName);
398
+ // Filter tests if testNames provided
399
+ if (shouldFilter && testNameSet) {
400
+ if (!testNameSet.has(testName) && !testNameSet.has(fullName)) {
401
+ return; // Skip this test
402
+ }
403
+ }
404
+ // Extract test body
405
+ if (t.isFunctionExpression(testCallback) || t.isArrowFunctionExpression(testCallback)) {
406
+ let testBody;
407
+ if (t.isBlockStatement(testCallback.body)) {
408
+ testBody = (0, generator_1.default)(testCallback.body, { comments: false }).code;
409
+ }
410
+ else {
411
+ const exprCode = (0, generator_1.default)(testCallback.body, { comments: false }).code;
412
+ testBody = `{ return ${exprCode}; }`;
413
+ }
414
+ result.tests.push({
415
+ name: testName,
416
+ code: testBody,
417
+ suitePath: [],
418
+ fullName: fullName
419
+ });
420
+ }
421
+ }
422
+ }
423
+ }
424
+ }
425
+ }
426
+ });
427
+ }
428
+ catch (error) {
429
+ throw new Error(`Failed to parse test file: ${error instanceof Error ? error.message : String(error)}`);
430
+ }
431
+ return result;
432
+ }
433
+ /**
434
+ * Flatten suite structure into execution-ready format
435
+ * Separates per-test hooks (beforeEach/afterEach) from per-suite hooks (beforeAll/afterAll)
436
+ * @param parsed - Parsed test file structure
437
+ * @returns Flattened structure ready for execution
438
+ */
439
+ static flattenForExecution(parsed) {
440
+ const result = {
441
+ fileLevelHooks: {
442
+ beforeAll: parsed.fileHooks.beforeAll,
443
+ afterAll: parsed.fileHooks.afterAll,
444
+ beforeEach: parsed.fileHooks.beforeEach,
445
+ afterEach: parsed.fileHooks.afterEach
446
+ },
447
+ tests: [],
448
+ suites: []
449
+ };
450
+ let testIndex = 0;
451
+ /**
452
+ * Recursively collect tests and hooks from a suite and its nested suites
453
+ * Returns the test indices collected (including from nested suites)
454
+ */
455
+ const collectFromSuite = (suite, parentBeforeEach, parentAfterEach) => {
456
+ // Collect beforeEach/afterEach hooks from this suite (parent hooks first)
457
+ const suiteBeforeEach = [...parentBeforeEach, ...suite.beforeEach];
458
+ const suiteAfterEach = [...suite.afterEach, ...parentAfterEach]; // Reverse order for afterEach
459
+ // Track test indices for this suite (includes tests from this suite and nested suites)
460
+ const suiteTestIndices = [];
461
+ // Add tests from this suite
462
+ for (const test of suite.tests) {
463
+ suiteTestIndices.push(testIndex);
464
+ result.tests.push({
465
+ test: test,
466
+ suitePath: test.suitePath || [],
467
+ suiteBeforeEachHooks: suiteBeforeEach,
468
+ suiteAfterEachHooks: suiteAfterEach
469
+ });
470
+ testIndex++;
471
+ }
472
+ // Process nested suites and collect their test indices
473
+ for (const nestedSuite of suite.nestedSuites) {
474
+ const nestedTestIndices = collectFromSuite(nestedSuite, suiteBeforeEach, suiteAfterEach);
475
+ // Include nested suite test indices in parent suite's test indices
476
+ // (needed for afterAll execution - parent suite's afterAll runs after all nested tests)
477
+ suiteTestIndices.push(...nestedTestIndices);
478
+ }
479
+ // Add suite info (for beforeAll/afterAll execution)
480
+ // Include suite if it has hooks OR if it has tests (direct or nested)
481
+ if (suite.beforeAll.length > 0 || suite.afterAll.length > 0 || suiteTestIndices.length > 0) {
482
+ result.suites.push({
483
+ suitePath: suite.suitePath,
484
+ beforeAll: suite.beforeAll,
485
+ afterAll: suite.afterAll,
486
+ testIndices: suiteTestIndices
487
+ });
488
+ }
489
+ return suiteTestIndices;
490
+ };
491
+ // Add file-level tests
492
+ for (const test of parsed.tests) {
493
+ result.tests.push({
494
+ test: test,
495
+ suitePath: [],
496
+ suiteBeforeEachHooks: [],
497
+ suiteAfterEachHooks: []
498
+ });
499
+ testIndex++;
500
+ }
501
+ // Process all top-level suites
502
+ for (const suite of parsed.suites) {
503
+ collectFromSuite(suite, [], []);
504
+ }
505
+ return result;
506
+ }
507
+ /**
508
+ * Construct a test script with imports and a single test using AST
509
+ * This is more robust than string interpolation
510
+ * @param originalScript - The full original script (to extract imports)
511
+ * @param testName - The test name
512
+ * @param testBodyCode - The test body code (already extracted)
513
+ * @returns A complete script with imports and the test
514
+ */
515
+ static constructTestScriptWithImports(originalScript, testName, testBodyCode) {
516
+ try {
517
+ // Parse original script to extract import statements as AST nodes
518
+ const originalAst = (0, parser_1.parse)(originalScript, {
519
+ sourceType: 'module',
520
+ plugins: ['typescript', 'classProperties', 'decorators-legacy'],
521
+ allowImportExportEverywhere: true
522
+ });
523
+ // Collect import declarations
524
+ const importDeclarations = [];
525
+ (0, traverse_1.default)(originalAst, {
526
+ ImportDeclaration(path) {
527
+ importDeclarations.push(path.node);
528
+ }
529
+ });
530
+ // Parse the test body code to get it as an AST node
531
+ // The test body is a block statement, so we need to parse it
532
+ let testBody;
533
+ try {
534
+ // Try parsing as a block statement
535
+ const bodyAst = (0, parser_1.parse)(`{ ${testBodyCode} }`, {
536
+ sourceType: 'module',
537
+ plugins: ['typescript', 'classProperties', 'decorators-legacy'],
538
+ allowReturnOutsideFunction: true
539
+ });
540
+ // Extract the block statement from the parsed code
541
+ if (bodyAst.program.body.length > 0 && t.isBlockStatement(bodyAst.program.body[0])) {
542
+ testBody = bodyAst.program.body[0];
543
+ }
544
+ else {
545
+ // Fallback: create a block with the statements
546
+ const statements = bodyAst.program.body.filter(stmt => !t.isImportDeclaration(stmt));
547
+ testBody = t.blockStatement(statements);
548
+ }
549
+ }
550
+ catch (parseError) {
551
+ // If parsing fails, try parsing as statements
552
+ const bodyAst = (0, parser_1.parse)(testBodyCode, {
553
+ sourceType: 'module',
554
+ plugins: ['typescript', 'classProperties', 'decorators-legacy'],
555
+ allowReturnOutsideFunction: true,
556
+ allowAwaitOutsideFunction: true
557
+ });
558
+ const statements = bodyAst.program.body.filter(stmt => !t.isImportDeclaration(stmt));
559
+ testBody = t.blockStatement(statements);
560
+ }
561
+ // Create the test call expression
562
+ // test('testName', async ({ page, browser, context }) => { ... })
563
+ const testIdentifier = t.identifier('test');
564
+ const testNameLiteral = t.stringLiteral(testName);
565
+ // Create async arrow function with parameters
566
+ const pageParam = t.objectPattern([
567
+ t.objectProperty(t.identifier('page'), t.identifier('page'), false, true),
568
+ t.objectProperty(t.identifier('browser'), t.identifier('browser'), false, true),
569
+ t.objectProperty(t.identifier('context'), t.identifier('context'), false, true)
570
+ ]);
571
+ const asyncArrowFunction = t.arrowFunctionExpression([pageParam], testBody, true // async
572
+ );
573
+ // Create the test() call
574
+ const testCall = t.callExpression(testIdentifier, [
575
+ testNameLiteral,
576
+ asyncArrowFunction
577
+ ]);
578
+ // Create a new program with imports + test call
579
+ const programBody = [
580
+ ...importDeclarations,
581
+ t.expressionStatement(testCall)
582
+ ];
583
+ const newProgram = t.program(programBody);
584
+ // Generate code from AST
585
+ const output = (0, generator_1.default)(newProgram, {
586
+ retainLines: false,
587
+ compact: false
588
+ });
589
+ return output.code;
590
+ }
591
+ catch (error) {
592
+ // Fallback to string interpolation if AST construction fails
593
+ const importStatements = originalScript.match(/import\s+.*?from\s+['"]([^'"]+)['"];?/g) || [];
594
+ const importsCode = importStatements.length > 0
595
+ ? importStatements.join('\n') + '\n\n'
596
+ : '';
597
+ // Escape test name properly for fallback
598
+ const escapedName = testName.replace(/'/g, "\\'").replace(/\n/g, '\\n');
599
+ return `${importsCode}test('${escapedName}', async ({ page, browser, context }) => {\n${testBodyCode}\n});`;
600
+ }
601
+ }
602
+ }
603
+ exports.TestFileParser = TestFileParser;
604
+ //# sourceMappingURL=test-file-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-file-parser.js","sourceRoot":"","sources":["../../src/utils/test-file-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testchimp-runner-core",
3
- "version": "0.0.87",
3
+ "version": "0.0.88",
4
4
  "description": "Core TestChimp functionality for test generation and AI repair",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",