fix: default value as object in request body (#2437)

This commit is contained in:
Alex Varchuk 2023-10-23 18:36:30 +03:00 committed by GitHub
parent ba7cd0a130
commit b36a6e27bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 103 additions and 5 deletions

View File

@ -51,10 +51,10 @@ export const FieldDetailsComponent = observer((props: FieldProps) => {
return null;
}, [field, showExamples]);
const defaultValue = isObject(schema.default)
? getSerializedValue(field, schema.default).replace(`${field.name}=`, '')
: schema.default;
const defaultValue =
isObject(schema.default) && field.in
? getSerializedValue(field, schema.default).replace(`${field.name}=`, '')
: schema.default;
return (
<div>

View File

@ -44,4 +44,36 @@ describe('FieldDetailsComponent', () => {
expect(wrapper.render()).toMatchSnapshot();
});
it('renders correctly when default value is object in request body', () => {
const mockFieldProps = {
showExamples: true,
field: {
schema: {
type: 'object',
default: { properties: {} },
displayType: 'object',
title: 'test title',
externalDocs: undefined,
constraints: [''],
} as SchemaModel,
example: 'example',
name: 'name',
expanded: false,
required: false,
kind: '',
deprecated: false,
collapse: jest.fn(),
toggle: jest.fn(),
explode: false,
expand: jest.fn(),
description: 'test description',
in: undefined,
},
renderDiscriminatorSwitch: jest.fn(),
};
const wrapper = shallow(withTheme(<FieldDetails {...mockFieldProps} />));
expect(wrapper.render()).toMatchSnapshot();
});
});

View File

@ -37,7 +37,73 @@ exports[`FieldDetailsComponent renders correctly 1`] = `
<span
class="sc-kpDqfm sc-eldPxv cGRfjn ehWiAn"
>
""
[]
</span>
</div>
<div>
<span
class="sc-kpDqfm cGRfjn"
>
Example:
</span>
<span
class="sc-kpDqfm sc-eldPxv cGRfjn ehWiAn"
>
"example"
</span>
</div>
<div>
<div
class="sc-lcIPJg sc-hknOHE gBHqkN jFBMaE"
>
<p>
test description
</p>
</div>
</div>
</div>
`;
exports[`FieldDetailsComponent renders correctly when default value is object in request body 1`] = `
<div>
<div>
<span
class="sc-kpDqfm sc-dAlyuH cGRfjn gHomYR"
/>
<span
class="sc-kpDqfm sc-jlZhew cGRfjn dYtiIA"
>
object
</span>
<span
class="sc-kpDqfm sc-cwHptR cGRfjn gyVIPr"
>
(test title)
</span>
<span>
<span
class="sc-kpDqfm sc-gFqAkR cGRfjn fYEICH"
>
</span>
</span>
</div>
<div>
<span
class="sc-kpDqfm cGRfjn"
>
Default:
</span>
<span
class="sc-kpDqfm sc-eldPxv cGRfjn ehWiAn"
>
{"properties":{}}
</span>
</div>