Skip to content

Commit

Permalink
fix: default value as object in request body (Redocly#2437)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexVarchuk authored and ckoegel committed Nov 1, 2023
1 parent 28b56bb commit fec880b
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 5 deletions.
8 changes: 4 additions & 4 deletions src/components/Fields/FieldDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 className="field-details">
Expand Down
32 changes: 32 additions & 0 deletions src/components/__tests__/FieldDetails.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,73 @@ exports[`FieldDetailsComponent renders correctly 1`] = `
<span
class="sc-kpDqfm sc-eldPxv cGRfjn ehWiAn field-example"
>
""
[]
</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>
Expand Down

0 comments on commit fec880b

Please sign in to comment.