@@ -0,0 +1,47 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { generateTypes } from './generate-openapi-types.mjs';
|
||||
|
||||
describe('generate-openapi-types', () => {
|
||||
it('emits only schemas and ignores non-operation path item keys', () => {
|
||||
const output = generateTypes({
|
||||
components: {
|
||||
schemas: {
|
||||
ProblemDetails: {
|
||||
properties: {
|
||||
detail: { type: 'string' }
|
||||
},
|
||||
type: 'object'
|
||||
}
|
||||
}
|
||||
},
|
||||
paths: {
|
||||
'/api/items/{id}': {
|
||||
parameters: [
|
||||
{
|
||||
in: 'path',
|
||||
name: 'id',
|
||||
schema: { type: 'integer' }
|
||||
}
|
||||
],
|
||||
get: {
|
||||
operationId: 'GetItem',
|
||||
responses: {
|
||||
200: {
|
||||
content: {
|
||||
'application/json': {
|
||||
schema: { $ref: '#/components/schemas/ProblemDetails' }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
expect(output).toContain('export interface components');
|
||||
expect(output).toContain('"ProblemDetails"');
|
||||
expect(output).not.toContain('export interface operations');
|
||||
expect(output).not.toContain('"parameters"');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user