From 25241b431ef3a3b4e3a61f0be0f1d956656d3e8e Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Fri, 22 Jul 2022 09:57:16 +0200 Subject: [PATCH] Refactor: move mapping test into separate function --- .../openapi/util/request-parameters.test.ts | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/src/lib/openapi/util/request-parameters.test.ts b/src/lib/openapi/util/request-parameters.test.ts index c59d665608..1d5be9ab5e 100644 --- a/src/lib/openapi/util/request-parameters.test.ts +++ b/src/lib/openapi/util/request-parameters.test.ts @@ -1,5 +1,6 @@ import { SchemaObject } from 'ajv'; import fc, { Arbitrary } from 'fast-check'; +import { OpenAPIV3 } from 'openapi-types'; import { urlFriendlyString } from '../../../test/arbitraries.test'; import { createRequestParameters, @@ -37,23 +38,37 @@ const parameterDetails = (): Arbitrary => fc.dictionary(paramName(), parameterDescription()); describe('request parameter utils', () => { + const parameterDetailsAreMappedCorrectly = ( + parameterDetailsObject: ParameterDetails, + parameterObject: OpenAPIV3.ParameterObject, + ) => { + const schema: SchemaObject = parameterObject.schema; + + return ( + schema.type === parameterDetailsObject.type && + parameterObject.description === + parameterDetailsObject.description && + parameterObject.example === parameterDetailsObject.example && + schema.enum === parameterDetailsObject.enum && + schema.default === parameterDetailsObject.default && + parameterObject.required === parameterDetailsObject.required + ); + }; + it('turns a name and a parameter details description into a parameter object', () => { fc.assert( fc.property( paramName(), parameterDescription(), - (name, details) => { + fc.context(), + (name, details, ctx) => { const result = toParamObject(name, details); - const schema: SchemaObject = result.schema; + + ctx.log(JSON.stringify(result)); return ( result.name === name && - schema.type === details.type && - result.description === details.description && - result.example === details.example && - schema.enum === details.enum && - schema.default === details.default && - result.required === details.required + parameterDetailsAreMappedCorrectly(details, result) ); }, ), @@ -65,15 +80,13 @@ describe('request parameter utils', () => { fc.property(parameterDetails(), fc.context(), (parameters, ctx) => { const result = createRequestParameters(parameters); - ctx.log(JSON.stringify(parameters)); ctx.log(JSON.stringify(result)); - return result.every( - (paramsObject) => - paramsObject.description === - parameters[paramsObject.name].description && - (paramsObject.schema as SchemaObject).type === - parameters[paramsObject.name].type, + return result.every((paramsObject) => + parameterDetailsAreMappedCorrectly( + parameters[paramsObject.name], + paramsObject, + ), ); }), );