mirror of
https://github.com/Unleash/unleash.git
synced 2025-10-13 11:17:26 +02:00
Refactor: move mapping test into separate function
This commit is contained in:
parent
c9ce6a6067
commit
25241b431e
@ -1,5 +1,6 @@
|
|||||||
import { SchemaObject } from 'ajv';
|
import { SchemaObject } from 'ajv';
|
||||||
import fc, { Arbitrary } from 'fast-check';
|
import fc, { Arbitrary } from 'fast-check';
|
||||||
|
import { OpenAPIV3 } from 'openapi-types';
|
||||||
import { urlFriendlyString } from '../../../test/arbitraries.test';
|
import { urlFriendlyString } from '../../../test/arbitraries.test';
|
||||||
import {
|
import {
|
||||||
createRequestParameters,
|
createRequestParameters,
|
||||||
@ -37,23 +38,37 @@ const parameterDetails = (): Arbitrary<Parameters> =>
|
|||||||
fc.dictionary(paramName(), parameterDescription());
|
fc.dictionary(paramName(), parameterDescription());
|
||||||
|
|
||||||
describe('request parameter utils', () => {
|
describe('request parameter utils', () => {
|
||||||
|
const parameterDetailsAreMappedCorrectly = (
|
||||||
|
parameterDetailsObject: ParameterDetails<unknown>,
|
||||||
|
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', () => {
|
it('turns a name and a parameter details description into a parameter object', () => {
|
||||||
fc.assert(
|
fc.assert(
|
||||||
fc.property(
|
fc.property(
|
||||||
paramName(),
|
paramName(),
|
||||||
parameterDescription(),
|
parameterDescription(),
|
||||||
(name, details) => {
|
fc.context(),
|
||||||
|
(name, details, ctx) => {
|
||||||
const result = toParamObject(name, details);
|
const result = toParamObject(name, details);
|
||||||
const schema: SchemaObject = result.schema;
|
|
||||||
|
ctx.log(JSON.stringify(result));
|
||||||
|
|
||||||
return (
|
return (
|
||||||
result.name === name &&
|
result.name === name &&
|
||||||
schema.type === details.type &&
|
parameterDetailsAreMappedCorrectly(details, result)
|
||||||
result.description === details.description &&
|
|
||||||
result.example === details.example &&
|
|
||||||
schema.enum === details.enum &&
|
|
||||||
schema.default === details.default &&
|
|
||||||
result.required === details.required
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@ -65,15 +80,13 @@ describe('request parameter utils', () => {
|
|||||||
fc.property(parameterDetails(), fc.context(), (parameters, ctx) => {
|
fc.property(parameterDetails(), fc.context(), (parameters, ctx) => {
|
||||||
const result = createRequestParameters(parameters);
|
const result = createRequestParameters(parameters);
|
||||||
|
|
||||||
ctx.log(JSON.stringify(parameters));
|
|
||||||
ctx.log(JSON.stringify(result));
|
ctx.log(JSON.stringify(result));
|
||||||
|
|
||||||
return result.every(
|
return result.every((paramsObject) =>
|
||||||
(paramsObject) =>
|
parameterDetailsAreMappedCorrectly(
|
||||||
paramsObject.description ===
|
parameters[paramsObject.name],
|
||||||
parameters[paramsObject.name].description &&
|
paramsObject,
|
||||||
(paramsObject.schema as SchemaObject).type ===
|
),
|
||||||
parameters[paramsObject.name].type,
|
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user