swagger-parser-mcp-server 1.0.6 → 2.0.0
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.
- package/dist/index.js +126 -206
- package/dist/index.js.map +1 -1
- package/dist/schemas.d.ts +58 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +32 -0
- package/dist/schemas.js.map +1 -0
- package/dist/tests/edgeCases.test.d.ts +2 -0
- package/dist/tests/edgeCases.test.d.ts.map +1 -0
- package/dist/tests/edgeCases.test.js +364 -0
- package/dist/tests/edgeCases.test.js.map +1 -0
- package/dist/tests/integration.test.d.ts +2 -0
- package/dist/tests/integration.test.d.ts.map +1 -0
- package/dist/tests/integration.test.js +382 -0
- package/dist/tests/integration.test.js.map +1 -0
- package/dist/tests/realWorldValidation.test.d.ts +2 -0
- package/dist/tests/realWorldValidation.test.d.ts.map +1 -0
- package/dist/tests/realWorldValidation.test.js +398 -0
- package/dist/tests/realWorldValidation.test.js.map +1 -0
- package/dist/tests/schemaResolver.test.d.ts +2 -0
- package/dist/tests/schemaResolver.test.d.ts.map +1 -0
- package/dist/tests/schemaResolver.test.js +322 -0
- package/dist/tests/schemaResolver.test.js.map +1 -0
- package/dist/utils/schemaResolver.d.ts +34 -0
- package/dist/utils/schemaResolver.d.ts.map +1 -0
- package/dist/utils/schemaResolver.js +255 -0
- package/dist/utils/schemaResolver.js.map +1 -0
- package/dist/utils/swaggerCache.d.ts +53 -0
- package/dist/utils/swaggerCache.d.ts.map +1 -0
- package/dist/utils/swaggerCache.js +146 -0
- package/dist/utils/swaggerCache.js.map +1 -0
- package/dist/utils/types.d.ts +73 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +20 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +39 -9
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import { SchemaResolver } from '../utils/schemaResolver.js';
|
|
2
|
+
import { SwaggerCache } from '../utils/swaggerCache.js';
|
|
3
|
+
import { CircularReferenceError, InvalidReferenceError } from '../utils/types.js';
|
|
4
|
+
import fs from 'fs';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import axios from 'axios';
|
|
7
|
+
// Mock axios for cache tests
|
|
8
|
+
jest.mock('axios');
|
|
9
|
+
const mockedAxios = axios;
|
|
10
|
+
describe('Edge Cases and Error Scenarios', () => {
|
|
11
|
+
let resolver;
|
|
12
|
+
let cache;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
resolver = new SchemaResolver();
|
|
15
|
+
cache = new SwaggerCache();
|
|
16
|
+
jest.clearAllMocks();
|
|
17
|
+
});
|
|
18
|
+
describe('Circular Reference Edge Cases', () => {
|
|
19
|
+
let circularSchema;
|
|
20
|
+
beforeAll(() => {
|
|
21
|
+
const schemaPath = path.join(process.cwd(), 'src', 'tests', 'fixtures', 'circularSchema.json');
|
|
22
|
+
// NOTE: circularSchema must be any type because it represents a test fixture with dynamic OpenAPI schema structure
|
|
23
|
+
// This is unavoidable as test fixtures can have arbitrary schema definitions for testing edge cases
|
|
24
|
+
circularSchema = JSON.parse(fs.readFileSync(schemaPath, 'utf8'));
|
|
25
|
+
});
|
|
26
|
+
it('should handle self-referencing schemas', () => {
|
|
27
|
+
expect(() => {
|
|
28
|
+
resolver.resolveRef('#/components/schemas/Node', circularSchema);
|
|
29
|
+
}).toThrow(CircularReferenceError);
|
|
30
|
+
});
|
|
31
|
+
it('should handle deeply nested circular references', () => {
|
|
32
|
+
expect(() => {
|
|
33
|
+
resolver.resolveRef('#/components/schemas/ComplexCircular', circularSchema);
|
|
34
|
+
}).toThrow(CircularReferenceError);
|
|
35
|
+
});
|
|
36
|
+
it('should handle circular references in arrays', () => {
|
|
37
|
+
expect(() => {
|
|
38
|
+
resolver.resolveRef('#/components/schemas/LinkedList', circularSchema);
|
|
39
|
+
}).toThrow(CircularReferenceError);
|
|
40
|
+
});
|
|
41
|
+
it('should detect circular references with custom max depth', () => {
|
|
42
|
+
const customResolver = new SchemaResolver({ maxDepth: 3 });
|
|
43
|
+
expect(() => {
|
|
44
|
+
customResolver.resolveRef('#/components/schemas/Node', circularSchema);
|
|
45
|
+
}).toThrow(CircularReferenceError);
|
|
46
|
+
});
|
|
47
|
+
it('should handle circular references with very small max depth', () => {
|
|
48
|
+
const shallowResolver = new SchemaResolver({
|
|
49
|
+
maxDepth: 1,
|
|
50
|
+
includeCircularRefs: false,
|
|
51
|
+
});
|
|
52
|
+
// NOTE: resolveRef returns any type because OpenAPI schema references can resolve to arbitrary structures
|
|
53
|
+
const result = shallowResolver.resolveRef('#/components/schemas/Node', circularSchema);
|
|
54
|
+
// With very small max depth, the resolver should hit the depth limit and return placeholders
|
|
55
|
+
expect(result).toBeDefined();
|
|
56
|
+
const resultStr = JSON.stringify(result);
|
|
57
|
+
expect(resultStr).toContain('[Circular Reference]');
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('Malformed Schema Edge Cases', () => {
|
|
61
|
+
it('should handle schemas with missing components section', () => {
|
|
62
|
+
const brokenSchema = {
|
|
63
|
+
openapi: '3.0.0',
|
|
64
|
+
info: { title: 'Broken API', version: '1.0.0' },
|
|
65
|
+
paths: {},
|
|
66
|
+
// Missing components section
|
|
67
|
+
};
|
|
68
|
+
expect(() => {
|
|
69
|
+
resolver.resolveRef('#/components/schemas/User', brokenSchema);
|
|
70
|
+
}).toThrow(InvalidReferenceError);
|
|
71
|
+
});
|
|
72
|
+
it('should handle schemas with empty components section', () => {
|
|
73
|
+
const emptyComponentsSchema = {
|
|
74
|
+
openapi: '3.0.0',
|
|
75
|
+
info: { title: 'Empty API', version: '1.0.0' },
|
|
76
|
+
paths: {},
|
|
77
|
+
components: {},
|
|
78
|
+
};
|
|
79
|
+
expect(() => {
|
|
80
|
+
resolver.resolveRef('#/components/schemas/User', emptyComponentsSchema);
|
|
81
|
+
}).toThrow(InvalidReferenceError);
|
|
82
|
+
});
|
|
83
|
+
it('should handle null/undefined schema properties', () => {
|
|
84
|
+
const nullSchema = {
|
|
85
|
+
type: 'object',
|
|
86
|
+
properties: {
|
|
87
|
+
validProp: { type: 'string' },
|
|
88
|
+
nullProp: null,
|
|
89
|
+
undefinedProp: undefined,
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
const result = resolver.resolveSchemaReference(nullSchema, {
|
|
93
|
+
openapi: '3.0.0',
|
|
94
|
+
info: { title: 'Test', version: '1.0.0' },
|
|
95
|
+
paths: {},
|
|
96
|
+
});
|
|
97
|
+
expect(result.properties.validProp).toEqual({ type: 'string' });
|
|
98
|
+
expect(result.properties.nullProp).toBeNull();
|
|
99
|
+
});
|
|
100
|
+
it('should handle references with special characters', () => {
|
|
101
|
+
const specialCharSchema = {
|
|
102
|
+
openapi: '3.0.0',
|
|
103
|
+
info: { title: 'Special Char API', version: '1.0.0' },
|
|
104
|
+
paths: {},
|
|
105
|
+
components: {
|
|
106
|
+
schemas: {
|
|
107
|
+
'User-Profile': {
|
|
108
|
+
type: 'object',
|
|
109
|
+
properties: {
|
|
110
|
+
name: { type: 'string' },
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
const result = resolver.resolveRef('#/components/schemas/User-Profile', specialCharSchema);
|
|
117
|
+
expect(result.type).toBe('object');
|
|
118
|
+
expect(result.properties.name.type).toBe('string');
|
|
119
|
+
});
|
|
120
|
+
it('should handle very long reference paths', () => {
|
|
121
|
+
const longPathSchema = {
|
|
122
|
+
openapi: '3.0.0',
|
|
123
|
+
info: { title: 'Long Path API', version: '1.0.0' },
|
|
124
|
+
paths: {},
|
|
125
|
+
components: {
|
|
126
|
+
schemas: {
|
|
127
|
+
VeryLongSchemaNameThatExceedsMostReasonableLimitsButShouldStillWork: {
|
|
128
|
+
type: 'string',
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
const result = resolver.resolveRef('#/components/schemas/VeryLongSchemaNameThatExceedsMostReasonableLimitsButShouldStillWork', longPathSchema);
|
|
134
|
+
expect(result.type).toBe('string');
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe('Performance Edge Cases', () => {
|
|
138
|
+
it('should handle schemas with very large number of properties', () => {
|
|
139
|
+
const largeSchema = {
|
|
140
|
+
type: 'object',
|
|
141
|
+
properties: {},
|
|
142
|
+
};
|
|
143
|
+
// Create 1000 properties
|
|
144
|
+
for (let i = 0; i < 1000; i++) {
|
|
145
|
+
largeSchema.properties[`prop${i}`] = { type: 'string' };
|
|
146
|
+
}
|
|
147
|
+
const mockSwagger = {
|
|
148
|
+
openapi: '3.0.0',
|
|
149
|
+
info: { title: 'Large API', version: '1.0.0' },
|
|
150
|
+
paths: {},
|
|
151
|
+
};
|
|
152
|
+
const startTime = Date.now();
|
|
153
|
+
const result = resolver.resolveSchemaReference(largeSchema, mockSwagger);
|
|
154
|
+
const endTime = Date.now();
|
|
155
|
+
expect(Object.keys(result.properties)).toHaveLength(1000);
|
|
156
|
+
expect(endTime - startTime).toBeLessThan(5000); // Should complete within 5 seconds
|
|
157
|
+
});
|
|
158
|
+
it('should handle deeply nested arrays without stack overflow', () => {
|
|
159
|
+
let nestedArray = { type: 'string' };
|
|
160
|
+
// Create 8 levels of array nesting (within default max depth of 10)
|
|
161
|
+
for (let i = 0; i < 8; i++) {
|
|
162
|
+
nestedArray = {
|
|
163
|
+
type: 'array',
|
|
164
|
+
items: nestedArray,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
const mockSwagger = {
|
|
168
|
+
openapi: '3.0.0',
|
|
169
|
+
info: { title: 'Nested API', version: '1.0.0' },
|
|
170
|
+
paths: {},
|
|
171
|
+
};
|
|
172
|
+
const result = resolver.resolveSchemaReference(nestedArray, mockSwagger);
|
|
173
|
+
expect(result.type).toBe('array');
|
|
174
|
+
// Verify it doesn't cause stack overflow
|
|
175
|
+
let current = result;
|
|
176
|
+
let depth = 0;
|
|
177
|
+
while (current.items && depth < 12) {
|
|
178
|
+
current = current.items;
|
|
179
|
+
depth++;
|
|
180
|
+
}
|
|
181
|
+
expect(depth).toBe(8);
|
|
182
|
+
});
|
|
183
|
+
it('should handle concurrent schema resolution', async () => {
|
|
184
|
+
const testSchema = {
|
|
185
|
+
openapi: '3.0.0',
|
|
186
|
+
info: { title: 'Concurrent API', version: '1.0.0' },
|
|
187
|
+
paths: {},
|
|
188
|
+
components: {
|
|
189
|
+
schemas: {
|
|
190
|
+
User1: { type: 'string' },
|
|
191
|
+
User2: { type: 'number' },
|
|
192
|
+
User3: { type: 'boolean' },
|
|
193
|
+
User4: { type: 'object', properties: { name: { type: 'string' } } },
|
|
194
|
+
User5: { type: 'array', items: { type: 'string' } },
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
const promises = [
|
|
199
|
+
() => resolver.resolveRef('#/components/schemas/User1', testSchema),
|
|
200
|
+
() => resolver.resolveRef('#/components/schemas/User2', testSchema),
|
|
201
|
+
() => resolver.resolveRef('#/components/schemas/User3', testSchema),
|
|
202
|
+
() => resolver.resolveRef('#/components/schemas/User4', testSchema),
|
|
203
|
+
() => resolver.resolveRef('#/components/schemas/User5', testSchema),
|
|
204
|
+
];
|
|
205
|
+
const results = await Promise.all(promises.map(fn => Promise.resolve(fn())));
|
|
206
|
+
expect(results[0].type).toBe('string');
|
|
207
|
+
expect(results[1].type).toBe('number');
|
|
208
|
+
expect(results[2].type).toBe('boolean');
|
|
209
|
+
expect(results[3].type).toBe('object');
|
|
210
|
+
expect(results[4].type).toBe('array');
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
describe('SwaggerCache Edge Cases', () => {
|
|
214
|
+
it('should handle invalid JSON responses', async () => {
|
|
215
|
+
const url = 'https://api.example.com/invalid.json';
|
|
216
|
+
mockedAxios.get.mockResolvedValueOnce({ data: 'invalid json string' });
|
|
217
|
+
await expect(cache.load(url)).rejects.toThrow('Invalid OpenAPI document');
|
|
218
|
+
});
|
|
219
|
+
it('should handle empty responses', async () => {
|
|
220
|
+
const url = 'https://api.example.com/empty.json';
|
|
221
|
+
mockedAxios.get.mockResolvedValueOnce({ data: null });
|
|
222
|
+
await expect(cache.load(url)).rejects.toThrow('Invalid OpenAPI document: not an object');
|
|
223
|
+
});
|
|
224
|
+
it('should handle responses with missing required fields', async () => {
|
|
225
|
+
const url = 'https://api.example.com/incomplete.json';
|
|
226
|
+
mockedAxios.get.mockResolvedValueOnce({
|
|
227
|
+
data: {
|
|
228
|
+
openapi: '3.0.0',
|
|
229
|
+
// Missing info and paths
|
|
230
|
+
},
|
|
231
|
+
});
|
|
232
|
+
await expect(cache.load(url)).rejects.toThrow('Invalid OpenAPI document: missing info section');
|
|
233
|
+
});
|
|
234
|
+
it('should handle very large responses', async () => {
|
|
235
|
+
const url = 'https://api.example.com/large.json';
|
|
236
|
+
// Create a large but valid OpenAPI document
|
|
237
|
+
const largeSwagger = {
|
|
238
|
+
openapi: '3.0.0',
|
|
239
|
+
info: { title: 'Large API', version: '1.0.0' },
|
|
240
|
+
paths: {},
|
|
241
|
+
components: {
|
|
242
|
+
schemas: {},
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
// Add 100 paths and schemas
|
|
246
|
+
for (let i = 0; i < 100; i++) {
|
|
247
|
+
largeSwagger.paths[`/endpoint/${i}`] = {
|
|
248
|
+
get: {
|
|
249
|
+
responses: {
|
|
250
|
+
'200': {
|
|
251
|
+
description: 'Success',
|
|
252
|
+
content: {
|
|
253
|
+
'application/json': {
|
|
254
|
+
schema: { $ref: `#/components/schemas/Schema${i}` },
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
};
|
|
261
|
+
largeSwagger.components.schemas[`Schema${i}`] = {
|
|
262
|
+
type: 'object',
|
|
263
|
+
properties: {
|
|
264
|
+
id: { type: 'string' },
|
|
265
|
+
name: { type: 'string' },
|
|
266
|
+
data: { type: 'string' },
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
mockedAxios.get.mockResolvedValueOnce({ data: largeSwagger });
|
|
271
|
+
const startTime = Date.now();
|
|
272
|
+
const result = await cache.load(url);
|
|
273
|
+
const endTime = Date.now();
|
|
274
|
+
expect(result).toBeDefined();
|
|
275
|
+
expect(Object.keys(result.paths)).toHaveLength(100);
|
|
276
|
+
expect(endTime - startTime).toBeLessThan(10000); // Should complete within 10 seconds
|
|
277
|
+
});
|
|
278
|
+
it('should handle timeout scenarios', async () => {
|
|
279
|
+
const url = 'https://api.example.com/timeout.json';
|
|
280
|
+
mockedAxios.get.mockRejectedValueOnce({
|
|
281
|
+
code: 'ECONNABORTED',
|
|
282
|
+
message: 'timeout of 30000ms exceeded',
|
|
283
|
+
});
|
|
284
|
+
await expect(cache.load(url)).rejects.toThrow('Failed to load OpenAPI document: timeout of 30000ms exceeded');
|
|
285
|
+
});
|
|
286
|
+
it('should handle cache memory pressure', async () => {
|
|
287
|
+
// Load many documents to test memory management
|
|
288
|
+
const urls = [];
|
|
289
|
+
for (let i = 0; i < 50; i++) {
|
|
290
|
+
urls.push(`https://api${i}.example.com/swagger.json`);
|
|
291
|
+
}
|
|
292
|
+
const mockResponse = {
|
|
293
|
+
openapi: '3.0.0',
|
|
294
|
+
info: { title: 'Test API', version: '1.0.0' },
|
|
295
|
+
paths: {},
|
|
296
|
+
components: { schemas: {} },
|
|
297
|
+
};
|
|
298
|
+
// Mock all requests
|
|
299
|
+
urls.forEach(() => {
|
|
300
|
+
mockedAxios.get.mockResolvedValueOnce({ data: mockResponse });
|
|
301
|
+
});
|
|
302
|
+
// Load all documents
|
|
303
|
+
await Promise.all(urls.map(url => cache.load(url)));
|
|
304
|
+
const stats = cache.getStats();
|
|
305
|
+
expect(stats.cacheSize).toBe(50);
|
|
306
|
+
expect(stats.cachedUrls).toHaveLength(50);
|
|
307
|
+
});
|
|
308
|
+
});
|
|
309
|
+
describe('Type Safety Edge Cases', () => {
|
|
310
|
+
it('should handle schemas with mixed type definitions', () => {
|
|
311
|
+
const mixedSchema = {
|
|
312
|
+
oneOf: [{ type: 'string' }, { type: 'number' }, { $ref: '#/components/schemas/ComplexType' }],
|
|
313
|
+
};
|
|
314
|
+
const mockSwagger = {
|
|
315
|
+
openapi: '3.0.0',
|
|
316
|
+
info: { title: 'Mixed API', version: '1.0.0' },
|
|
317
|
+
paths: {},
|
|
318
|
+
components: {
|
|
319
|
+
schemas: {
|
|
320
|
+
ComplexType: {
|
|
321
|
+
type: 'object',
|
|
322
|
+
properties: { value: { type: 'string' } },
|
|
323
|
+
},
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
};
|
|
327
|
+
const result = resolver.resolveSchemaReference(mixedSchema, mockSwagger);
|
|
328
|
+
expect(result.oneOf).toBeDefined();
|
|
329
|
+
expect(result.oneOf).toHaveLength(3);
|
|
330
|
+
});
|
|
331
|
+
it('should handle schemas with allOf/anyOf/oneOf containing circular references', () => {
|
|
332
|
+
const compositionSchema = {
|
|
333
|
+
openapi: '3.0.0',
|
|
334
|
+
info: { title: 'Composition API', version: '1.0.0' },
|
|
335
|
+
paths: {},
|
|
336
|
+
components: {
|
|
337
|
+
schemas: {
|
|
338
|
+
Base: {
|
|
339
|
+
type: 'object',
|
|
340
|
+
properties: {
|
|
341
|
+
id: { type: 'string' },
|
|
342
|
+
},
|
|
343
|
+
},
|
|
344
|
+
Extended: {
|
|
345
|
+
allOf: [
|
|
346
|
+
{ $ref: '#/components/schemas/Base' },
|
|
347
|
+
{
|
|
348
|
+
type: 'object',
|
|
349
|
+
properties: {
|
|
350
|
+
child: { $ref: '#/components/schemas/Extended' },
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
],
|
|
354
|
+
},
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
};
|
|
358
|
+
expect(() => {
|
|
359
|
+
resolver.resolveRef('#/components/schemas/Extended', compositionSchema);
|
|
360
|
+
}).toThrow(CircularReferenceError);
|
|
361
|
+
});
|
|
362
|
+
});
|
|
363
|
+
});
|
|
364
|
+
//# sourceMappingURL=edgeCases.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edgeCases.test.js","sourceRoot":"","sources":["../../src/tests/edgeCases.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":""}
|