@formspec/cli 0.1.0-alpha.7 → 0.1.0-alpha.8

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 @@ describe("analyzeClass", () => {
43
43
  it("analyzes InstallmentPlan fields", () => {
44
44
  const ctx = createProgramContext(sampleFormsPath);
45
45
  const classDecl = findClassByName(ctx.sourceFile, "InstallmentPlan");
46
+ if (!classDecl)
47
+ throw new Error("InstallmentPlan class not found");
46
48
  const analysis = analyzeClass(classDecl, ctx.checker);
47
49
  expect(analysis.name).toBe("InstallmentPlan");
48
50
  expect(analysis.fields).toHaveLength(4);
@@ -55,6 +57,8 @@ describe("analyzeClass", () => {
55
57
  it("detects optional fields", () => {
56
58
  const ctx = createProgramContext(sampleFormsPath);
57
59
  const classDecl = findClassByName(ctx.sourceFile, "InstallmentPlan");
60
+ if (!classDecl)
61
+ throw new Error("InstallmentPlan class not found");
58
62
  const analysis = analyzeClass(classDecl, ctx.checker);
59
63
  const emailField = analysis.fields.find((f) => f.name === "customerEmail");
60
64
  const amountField = analysis.fields.find((f) => f.name === "amount");
@@ -64,6 +68,8 @@ describe("analyzeClass", () => {
64
68
  it("analyzes instance methods", () => {
65
69
  const ctx = createProgramContext(sampleFormsPath);
66
70
  const classDecl = findClassByName(ctx.sourceFile, "InstallmentPlan");
71
+ if (!classDecl)
72
+ throw new Error("InstallmentPlan class not found");
67
73
  const analysis = analyzeClass(classDecl, ctx.checker);
68
74
  expect(analysis.instanceMethods).toHaveLength(2);
69
75
  const methodNames = analysis.instanceMethods.map((m) => m.name);
@@ -73,6 +79,8 @@ describe("analyzeClass", () => {
73
79
  it("analyzes static methods", () => {
74
80
  const ctx = createProgramContext(sampleFormsPath);
75
81
  const classDecl = findClassByName(ctx.sourceFile, "InstallmentPlan");
82
+ if (!classDecl)
83
+ throw new Error("InstallmentPlan class not found");
76
84
  const analysis = analyzeClass(classDecl, ctx.checker);
77
85
  expect(analysis.staticMethods).toHaveLength(1);
78
86
  expect(analysis.staticMethods[0]?.name).toBe("createStandard");
@@ -80,6 +88,8 @@ describe("analyzeClass", () => {
80
88
  it("detects InferSchema references in method parameters", () => {
81
89
  const ctx = createProgramContext(sampleFormsPath);
82
90
  const classDecl = findClassByName(ctx.sourceFile, "InstallmentPlan");
91
+ if (!classDecl)
92
+ throw new Error("InstallmentPlan class not found");
83
93
  const analysis = analyzeClass(classDecl, ctx.checker);
84
94
  const activateMethod = analysis.instanceMethods.find((m) => m.name === "activate");
85
95
  expect(activateMethod?.parameters).toHaveLength(1);
@@ -90,6 +100,8 @@ describe("analyzeClass", () => {
90
100
  it("analyzes SimpleProduct without FormSpec references", () => {
91
101
  const ctx = createProgramContext(sampleFormsPath);
92
102
  const classDecl = findClassByName(ctx.sourceFile, "SimpleProduct");
103
+ if (!classDecl)
104
+ throw new Error("SimpleProduct class not found");
93
105
  const analysis = analyzeClass(classDecl, ctx.checker);
94
106
  expect(analysis.name).toBe("SimpleProduct");
95
107
  expect(analysis.fields).toHaveLength(4);
@@ -104,8 +116,12 @@ describe("convertType", () => {
104
116
  it("converts string type", () => {
105
117
  const ctx = createProgramContext(sampleFormsPath);
106
118
  const classDecl = findClassByName(ctx.sourceFile, "SimpleProduct");
119
+ if (!classDecl)
120
+ throw new Error("SimpleProduct class not found");
107
121
  const analysis = analyzeClass(classDecl, ctx.checker);
108
122
  const nameField = analysis.fields.find((f) => f.name === "name");
123
+ if (!nameField)
124
+ throw new Error("name field not found");
109
125
  const result = convertType(nameField.type, ctx.checker);
110
126
  expect(result.jsonSchema.type).toBe("string");
111
127
  expect(result.formSpecFieldType).toBe("text");
@@ -113,8 +129,12 @@ describe("convertType", () => {
113
129
  it("converts number type", () => {
114
130
  const ctx = createProgramContext(sampleFormsPath);
115
131
  const classDecl = findClassByName(ctx.sourceFile, "SimpleProduct");
132
+ if (!classDecl)
133
+ throw new Error("SimpleProduct class not found");
116
134
  const analysis = analyzeClass(classDecl, ctx.checker);
117
135
  const priceField = analysis.fields.find((f) => f.name === "price");
136
+ if (!priceField)
137
+ throw new Error("price field not found");
118
138
  const result = convertType(priceField.type, ctx.checker);
119
139
  // price is optional so it's number | undefined
120
140
  expect(result.formSpecFieldType).toBe("number");
@@ -122,8 +142,12 @@ describe("convertType", () => {
122
142
  it("converts boolean type", () => {
123
143
  const ctx = createProgramContext(sampleFormsPath);
124
144
  const classDecl = findClassByName(ctx.sourceFile, "SimpleProduct");
145
+ if (!classDecl)
146
+ throw new Error("SimpleProduct class not found");
125
147
  const analysis = analyzeClass(classDecl, ctx.checker);
126
148
  const activeField = analysis.fields.find((f) => f.name === "active");
149
+ if (!activeField)
150
+ throw new Error("active field not found");
127
151
  const result = convertType(activeField.type, ctx.checker);
128
152
  expect(result.jsonSchema.type).toBe("boolean");
129
153
  expect(result.formSpecFieldType).toBe("boolean");
@@ -131,8 +155,12 @@ describe("convertType", () => {
131
155
  it("converts string literal union to enum", () => {
132
156
  const ctx = createProgramContext(sampleFormsPath);
133
157
  const classDecl = findClassByName(ctx.sourceFile, "InstallmentPlan");
158
+ if (!classDecl)
159
+ throw new Error("InstallmentPlan class not found");
134
160
  const analysis = analyzeClass(classDecl, ctx.checker);
135
161
  const statusField = analysis.fields.find((f) => f.name === "status");
162
+ if (!statusField)
163
+ throw new Error("status field not found");
136
164
  const result = convertType(statusField.type, ctx.checker);
137
165
  expect(result.jsonSchema.enum).toEqual(["active", "paused", "canceled"]);
138
166
  expect(result.formSpecFieldType).toBe("enum");
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.test.js","sourceRoot":"","sources":["../../src/__tests__/analyzer.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.test.js","sourceRoot":"","sources":["../../src/__tests__/analyzer.test.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Tests for the codegen type generation functions.
3
3
  */
4
4
  import { describe, it, expect } from "vitest";
5
- import { generateCodegenOutput, findDecoratedClasses, } from "../codegen/index.js";
5
+ import { generateCodegenOutput, findDecoratedClasses as _findDecoratedClasses, } from "../codegen/index.js";
6
6
  // =============================================================================
7
7
  // Test Helpers
8
8
  // =============================================================================
@@ -172,8 +172,11 @@ describe("generateCodegenOutput", () => {
172
172
  });
173
173
  const output = generateCodegenOutput([cls], "/tmp/out.ts", "/tmp");
174
174
  // Extract just the schema type section
175
- const schemaMatch = output.match(/export type TestFormSchema = \{[\s\S]*?\};/);
175
+ const schemaRegex = /export type TestFormSchema = \{[\s\S]*?\};/;
176
+ const schemaMatch = schemaRegex.exec(output);
176
177
  expect(schemaMatch).not.toBeNull();
178
+ if (!schemaMatch)
179
+ throw new Error("Schema section not found");
177
180
  const schemaSection = schemaMatch[0];
178
181
  // Should have unquoted identifiers in schema type
179
182
  expect(schemaSection).toContain("firstName: string;");
@@ -351,8 +354,11 @@ describe("generateCodegenOutput", () => {
351
354
  });
352
355
  const output = generateCodegenOutput([cls], "/tmp/out.ts", "/tmp");
353
356
  // Extract just the schema type section
354
- const schemaMatch = output.match(/export type TestFormSchema = \{[\s\S]*?\};/);
357
+ const schemaRegex = /export type TestFormSchema = \{[\s\S]*?\};/;
358
+ const schemaMatch = schemaRegex.exec(output);
355
359
  expect(schemaMatch).not.toBeNull();
360
+ if (!schemaMatch)
361
+ throw new Error("Schema section not found");
356
362
  const schemaSection = schemaMatch[0];
357
363
  expect(schemaSection).toContain('"async": string;');
358
364
  expect(schemaSection).toContain('"await": string;');
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.test.js","sourceRoot":"","sources":["../../src/__tests__/codegen.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.test.js","sourceRoot":"","sources":["../../src/__tests__/codegen.test.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,12 @@ describe("convertType - complex unions", () => {
29
29
  it("handles string | number union as oneOf", () => {
30
30
  const ctx = createProgramContext(edgeCasesPath);
31
31
  const classDecl = findClassByName(ctx.sourceFile, "MixedUnionTypes");
32
+ if (!classDecl)
33
+ throw new Error("MixedUnionTypes class not found");
32
34
  const analysis = analyzeClass(classDecl, ctx.checker);
33
35
  const field = analysis.fields.find((f) => f.name === "mixedPrimitive");
36
+ if (!field)
37
+ throw new Error("mixedPrimitive field not found");
34
38
  const result = convertType(field.type, ctx.checker);
35
39
  expect(result.formSpecFieldType).toBe("union");
36
40
  expect(result.jsonSchema.oneOf).toBeDefined();
@@ -39,8 +43,12 @@ describe("convertType - complex unions", () => {
39
43
  it("handles complex union with object and primitive", () => {
40
44
  const ctx = createProgramContext(edgeCasesPath);
41
45
  const classDecl = findClassByName(ctx.sourceFile, "MixedUnionTypes");
46
+ if (!classDecl)
47
+ throw new Error("MixedUnionTypes class not found");
42
48
  const analysis = analyzeClass(classDecl, ctx.checker);
43
49
  const field = analysis.fields.find((f) => f.name === "complexUnion");
50
+ if (!field)
51
+ throw new Error("complexUnion field not found");
44
52
  const result = convertType(field.type, ctx.checker);
45
53
  expect(result.formSpecFieldType).toBe("union");
46
54
  expect(result.jsonSchema.oneOf).toBeDefined();
@@ -48,8 +56,12 @@ describe("convertType - complex unions", () => {
48
56
  it("handles discriminated union (object union)", () => {
49
57
  const ctx = createProgramContext(edgeCasesPath);
50
58
  const classDecl = findClassByName(ctx.sourceFile, "MixedUnionTypes");
59
+ if (!classDecl)
60
+ throw new Error("MixedUnionTypes class not found");
51
61
  const analysis = analyzeClass(classDecl, ctx.checker);
52
62
  const field = analysis.fields.find((f) => f.name === "objectUnion");
63
+ if (!field)
64
+ throw new Error("objectUnion field not found");
53
65
  const result = convertType(field.type, ctx.checker);
54
66
  expect(result.formSpecFieldType).toBe("union");
55
67
  expect(result.jsonSchema.oneOf).toHaveLength(2);
@@ -59,10 +71,16 @@ describe("convertType - nullable patterns", () => {
59
71
  it("handles T | null as oneOf with null", () => {
60
72
  const ctx = createProgramContext(edgeCasesPath);
61
73
  const classDecl = findClassByName(ctx.sourceFile, "NullablePatterns");
74
+ if (!classDecl)
75
+ throw new Error("NullablePatterns class not found");
62
76
  const analysis = analyzeClass(classDecl, ctx.checker);
63
77
  const field = analysis.fields.find((f) => f.name === "nullableString");
78
+ if (!field)
79
+ throw new Error("nullableString field not found");
64
80
  const result = convertType(field.type, ctx.checker);
65
81
  expect(result.jsonSchema.oneOf).toBeDefined();
82
+ if (!result.jsonSchema.oneOf)
83
+ throw new Error("oneOf not defined");
66
84
  const types = result.jsonSchema.oneOf.map((s) => s.type);
67
85
  expect(types).toContain("string");
68
86
  expect(types).toContain("null");
@@ -70,8 +88,12 @@ describe("convertType - nullable patterns", () => {
70
88
  it("handles T | undefined (filters out undefined)", () => {
71
89
  const ctx = createProgramContext(edgeCasesPath);
72
90
  const classDecl = findClassByName(ctx.sourceFile, "NullablePatterns");
91
+ if (!classDecl)
92
+ throw new Error("NullablePatterns class not found");
73
93
  const analysis = analyzeClass(classDecl, ctx.checker);
74
94
  const field = analysis.fields.find((f) => f.name === "undefinedString");
95
+ if (!field)
96
+ throw new Error("undefinedString field not found");
75
97
  const result = convertType(field.type, ctx.checker);
76
98
  // undefined is filtered out, leaving just string
77
99
  expect(result.jsonSchema.type).toBe("string");
@@ -80,11 +102,17 @@ describe("convertType - nullable patterns", () => {
80
102
  it("handles nullable enum", () => {
81
103
  const ctx = createProgramContext(edgeCasesPath);
82
104
  const classDecl = findClassByName(ctx.sourceFile, "NullablePatterns");
105
+ if (!classDecl)
106
+ throw new Error("NullablePatterns class not found");
83
107
  const analysis = analyzeClass(classDecl, ctx.checker);
84
108
  const field = analysis.fields.find((f) => f.name === "nullableStatus");
109
+ if (!field)
110
+ throw new Error("nullableStatus field not found");
85
111
  const result = convertType(field.type, ctx.checker);
86
112
  expect(result.jsonSchema.oneOf).toBeDefined();
87
113
  // Should have enum schema and null type
114
+ if (!result.jsonSchema.oneOf)
115
+ throw new Error("oneOf not defined");
88
116
  const hasEnum = result.jsonSchema.oneOf.some((s) => s.enum !== undefined);
89
117
  const hasNull = result.jsonSchema.oneOf.some((s) => s.type === "null");
90
118
  expect(hasEnum).toBe(true);
@@ -93,11 +121,17 @@ describe("convertType - nullable patterns", () => {
93
121
  it("handles T | null | undefined", () => {
94
122
  const ctx = createProgramContext(edgeCasesPath);
95
123
  const classDecl = findClassByName(ctx.sourceFile, "NullablePatterns");
124
+ if (!classDecl)
125
+ throw new Error("NullablePatterns class not found");
96
126
  const analysis = analyzeClass(classDecl, ctx.checker);
97
127
  const field = analysis.fields.find((f) => f.name === "tripleUnion");
128
+ if (!field)
129
+ throw new Error("tripleUnion field not found");
98
130
  const result = convertType(field.type, ctx.checker);
99
131
  // Should filter undefined, keep string and null
100
132
  expect(result.jsonSchema.oneOf).toBeDefined();
133
+ if (!result.jsonSchema.oneOf)
134
+ throw new Error("oneOf not defined");
101
135
  const types = result.jsonSchema.oneOf.map((s) => s.type);
102
136
  expect(types).toContain("string");
103
137
  expect(types).toContain("null");
@@ -108,8 +142,12 @@ describe("convertType - array edge cases", () => {
108
142
  it("handles array of unions", () => {
109
143
  const ctx = createProgramContext(edgeCasesPath);
110
144
  const classDecl = findClassByName(ctx.sourceFile, "ArrayEdgeCases");
145
+ if (!classDecl)
146
+ throw new Error("ArrayEdgeCases class not found");
111
147
  const analysis = analyzeClass(classDecl, ctx.checker);
112
148
  const field = analysis.fields.find((f) => f.name === "mixedArray");
149
+ if (!field)
150
+ throw new Error("mixedArray field not found");
113
151
  const result = convertType(field.type, ctx.checker);
114
152
  expect(result.jsonSchema.type).toBe("array");
115
153
  expect(result.jsonSchema.items?.oneOf).toBeDefined();
@@ -117,16 +155,24 @@ describe("convertType - array edge cases", () => {
117
155
  it("handles nullable array", () => {
118
156
  const ctx = createProgramContext(edgeCasesPath);
119
157
  const classDecl = findClassByName(ctx.sourceFile, "ArrayEdgeCases");
158
+ if (!classDecl)
159
+ throw new Error("ArrayEdgeCases class not found");
120
160
  const analysis = analyzeClass(classDecl, ctx.checker);
121
161
  const field = analysis.fields.find((f) => f.name === "nullableArray");
162
+ if (!field)
163
+ throw new Error("nullableArray field not found");
122
164
  const result = convertType(field.type, ctx.checker);
123
165
  expect(result.jsonSchema.oneOf).toBeDefined();
124
166
  });
125
167
  it("handles array of objects", () => {
126
168
  const ctx = createProgramContext(edgeCasesPath);
127
169
  const classDecl = findClassByName(ctx.sourceFile, "ArrayEdgeCases");
170
+ if (!classDecl)
171
+ throw new Error("ArrayEdgeCases class not found");
128
172
  const analysis = analyzeClass(classDecl, ctx.checker);
129
173
  const field = analysis.fields.find((f) => f.name === "objectArray");
174
+ if (!field)
175
+ throw new Error("objectArray field not found");
130
176
  const result = convertType(field.type, ctx.checker);
131
177
  expect(result.jsonSchema.type).toBe("array");
132
178
  expect(result.jsonSchema.items?.type).toBe("object");
@@ -135,8 +181,12 @@ describe("convertType - array edge cases", () => {
135
181
  it("handles nested arrays", () => {
136
182
  const ctx = createProgramContext(edgeCasesPath);
137
183
  const classDecl = findClassByName(ctx.sourceFile, "ArrayEdgeCases");
184
+ if (!classDecl)
185
+ throw new Error("ArrayEdgeCases class not found");
138
186
  const analysis = analyzeClass(classDecl, ctx.checker);
139
187
  const field = analysis.fields.find((f) => f.name === "nestedArray");
188
+ if (!field)
189
+ throw new Error("nestedArray field not found");
140
190
  const result = convertType(field.type, ctx.checker);
141
191
  expect(result.jsonSchema.type).toBe("array");
142
192
  expect(result.jsonSchema.items?.type).toBe("array");
@@ -147,8 +197,12 @@ describe("convertType - object edge cases", () => {
147
197
  it("handles empty object", () => {
148
198
  const ctx = createProgramContext(edgeCasesPath);
149
199
  const classDecl = findClassByName(ctx.sourceFile, "ObjectEdgeCases");
200
+ if (!classDecl)
201
+ throw new Error("ObjectEdgeCases class not found");
150
202
  const analysis = analyzeClass(classDecl, ctx.checker);
151
203
  const field = analysis.fields.find((f) => f.name === "emptyObject");
204
+ if (!field)
205
+ throw new Error("emptyObject field not found");
152
206
  const result = convertType(field.type, ctx.checker);
153
207
  expect(result.jsonSchema.type).toBe("object");
154
208
  expect(result.jsonSchema.properties).toEqual({});
@@ -156,8 +210,12 @@ describe("convertType - object edge cases", () => {
156
210
  it("handles deeply nested object", () => {
157
211
  const ctx = createProgramContext(edgeCasesPath);
158
212
  const classDecl = findClassByName(ctx.sourceFile, "ObjectEdgeCases");
213
+ if (!classDecl)
214
+ throw new Error("ObjectEdgeCases class not found");
159
215
  const analysis = analyzeClass(classDecl, ctx.checker);
160
216
  const field = analysis.fields.find((f) => f.name === "deepNested");
217
+ if (!field)
218
+ throw new Error("deepNested field not found");
161
219
  const result = convertType(field.type, ctx.checker);
162
220
  expect(result.jsonSchema.type).toBe("object");
163
221
  expect(result.jsonSchema.properties?.["level1"]?.properties?.["level2"]).toBeDefined();
@@ -165,8 +223,12 @@ describe("convertType - object edge cases", () => {
165
223
  it("handles object with optional properties", () => {
166
224
  const ctx = createProgramContext(edgeCasesPath);
167
225
  const classDecl = findClassByName(ctx.sourceFile, "ObjectEdgeCases");
226
+ if (!classDecl)
227
+ throw new Error("ObjectEdgeCases class not found");
168
228
  const analysis = analyzeClass(classDecl, ctx.checker);
169
229
  const field = analysis.fields.find((f) => f.name === "optionalProps");
230
+ if (!field)
231
+ throw new Error("optionalProps field not found");
170
232
  const result = convertType(field.type, ctx.checker);
171
233
  expect(result.jsonSchema.type).toBe("object");
172
234
  expect(result.jsonSchema.required).toContain("required");
@@ -177,8 +239,12 @@ describe("convertType - special types", () => {
177
239
  it("handles any type gracefully", () => {
178
240
  const ctx = createProgramContext(edgeCasesPath);
179
241
  const classDecl = findClassByName(ctx.sourceFile, "SpecialTypes");
242
+ if (!classDecl)
243
+ throw new Error("SpecialTypes class not found");
180
244
  const analysis = analyzeClass(classDecl, ctx.checker);
181
245
  const field = analysis.fields.find((f) => f.name === "anyField");
246
+ if (!field)
247
+ throw new Error("anyField field not found");
182
248
  const result = convertType(field.type, ctx.checker);
183
249
  // any should be treated as unknown/empty schema
184
250
  expect(result.formSpecFieldType).toBeDefined();
@@ -186,8 +252,12 @@ describe("convertType - special types", () => {
186
252
  it("handles unknown type gracefully", () => {
187
253
  const ctx = createProgramContext(edgeCasesPath);
188
254
  const classDecl = findClassByName(ctx.sourceFile, "SpecialTypes");
255
+ if (!classDecl)
256
+ throw new Error("SpecialTypes class not found");
189
257
  const analysis = analyzeClass(classDecl, ctx.checker);
190
258
  const field = analysis.fields.find((f) => f.name === "unknownField");
259
+ if (!field)
260
+ throw new Error("unknownField field not found");
191
261
  const result = convertType(field.type, ctx.checker);
192
262
  expect(result.formSpecFieldType).toBeDefined();
193
263
  });
@@ -196,8 +266,12 @@ describe("convertType - enum variations", () => {
196
266
  it("handles single literal as enum with one value", () => {
197
267
  const ctx = createProgramContext(edgeCasesPath);
198
268
  const classDecl = findClassByName(ctx.sourceFile, "EnumVariations");
269
+ if (!classDecl)
270
+ throw new Error("EnumVariations class not found");
199
271
  const analysis = analyzeClass(classDecl, ctx.checker);
200
272
  const field = analysis.fields.find((f) => f.name === "singleLiteral");
273
+ if (!field)
274
+ throw new Error("singleLiteral field not found");
201
275
  const result = convertType(field.type, ctx.checker);
202
276
  // Single literal should be const, not enum
203
277
  expect(result.jsonSchema.const).toBe("only");
@@ -205,8 +279,12 @@ describe("convertType - enum variations", () => {
205
279
  it("handles number literal enum", () => {
206
280
  const ctx = createProgramContext(edgeCasesPath);
207
281
  const classDecl = findClassByName(ctx.sourceFile, "EnumVariations");
282
+ if (!classDecl)
283
+ throw new Error("EnumVariations class not found");
208
284
  const analysis = analyzeClass(classDecl, ctx.checker);
209
285
  const field = analysis.fields.find((f) => f.name === "numberEnum");
286
+ if (!field)
287
+ throw new Error("numberEnum field not found");
210
288
  const result = convertType(field.type, ctx.checker);
211
289
  expect(result.jsonSchema.enum).toEqual([1, 2, 3]);
212
290
  expect(result.formSpecFieldType).toBe("enum");
@@ -214,8 +292,12 @@ describe("convertType - enum variations", () => {
214
292
  it("handles mixed literal types as union", () => {
215
293
  const ctx = createProgramContext(edgeCasesPath);
216
294
  const classDecl = findClassByName(ctx.sourceFile, "EnumVariations");
295
+ if (!classDecl)
296
+ throw new Error("EnumVariations class not found");
217
297
  const analysis = analyzeClass(classDecl, ctx.checker);
218
298
  const field = analysis.fields.find((f) => f.name === "mixedLiterals");
299
+ if (!field)
300
+ throw new Error("mixedLiterals field not found");
219
301
  const result = convertType(field.type, ctx.checker);
220
302
  // Mixed string/number literals should be union, not enum
221
303
  expect(result.formSpecFieldType).toBe("union");
@@ -224,8 +306,12 @@ describe("convertType - enum variations", () => {
224
306
  it("handles large enum", () => {
225
307
  const ctx = createProgramContext(edgeCasesPath);
226
308
  const classDecl = findClassByName(ctx.sourceFile, "EnumVariations");
309
+ if (!classDecl)
310
+ throw new Error("EnumVariations class not found");
227
311
  const analysis = analyzeClass(classDecl, ctx.checker);
228
312
  const field = analysis.fields.find((f) => f.name === "largeEnum");
313
+ if (!field)
314
+ throw new Error("largeEnum field not found");
229
315
  const result = convertType(field.type, ctx.checker);
230
316
  expect(result.jsonSchema.enum).toHaveLength(10);
231
317
  expect(result.formSpecFieldType).toBe("enum");
@@ -288,6 +374,8 @@ describe("output writer - error handling", () => {
288
374
  it("creates output directory if it doesn't exist", () => {
289
375
  const ctx = createProgramContext(edgeCasesPath);
290
376
  const classDecl = findClassByName(ctx.sourceFile, "NullablePatterns");
377
+ if (!classDecl)
378
+ throw new Error("NullablePatterns class not found");
291
379
  const analysis = analyzeClass(classDecl, ctx.checker);
292
380
  const schemas = generateClassSchemas(analysis, ctx.checker);
293
381
  const nonExistentDir = path.join(tempDir, "new-dir", "nested");
@@ -298,6 +386,8 @@ describe("output writer - error handling", () => {
298
386
  it("overwrites existing files", () => {
299
387
  const ctx = createProgramContext(edgeCasesPath);
300
388
  const classDecl = findClassByName(ctx.sourceFile, "NullablePatterns");
389
+ if (!classDecl)
390
+ throw new Error("NullablePatterns class not found");
301
391
  const analysis = analyzeClass(classDecl, ctx.checker);
302
392
  const schemas = generateClassSchemas(analysis, ctx.checker);
303
393
  const outputDir = path.join(tempDir, "overwrite-test");
@@ -317,6 +407,8 @@ describe("output writer - error handling", () => {
317
407
  // Note: This tests the sanitization logic if any
318
408
  const ctx = createProgramContext(edgeCasesPath);
319
409
  const classDecl = findClassByName(ctx.sourceFile, "MixedUnionTypes");
410
+ if (!classDecl)
411
+ throw new Error("MixedUnionTypes class not found");
320
412
  const analysis = analyzeClass(classDecl, ctx.checker);
321
413
  const schemas = generateClassSchemas(analysis, ctx.checker);
322
414
  const result = writeClassSchemas(analysis.name, schemas, [], [], { outDir: tempDir });
@@ -382,6 +474,8 @@ describe("extractDecorators - edge cases", () => {
382
474
  it("handles class with no decorated properties", () => {
383
475
  const ctx = createProgramContext(edgeCasesPath);
384
476
  const classDecl = findClassByName(ctx.sourceFile, "MixedUnionTypes");
477
+ if (!classDecl)
478
+ throw new Error("MixedUnionTypes class not found");
385
479
  // This class has no decorators
386
480
  const analysis = analyzeClass(classDecl, ctx.checker);
387
481
  // All fields should have empty decorator arrays
@@ -392,6 +486,8 @@ describe("extractDecorators - edge cases", () => {
392
486
  it("handles class explicitly without decorators", () => {
393
487
  const ctx = createProgramContext(edgeCasesPath);
394
488
  const classDecl = findClassByName(ctx.sourceFile, "NoDecoratorsClass");
489
+ if (!classDecl)
490
+ throw new Error("NoDecoratorsClass class not found");
395
491
  const analysis = analyzeClass(classDecl, ctx.checker);
396
492
  // All fields should have empty decorator arrays
397
493
  expect(analysis.fields).toHaveLength(3);
@@ -402,10 +498,18 @@ describe("extractDecorators - edge cases", () => {
402
498
  it("correctly detects optional vs required fields without decorators", () => {
403
499
  const ctx = createProgramContext(edgeCasesPath);
404
500
  const classDecl = findClassByName(ctx.sourceFile, "NoDecoratorsClass");
501
+ if (!classDecl)
502
+ throw new Error("NoDecoratorsClass class not found");
405
503
  const analysis = analyzeClass(classDecl, ctx.checker);
406
504
  const nameField = analysis.fields.find((f) => f.name === "name");
505
+ if (!nameField)
506
+ throw new Error("name field not found");
407
507
  const countField = analysis.fields.find((f) => f.name === "count");
508
+ if (!countField)
509
+ throw new Error("count field not found");
408
510
  const activeField = analysis.fields.find((f) => f.name === "active");
511
+ if (!activeField)
512
+ throw new Error("active field not found");
409
513
  expect(nameField.optional).toBe(false);
410
514
  expect(countField.optional).toBe(true);
411
515
  expect(activeField.optional).toBe(false);