@gnapi/cotester 1.2.11 → 1.2.12

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.
@@ -43,6 +43,8 @@ export interface FunctionMeta {
43
43
  isAsync: boolean;
44
44
  /** Function body contains throw statements */
45
45
  throwsErrors: boolean;
46
+ /** Exception class names found in throw statements (e.g. ['NotFoundException', 'BadRequestException']) */
47
+ thrownExceptions: string[];
46
48
  /** External module dependencies used inside the function body */
47
49
  dependencies: DependencyMeta[];
48
50
  /** Class constructor parameters (for DI mocking) */
@@ -61,6 +63,21 @@ export interface FunctionMeta {
61
63
  isNestInjectable?: boolean;
62
64
  /** Decorator names found on the containing class (e.g. ['Injectable', 'Controller']) */
63
65
  classDecorators?: string[];
66
+ /** Environment variable names referenced in class property initializers (e.g. ['COUCHBASE_ENABLED']) */
67
+ envVarProperties?: {
68
+ propertyName: string;
69
+ envVarName: string;
70
+ defaultValue?: string;
71
+ }[];
72
+ /** true when the containing class is abstract (needs concrete subclass stub in tests) */
73
+ isAbstractClass?: boolean;
74
+ /** Abstract method signatures that must be stubbed in the test subclass */
75
+ abstractMethods?: {
76
+ name: string;
77
+ returnType: string;
78
+ isAsync: boolean;
79
+ params: ParameterMeta[];
80
+ }[];
64
81
  }
65
82
  /** Detected structural file type */
66
83
  export type FileType = "controller" | "service" | "repository" | "unknown";
package/dist/analyzer.js CHANGED
@@ -39,6 +39,34 @@ const path = __importStar(require("path"));
39
39
  const branchAnalyzer_1 = require("./branchAnalyzer");
40
40
  const ormMockGenerator_1 = require("./ormMockGenerator");
41
41
  const pathAliasResolver_1 = require("./pathAliasResolver");
42
+ // ─── Built-in names to skip when resolving type properties ───────────────────
43
+ const BUILTIN_SKIP_NAMES = new Set([
44
+ // Object prototype
45
+ "constructor", "toString", "valueOf", "hasOwnProperty",
46
+ "isPrototypeOf", "propertyIsEnumerable", "toLocaleString",
47
+ // NestJS lifecycle hooks
48
+ "onModuleInit", "onModuleDestroy", "onApplicationBootstrap",
49
+ "onApplicationShutdown", "beforeApplicationShutdown",
50
+ // String prototype methods
51
+ "charAt", "charCodeAt", "codePointAt", "concat", "indexOf",
52
+ "lastIndexOf", "localeCompare", "match", "matchAll", "replace",
53
+ "replaceAll", "search", "slice", "split", "substring", "substr",
54
+ "toLowerCase", "toLocaleLowerCase", "toUpperCase", "toLocaleUpperCase",
55
+ "trim", "trimStart", "trimEnd", "trimLeft", "trimRight",
56
+ "padStart", "padEnd", "repeat", "normalize", "includes",
57
+ "startsWith", "endsWith", "at", "anchor", "big", "blink",
58
+ "bold", "fixed", "fontcolor", "fontsize", "italics", "link",
59
+ "small", "strike", "sub", "sup",
60
+ // Array prototype methods
61
+ "push", "pop", "shift", "unshift", "splice", "sort", "reverse",
62
+ "map", "filter", "reduce", "reduceRight", "forEach", "some",
63
+ "every", "find", "findIndex", "findLast", "findLastIndex",
64
+ "flat", "flatMap", "fill", "copyWithin", "entries", "keys",
65
+ "values", "join",
66
+ // Number / Symbol / common built-ins
67
+ "toFixed", "toPrecision", "toExponential",
68
+ "length", "size",
69
+ ]);
42
70
  // ─── Main analyse function ───────────────────────────────────────────────────
43
71
  /**
44
72
  * Analyse a TypeScript source file and extract exported functions,
@@ -76,6 +104,7 @@ function analyzeFile(filePath, aliases) {
76
104
  const returnType = fn.getReturnType().getText(fn) || "void";
77
105
  const isAsync = fn.isAsync() || returnType.toLowerCase().startsWith("promise");
78
106
  const throwsErrors = bodyContainsThrow(fn);
107
+ const thrownExceptions = extractThrownExceptions(fn);
79
108
  const dependencies = findUsedDependencies(fn, fileImports, sourceFile);
80
109
  const branches = (0, branchAnalyzer_1.analyzeBranches)(fn);
81
110
  const ormUsage = (0, ormMockGenerator_1.detectOrmUsage)(fn);
@@ -85,6 +114,7 @@ function analyzeFile(filePath, aliases) {
85
114
  returnType,
86
115
  isAsync,
87
116
  throwsErrors,
117
+ thrownExceptions,
88
118
  dependencies,
89
119
  branches,
90
120
  fileType,
@@ -117,6 +147,7 @@ function analyzeFile(filePath, aliases) {
117
147
  const returnType = fnNode.getReturnType().getText(fnNode) || "void";
118
148
  const isAsync = fnNode.isAsync?.() || returnType.toLowerCase().startsWith("promise");
119
149
  const throwsErrors = bodyContainsThrow(fnNode);
150
+ const thrownExceptions = extractThrownExceptions(fnNode);
120
151
  const dependencies = findUsedDependencies(fnNode, fileImports, sourceFile);
121
152
  const branches = (0, branchAnalyzer_1.analyzeBranches)(fnNode);
122
153
  const ormUsage = (0, ormMockGenerator_1.detectOrmUsage)(fnNode);
@@ -126,6 +157,7 @@ function analyzeFile(filePath, aliases) {
126
157
  returnType,
127
158
  isAsync,
128
159
  throwsErrors,
160
+ thrownExceptions,
129
161
  dependencies,
130
162
  branches,
131
163
  fileType,
@@ -140,22 +172,40 @@ function analyzeFile(filePath, aliases) {
140
172
  for (const cls of classes) {
141
173
  if (!cls.isExported())
142
174
  continue;
143
- // Skip abstract classes — they can't be instantiated directly
144
- if (cls.isAbstract())
145
- continue;
175
+ const isAbstractClass = cls.isAbstract();
146
176
  const className = cls.getName() ?? "AnonymousClass";
147
177
  // Detect NestJS DI decorators for specialized mock generation
148
178
  const classDecoratorNames = cls.getDecorators().map((d) => d.getName());
149
179
  const isNestInjectable = classDecoratorNames.some((n) => NEST_DECORATORS.includes(n));
150
180
  // Extract constructor params for DI
151
181
  const constructorParams = extractConstructorParams(cls);
182
+ // Extract env var references from class property initializers
183
+ const envVarProperties = extractEnvVarProperties(cls);
184
+ // For abstract classes, collect abstract method signatures for test stub generation
185
+ let abstractMethods;
186
+ if (isAbstractClass) {
187
+ abstractMethods = cls.getMethods()
188
+ .filter((m) => m.isAbstract())
189
+ .map((m) => {
190
+ const rt = m.getReturnType().getText(m) || "void";
191
+ return {
192
+ name: m.getName(),
193
+ returnType: rt,
194
+ isAsync: m.isAsync() || rt.toLowerCase().startsWith("promise"),
195
+ params: m.getParameters().map((p) => ({
196
+ name: p.getName(),
197
+ type: p.getType().getText(p) || "unknown",
198
+ })),
199
+ };
200
+ });
201
+ }
152
202
  const methods = cls.getMethods();
153
203
  for (const method of methods) {
154
- // Skip private / protected
155
- if (method.hasModifier(ts_morph_1.SyntaxKind.PrivateKeyword) ||
156
- method.hasModifier(ts_morph_1.SyntaxKind.ProtectedKeyword)) {
204
+ // Skip private methods; for abstract classes, include protected (testable via subclass)
205
+ if (method.hasModifier(ts_morph_1.SyntaxKind.PrivateKeyword))
206
+ continue;
207
+ if (!isAbstractClass && method.hasModifier(ts_morph_1.SyntaxKind.ProtectedKeyword))
157
208
  continue;
158
- }
159
209
  // Skip abstract methods — no implementation to test
160
210
  if (method.isAbstract())
161
211
  continue;
@@ -172,6 +222,7 @@ function analyzeFile(filePath, aliases) {
172
222
  const isAsync = method.isAsync() || returnType.toLowerCase().startsWith("promise");
173
223
  const isStatic = method.hasModifier(ts_morph_1.SyntaxKind.StaticKeyword);
174
224
  const throwsErrors = bodyContainsThrow(method);
225
+ const thrownExceptions = extractThrownExceptions(method);
175
226
  const dependencies = findUsedDependencies(method, fileImports, sourceFile);
176
227
  const branches = (0, branchAnalyzer_1.analyzeBranches)(method);
177
228
  const ormUsage = (0, ormMockGenerator_1.detectOrmUsage)(method);
@@ -183,6 +234,7 @@ function analyzeFile(filePath, aliases) {
183
234
  returnType,
184
235
  isAsync,
185
236
  throwsErrors,
237
+ thrownExceptions,
186
238
  dependencies,
187
239
  constructorParams,
188
240
  branches,
@@ -192,6 +244,9 @@ function analyzeFile(filePath, aliases) {
192
244
  lineNumber: method.getStartLineNumber(),
193
245
  isNestInjectable,
194
246
  classDecorators: classDecoratorNames,
247
+ envVarProperties: envVarProperties.length > 0 ? envVarProperties : undefined,
248
+ isAbstractClass: isAbstractClass || undefined,
249
+ abstractMethods: isAbstractClass ? abstractMethods : undefined,
195
250
  });
196
251
  }
197
252
  }
@@ -362,13 +417,8 @@ function resolveClassMethodMeta(type, locationNode) {
362
417
  // Skip internal/private-convention members
363
418
  if (name.startsWith("_") || name.startsWith("#"))
364
419
  continue;
365
- // Skip common Object.prototype and NestJS lifecycle methods
366
- const skipNames = new Set([
367
- "constructor", "toString", "valueOf", "hasOwnProperty",
368
- "onModuleInit", "onModuleDestroy", "onApplicationBootstrap",
369
- "onApplicationShutdown", "beforeApplicationShutdown",
370
- ]);
371
- if (skipNames.has(name))
420
+ // Skip built-in prototype methods, NestJS lifecycle hooks, etc.
421
+ if (BUILTIN_SKIP_NAMES.has(name))
372
422
  continue;
373
423
  const propType = prop.getTypeAtLocation(locationNode);
374
424
  const methodSigs = propType.getCallSignatures();
@@ -403,6 +453,63 @@ function escapeRegex(str) {
403
453
  function bodyContainsThrow(node) {
404
454
  return node.getDescendantsOfKind(ts_morph_1.SyntaxKind.ThrowStatement).length > 0;
405
455
  }
456
+ /**
457
+ * Extract unique exception class names from `throw new Foo(...)` statements.
458
+ * Returns e.g. ['NotFoundException', 'BadRequestException'].
459
+ */
460
+ function extractThrownExceptions(node) {
461
+ const throwStmts = node.getDescendantsOfKind(ts_morph_1.SyntaxKind.ThrowStatement);
462
+ const names = new Set();
463
+ for (const stmt of throwStmts) {
464
+ const expr = stmt.getExpression();
465
+ if (!expr)
466
+ continue;
467
+ // Match `throw new FooError(...)` — extract class name from NewExpression
468
+ if (ts_morph_1.Node.isNewExpression(expr)) {
469
+ const exprText = expr.getExpression().getText();
470
+ // Handle simple identifiers like "NotFoundException" or qualified like "HttpException"
471
+ const className = exprText.split(".").pop();
472
+ if (className && /^[A-Z]/.test(className)) {
473
+ names.add(className);
474
+ }
475
+ }
476
+ }
477
+ return Array.from(names);
478
+ }
479
+ // ─── Environment variable property extraction ────────────────────────────────
480
+ /**
481
+ * Extract environment variable references from class property initializers.
482
+ * Detects patterns like:
483
+ * `private readonly foo = process.env['BAR']`
484
+ * `private readonly foo = (process.env['BAR'] ?? 'default').toLowerCase() === 'true'`
485
+ */
486
+ function extractEnvVarProperties(cls) {
487
+ const results = [];
488
+ try {
489
+ for (const prop of cls.getProperties()) {
490
+ const initializer = prop.getInitializer();
491
+ if (!initializer)
492
+ continue;
493
+ const text = initializer.getText();
494
+ // Match process.env['KEY'] or process.env["KEY"] or process.env.KEY
495
+ const envMatches = text.matchAll(/process\.env\[['"]([^'"]+)['"]\]|process\.env\.([A-Z_][A-Z0-9_]*)/g);
496
+ for (const match of envMatches) {
497
+ const envVarName = match[1] ?? match[2];
498
+ // Try to extract default value from ?? or || patterns
499
+ const defaultMatch = text.match(/\?\?\s*['"]([^'"]*)['"]/);
500
+ results.push({
501
+ propertyName: prop.getName(),
502
+ envVarName,
503
+ defaultValue: defaultMatch?.[1],
504
+ });
505
+ }
506
+ }
507
+ }
508
+ catch {
509
+ // Silently continue — property analysis can fail for complex patterns
510
+ }
511
+ return results;
512
+ }
406
513
  // ─── Constructor param extraction ────────────────────────────────────────────
407
514
  function extractConstructorParams(cls) {
408
515
  const ctors = cls.getConstructors();
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}