@gnapi/cotester 1.0.0 → 1.2.2

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,273 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.resolveInterfaceShape = resolveInterfaceShape;
37
+ /**
38
+ * Interface Shape Resolver
39
+ *
40
+ * Uses ts-morph to walk the actual interface / type-alias declaration for a
41
+ * custom type and produce an accurate mock object literal.
42
+ *
43
+ * Handles:
44
+ * - InterfaceDeclaration & TypeAliasDeclaration
45
+ * - Optional properties (prop?: T → omit undefined, use T)
46
+ * - readonly modifiers (ignored — mocks are data literals)
47
+ * - Union types (picks first non-null / non-undefined member)
48
+ * - Intersection types (merges property sets)
49
+ * - Nested custom types (recursive, capped at MAX_DEPTH)
50
+ * - Arrays → []
51
+ * - Enums → first member value
52
+ * - Cross-file imports (follows named imports into their source files)
53
+ * - import("…").TypeName fully-qualified type text (ts-morph output)
54
+ *
55
+ * Module-level project cache: workers are short-lived (one per file), so
56
+ * caching prevents recreating the same Project for every parameter of the
57
+ * same source file.
58
+ */
59
+ const ts_morph_1 = require("ts-morph");
60
+ const fs = __importStar(require("fs"));
61
+ const path = __importStar(require("path"));
62
+ const mockDataEngine_1 = require("./mockDataEngine");
63
+ // ─── Constants ────────────────────────────────────────────────────────────────
64
+ /** Maximum recursion depth to prevent infinite loops on circular types. */
65
+ const MAX_DEPTH = 4;
66
+ const projectCache = new Map();
67
+ function getCtx(sourceFilePath, projectRoot) {
68
+ const cached = projectCache.get(sourceFilePath);
69
+ if (cached)
70
+ return cached;
71
+ try {
72
+ const tsconfigPath = path.join(projectRoot, "tsconfig.json");
73
+ const project = new ts_morph_1.Project(fs.existsSync(tsconfigPath)
74
+ ? { tsConfigFilePath: tsconfigPath, skipAddingFilesFromTsConfig: true }
75
+ : { compilerOptions: { allowJs: true } });
76
+ const sourceFile = project.addSourceFileAtPath(sourceFilePath);
77
+ const ctx = { project, sourceFile };
78
+ projectCache.set(sourceFilePath, ctx);
79
+ return ctx;
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
85
+ // ─── Public API ───────────────────────────────────────────────────────────────
86
+ /**
87
+ * Attempt to resolve `typeName` to an accurate mock object literal by walking
88
+ * the ts-morph AST of `sourceFilePath`.
89
+ *
90
+ * Returns a code literal string (e.g. `{ id: 1, name: 'test-name' }`) or
91
+ * `null` when the type cannot be found / resolved.
92
+ */
93
+ function resolveInterfaceShape(typeName, sourceFilePath, projectRoot) {
94
+ try {
95
+ // ts-morph emits `import("/abs/path").TypeName` for cross-file types
96
+ const importMatch = typeName.match(/^import\("([^"]+)"\)\.(\w[\w.]*)/);
97
+ if (importMatch) {
98
+ const importedAbsPath = importMatch[1];
99
+ const importedTypeName = importMatch[2];
100
+ const ctx = getCtx(sourceFilePath, projectRoot);
101
+ if (!ctx)
102
+ return null;
103
+ // Ensure the imported file is part of the project
104
+ let importedSF = ctx.project.getSourceFile(importedAbsPath);
105
+ if (!importedSF) {
106
+ try {
107
+ importedSF = ctx.project.addSourceFileAtPath(importedAbsPath);
108
+ }
109
+ catch {
110
+ return null;
111
+ }
112
+ }
113
+ return resolveTypeInFile(importedTypeName, importedSF, ctx.project, 0);
114
+ }
115
+ const ctx = getCtx(sourceFilePath, projectRoot);
116
+ if (!ctx)
117
+ return null;
118
+ return resolveTypeInFile(typeName, ctx.sourceFile, ctx.project, 0);
119
+ }
120
+ catch {
121
+ return null;
122
+ }
123
+ }
124
+ // ─── Type lookup ──────────────────────────────────────────────────────────────
125
+ function resolveTypeInFile(typeName, sourceFile, project, depth) {
126
+ if (depth >= MAX_DEPTH)
127
+ return null;
128
+ // 1. Interface declaration in this file
129
+ const iface = sourceFile.getInterface(typeName);
130
+ if (iface)
131
+ return buildMockFromType(iface.getType(), depth);
132
+ // 2. Type alias in this file
133
+ const typeAlias = sourceFile.getTypeAlias(typeName);
134
+ if (typeAlias)
135
+ return buildMockFromType(typeAlias.getType(), depth);
136
+ // 3. Re-exported / imported named type → follow into its source file
137
+ for (const importDecl of sourceFile.getImportDeclarations()) {
138
+ for (const named of importDecl.getNamedImports()) {
139
+ const localName = named.getAliasNode()?.getText() ?? named.getName();
140
+ if (localName !== typeName)
141
+ continue;
142
+ const importedSF = importDecl.getModuleSpecifierSourceFile();
143
+ if (!importedSF)
144
+ continue;
145
+ try {
146
+ project.addSourceFileAtPath(importedSF.getFilePath());
147
+ }
148
+ catch { /* already added */ }
149
+ return resolveTypeInFile(named.getName(), importedSF, project, depth + 1);
150
+ }
151
+ }
152
+ return null;
153
+ }
154
+ // ─── Type → mock literal ──────────────────────────────────────────────────────
155
+ function buildMockFromType(type, depth) {
156
+ if (depth >= MAX_DEPTH)
157
+ return `{} as any`;
158
+ // ── Union: filter out null/undefined, pick first remaining member ───────
159
+ if (type.isUnion()) {
160
+ const members = type.getUnionTypes().filter((t) => !t.isNull() && !t.isUndefined());
161
+ if (members.length === 0)
162
+ return "null";
163
+ return buildMockFromType(members[0], depth);
164
+ }
165
+ // ── Intersection: merge property sets ────────────────────────────────────
166
+ if (type.isIntersection()) {
167
+ const parts = [];
168
+ for (const member of type.getIntersectionTypes()) {
169
+ const literal = buildMockFromType(member, depth + 1);
170
+ if (literal.startsWith("{") && literal.endsWith("}")) {
171
+ const inner = literal.slice(1, -1).trim();
172
+ if (inner)
173
+ parts.push(inner);
174
+ }
175
+ }
176
+ return parts.length > 0 ? `{ ${parts.join(", ")} }` : "{}";
177
+ }
178
+ // ── Primitives ────────────────────────────────────────────────────────────
179
+ if (type.isString() || type.isStringLiteral()) {
180
+ const lit = type.isStringLiteral() ? type.getLiteralValue() : undefined;
181
+ return typeof lit === "string" ? `'${lit}'` : "'test-value'";
182
+ }
183
+ if (type.isNumber() || type.isNumberLiteral()) {
184
+ const lit = type.isNumberLiteral() ? type.getLiteralValue() : undefined;
185
+ return typeof lit === "number" ? String(lit) : "1";
186
+ }
187
+ if (type.isBoolean() || type.isBooleanLiteral()) {
188
+ const lit = type.isBooleanLiteral() ? type.getLiteralValue() : undefined;
189
+ return typeof lit === "boolean" ? String(lit) : "true";
190
+ }
191
+ if (type.isNull())
192
+ return "null";
193
+ if (type.isUndefined())
194
+ return "undefined";
195
+ const text = type.getText();
196
+ // ── Date ─────────────────────────────────────────────────────────────────
197
+ if (text === "Date")
198
+ return "new Date('2025-06-15T10:30:00Z')";
199
+ // ── Array / Tuple ─────────────────────────────────────────────────────────
200
+ if (type.isArray() || type.isTuple())
201
+ return "[]";
202
+ // ── Enum literal ─────────────────────────────────────────────────────────
203
+ if (type.isEnumLiteral()) {
204
+ const lit = type.getLiteralValue();
205
+ if (typeof lit === "string")
206
+ return `'${lit}'`;
207
+ if (typeof lit === "number")
208
+ return String(lit);
209
+ }
210
+ // ── Enum: return first member value ──────────────────────────────────────
211
+ if (type.isEnum()) {
212
+ const symbol = type.getSymbol();
213
+ const decl = symbol?.getDeclarations()[0];
214
+ if (decl && decl.getKind() === ts_morph_1.SyntaxKind.EnumDeclaration) {
215
+ const members = decl.getMembers?.();
216
+ if (members && members.length > 0) {
217
+ const firstVal = members[0].getValue?.();
218
+ if (typeof firstVal === "string")
219
+ return `'${firstVal}'`;
220
+ if (typeof firstVal === "number")
221
+ return String(firstVal);
222
+ }
223
+ }
224
+ return "0";
225
+ }
226
+ // ── Object / Interface: walk properties ───────────────────────────────────
227
+ const properties = type.getProperties();
228
+ if (properties.length > 0) {
229
+ const entries = [];
230
+ for (const prop of properties) {
231
+ const propName = prop.getName();
232
+ // Skip index signatures (e.g. [key: string])
233
+ if (propName.startsWith("["))
234
+ continue;
235
+ const propType = getPropType(prop);
236
+ const value = buildValueForProp(propName, propType, depth + 1);
237
+ entries.push(`${propName}: ${value}`);
238
+ }
239
+ if (entries.length > 0)
240
+ return `{ ${entries.join(", ")} }`;
241
+ }
242
+ return `{} as any /* ${text} */`;
243
+ }
244
+ /** Resolve the Type for a property Symbol, unwrapping the value declaration when possible. */
245
+ function getPropType(prop) {
246
+ const valueDecl = prop.getValueDeclaration();
247
+ if (valueDecl) {
248
+ // PropertySignature / PropertyDeclaration / MethodSignature all expose getType()
249
+ const typed = valueDecl;
250
+ if (typeof typed.getType === "function") {
251
+ return typed.getType();
252
+ }
253
+ }
254
+ return prop.getDeclaredType();
255
+ }
256
+ /** Generate a mock value for a single property, name-hinting first. */
257
+ function buildValueForProp(propName, propType, depth) {
258
+ // Unwrap T | undefined / T | null for optional properties
259
+ let t = propType;
260
+ if (t.isUnion()) {
261
+ const nonNullable = t.getUnionTypes().filter((m) => !m.isUndefined() && !m.isNull());
262
+ if (nonNullable.length === 0)
263
+ return "undefined";
264
+ t = nonNullable.length === 1 ? nonNullable[0] : nonNullable[0]; // pick first
265
+ }
266
+ // Name-based smart mock (highest priority — same logic as the mock data engine)
267
+ const nameMock = (0, mockDataEngine_1.getSmartMockByName)(propName);
268
+ if (nameMock && nameMock.length > 0)
269
+ return nameMock[0].literal;
270
+ // Recurse into the type structure
271
+ return buildMockFromType(t, depth);
272
+ }
273
+ //# sourceMappingURL=interfaceShapeResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaceShapeResolver.js","sourceRoot":"","sources":["../src/interfaceShapeResolver.ts"],"names":[],"mappings":"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"}
@@ -38,9 +38,14 @@ export interface MockArgSet {
38
38
  }
39
39
  /**
40
40
  * Get mock values for a parameter based on its name and type.
41
- * Priority: name-based rules → type-based rules → interface resolution → default.
41
+ * Priority: name-based rules → type-based rules → AST interface resolution → heuristic → default.
42
+ *
43
+ * @param typeStr TypeScript type string for the parameter.
44
+ * @param paramName Parameter name for name-based heuristics.
45
+ * @param sourceFilePath Absolute path to the source file (enables AST-based interface resolution).
46
+ * @param projectRoot Project root directory (required alongside sourceFilePath).
42
47
  */
43
- export declare function getMocksForType(typeStr: string, paramName?: string): MockValue[];
48
+ export declare function getMocksForType(typeStr: string, paramName?: string, sourceFilePath?: string, projectRoot?: string): MockValue[];
44
49
  /**
45
50
  * Get mocks specifically for the return type — used for boolean return assertion hints.
46
51
  */
@@ -51,8 +56,11 @@ export declare function getMocksForReturnType(typeStr: string): MockValue[];
51
56
  * Strategy: for each parameter, pick the mock values for its type.
52
57
  * We iterate through the mocks in a "zip-longest" fashion so each
53
58
  * scenario gets a unique combination where possible.
59
+ *
60
+ * @param sourceFilePath Absolute path to the source file — enables AST interface resolution.
61
+ * @param projectRoot Project root directory — required alongside sourceFilePath.
54
62
  */
55
- export declare function buildMockArgSets(params: ParameterMeta[]): MockArgSet[];
63
+ export declare function buildMockArgSets(params: ParameterMeta[], sourceFilePath?: string, projectRoot?: string): MockArgSet[];
56
64
  /**
57
65
  * Get all available mock data as a structured map — used to generate
58
66
  * the testgen/mocks/mockData.ts reusable constants file.
@@ -43,6 +43,7 @@ const path = __importStar(require("path"));
43
43
  const formatter_1 = require("./formatter");
44
44
  const utils_1 = require("./utils");
45
45
  const mockDataEngine_1 = require("./mockDataEngine");
46
+ const interfaceShapeResolver_1 = require("./interfaceShapeResolver");
46
47
  /**
47
48
  * Generate a mock file that mirrors the source file path.
48
49
  *
@@ -52,7 +53,8 @@ const mockDataEngine_1 = require("./mockDataEngine");
52
53
  async function generateMockFile(srcFilePath, scenarios, projectRoot, srcDir, mockDir) {
53
54
  if (scenarios.length === 0)
54
55
  return null;
55
- const mockFilePath = (0, utils_1.mirrorPath)(srcFilePath, srcDir, path.join(projectRoot, mockDir), ".mock.ts");
56
+ const absSrcRoot = path.resolve(projectRoot, srcDir);
57
+ const mockFilePath = (0, utils_1.mirrorPath)(srcFilePath, absSrcRoot, path.join(projectRoot, mockDir), ".mock.ts");
56
58
  const constantNames = new Map();
57
59
  const lines = [];
58
60
  // Header comment
@@ -146,9 +148,14 @@ const DEFAULT_MOCKS = [
146
148
  ];
147
149
  /**
148
150
  * Get mock values for a parameter based on its name and type.
149
- * Priority: name-based rules → type-based rules → interface resolution → default.
151
+ * Priority: name-based rules → type-based rules → AST interface resolution → heuristic → default.
152
+ *
153
+ * @param typeStr TypeScript type string for the parameter.
154
+ * @param paramName Parameter name for name-based heuristics.
155
+ * @param sourceFilePath Absolute path to the source file (enables AST-based interface resolution).
156
+ * @param projectRoot Project root directory (required alongside sourceFilePath).
150
157
  */
151
- function getMocksForType(typeStr, paramName) {
158
+ function getMocksForType(typeStr, paramName, sourceFilePath, projectRoot) {
152
159
  // 1. Try name-based smart mocks first (highest priority)
153
160
  if (paramName) {
154
161
  const nameMocks = (0, mockDataEngine_1.getSmartMockByName)(paramName);
@@ -172,27 +179,47 @@ function getMocksForType(typeStr, paramName) {
172
179
  if (t.includes("null") || t.includes("undefined"))
173
180
  return [...getMocksForBaseOfUnion(t), ...NULLABLE_MOCKS];
174
181
  // 3. Try to generate a structured mock for custom/interface types
175
- const interfaceMock = resolveInterfaceMock(typeStr);
182
+ const interfaceMock = resolveInterfaceMock(typeStr, sourceFilePath, projectRoot);
176
183
  if (interfaceMock)
177
184
  return interfaceMock;
178
185
  return DEFAULT_MOCKS;
179
186
  }
180
187
  /**
181
188
  * Attempt to build realistic mock values for a custom type/interface.
182
- * Uses heuristics based on property names and types to generate
183
- * values that look like what a real developer would write.
189
+ *
190
+ * Strategy (in priority order):
191
+ * 1. AST-based shape resolution via ts-morph (when sourceFilePath + projectRoot given)
192
+ * → produces an accurate mock matching the actual interface contract
193
+ * 2. Name-based heuristics (pattern matching on the type name string)
194
+ * → educated guess for common naming conventions
184
195
  */
185
- function resolveInterfaceMock(typeStr) {
196
+ function resolveInterfaceMock(typeStr, sourceFilePath, projectRoot) {
186
197
  // Extract the base type name (remove generics, imports prefix)
187
198
  const baseName = typeStr
188
199
  .replace(/^import\([^)]+\)\./, "") // strip import("...").
189
- .replace(/<.+>$/, "") // strip generics
200
+ .replace(/<[^>]+>$/, "") // strip generics
190
201
  .trim();
191
202
  // Skip if it looks like a primitive or built-in
192
203
  if (/^(string|number|boolean|void|any|never|unknown|undefined|null|object|record|date)$/i.test(baseName)) {
193
204
  return null;
194
205
  }
195
- // Build a realistic mock object based on the type name
206
+ // ── 1. AST-based: walk the actual interface/type declaration ──────────
207
+ if (sourceFilePath && projectRoot) {
208
+ try {
209
+ // Pass the original typeStr so the resolver can handle import("...").TypeName
210
+ const resolved = (0, interfaceShapeResolver_1.resolveInterfaceShape)(typeStr, sourceFilePath, projectRoot);
211
+ if (resolved) {
212
+ return [
213
+ { label: `valid ${baseName.toLowerCase()}`, literal: resolved },
214
+ { label: `minimal ${baseName.toLowerCase()}`, literal: `{} as any /* ${baseName} */` },
215
+ ];
216
+ }
217
+ }
218
+ catch {
219
+ // AST resolution failed — fall through to heuristics
220
+ }
221
+ }
222
+ // ── 2. Heuristic fallback: pattern-match on the type name ─────────────
196
223
  const mockObj = buildSmartMockForTypeName(baseName);
197
224
  return [
198
225
  { label: `valid ${baseName.toLowerCase()}`, literal: mockObj },
@@ -265,13 +292,16 @@ function getMocksForReturnType(typeStr) {
265
292
  * Strategy: for each parameter, pick the mock values for its type.
266
293
  * We iterate through the mocks in a "zip-longest" fashion so each
267
294
  * scenario gets a unique combination where possible.
295
+ *
296
+ * @param sourceFilePath Absolute path to the source file — enables AST interface resolution.
297
+ * @param projectRoot Project root directory — required alongside sourceFilePath.
268
298
  */
269
- function buildMockArgSets(params) {
299
+ function buildMockArgSets(params, sourceFilePath, projectRoot) {
270
300
  if (params.length === 0) {
271
301
  return [{ scenarioLabel: "handles default case", args: [] }];
272
302
  }
273
- // Pass both name and type for smart mock resolution
274
- const mocksPerParam = params.map((p) => getMocksForType(p.type, p.name));
303
+ // Pass name, type, and source context for full interface shape resolution
304
+ const mocksPerParam = params.map((p) => getMocksForType(p.type, p.name, sourceFilePath, projectRoot));
275
305
  const maxLen = Math.max(...mocksPerParam.map((m) => m.length));
276
306
  const result = [];
277
307
  for (let i = 0; i < maxLen; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"mockGenerator.js","sourceRoot":"","sources":["../src/mockGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockGenerator.js","sourceRoot":"","sources":["../src/mockGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface PathAliases {
2
+ /** Resolved baseUrl as an absolute path, or null if not set. */
3
+ baseUrl: string | null;
4
+ /**
5
+ * Map of alias pattern → array of replacement patterns.
6
+ * Mirrors compilerOptions.paths — keys may contain a trailing `*`.
7
+ * Example: { "@services/*": ["src/services/*"] }
8
+ */
9
+ paths: Record<string, string[]>;
10
+ }
11
+ /**
12
+ * Load compilerOptions.paths and baseUrl from the host project's tsconfig.json.
13
+ * Returns empty aliases if the file is missing or unparseable.
14
+ */
15
+ export declare function loadPathAliases(projectRoot: string): PathAliases;
16
+ /**
17
+ * Attempt to resolve a non-relative module specifier (e.g. `@services/user`)
18
+ * against the provided alias map.
19
+ *
20
+ * Returns the resolved **relative** path from `sourceFileDir` to the target,
21
+ * or `null` if no alias matches.
22
+ *
23
+ * @param modulePath The raw import specifier from the source file.
24
+ * @param aliases The PathAliases loaded from the host tsconfig.json.
25
+ * @param sourceFileDir Absolute directory of the file containing the import.
26
+ */
27
+ export declare function resolveAlias(modulePath: string, aliases: PathAliases, sourceFileDir: string): string | null;