From deb1ddf5f9c2728904beb47bc15cea18085dee55 Mon Sep 17 00:00:00 2001 From: Robert Carter Mills Date: Mon, 2 Jan 2023 21:44:34 -0800 Subject: [PATCH] Fix logic in getModel to recognize typeless object schemas --- src/openApi/v3/parser/getModel.spec.ts | 23 +++++++++++++++++++++++ src/openApi/v3/parser/getModel.ts | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/openApi/v3/parser/getModel.spec.ts diff --git a/src/openApi/v3/parser/getModel.spec.ts b/src/openApi/v3/parser/getModel.spec.ts new file mode 100644 index 000000000..5c219e544 --- /dev/null +++ b/src/openApi/v3/parser/getModel.spec.ts @@ -0,0 +1,23 @@ +import { OpenApi } from '../interfaces/OpenApi'; +import { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { getModel } from './getModel'; + +describe('getModel', () => { + it('should get an object model when type is missing but properties exist', () => { + const openApi: OpenApi = { + openapi: '3.0.1', + info: { title: 'OpenApi Test', version: '0.1.0' }, + paths: {}, + }; + const definition: OpenApiSchema = { + properties: { + data: { + type: 'string', + }, + }, + }; + + const model = getModel(openApi, definition); + expect(model.properties[0].name).toBe('data'); + }); +}); diff --git a/src/openApi/v3/parser/getModel.ts b/src/openApi/v3/parser/getModel.ts index 9e9c60a98..2156f900c 100644 --- a/src/openApi/v3/parser/getModel.ts +++ b/src/openApi/v3/parser/getModel.ts @@ -149,7 +149,7 @@ export const getModel = ( return model; } - if (definition.type === 'object') { + if (definition.type === 'object' || definition.properties) { if (definition.properties) { model.export = 'interface'; model.type = 'any';