Skip to content

Commit b36a6e2

Browse files
authored
fix: default value as object in request body (#2437)
1 parent ba7cd0a commit b36a6e2

File tree

3 files changed

+103
-5
lines changed

3 files changed

+103
-5
lines changed

src/components/Fields/FieldDetails.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ export const FieldDetailsComponent = observer((props: FieldProps) => {
5151

5252
return null;
5353
}, [field, showExamples]);
54-
55-
const defaultValue = isObject(schema.default)
56-
? getSerializedValue(field, schema.default).replace(`${field.name}=`, '')
57-
: schema.default;
54+
const defaultValue =
55+
isObject(schema.default) && field.in
56+
? getSerializedValue(field, schema.default).replace(`${field.name}=`, '')
57+
: schema.default;
5858

5959
return (
6060
<div>

src/components/__tests__/FieldDetails.test.tsx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,36 @@ describe('FieldDetailsComponent', () => {
4444

4545
expect(wrapper.render()).toMatchSnapshot();
4646
});
47+
48+
it('renders correctly when default value is object in request body', () => {
49+
const mockFieldProps = {
50+
showExamples: true,
51+
field: {
52+
schema: {
53+
type: 'object',
54+
default: { properties: {} },
55+
displayType: 'object',
56+
title: 'test title',
57+
externalDocs: undefined,
58+
constraints: [''],
59+
} as SchemaModel,
60+
example: 'example',
61+
name: 'name',
62+
expanded: false,
63+
required: false,
64+
kind: '',
65+
deprecated: false,
66+
collapse: jest.fn(),
67+
toggle: jest.fn(),
68+
explode: false,
69+
expand: jest.fn(),
70+
description: 'test description',
71+
in: undefined,
72+
},
73+
renderDiscriminatorSwitch: jest.fn(),
74+
};
75+
const wrapper = shallow(withTheme(<FieldDetails {...mockFieldProps} />));
76+
77+
expect(wrapper.render()).toMatchSnapshot();
78+
});
4779
});

src/components/__tests__/__snapshots__/FieldDetails.test.tsx.snap

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,73 @@ exports[`FieldDetailsComponent renders correctly 1`] = `
3737
<span
3838
class="sc-kpDqfm sc-eldPxv cGRfjn ehWiAn"
3939
>
40-
""
40+
[]
41+
</span>
42+
</div>
43+
44+
<div>
45+
<span
46+
class="sc-kpDqfm cGRfjn"
47+
>
48+
Example:
49+
</span>
50+
51+
<span
52+
class="sc-kpDqfm sc-eldPxv cGRfjn ehWiAn"
53+
>
54+
"example"
55+
</span>
56+
</div>
57+
<div>
58+
<div
59+
class="sc-lcIPJg sc-hknOHE gBHqkN jFBMaE"
60+
>
61+
<p>
62+
test description
63+
</p>
64+
65+
66+
</div>
67+
</div>
68+
</div>
69+
`;
70+
71+
exports[`FieldDetailsComponent renders correctly when default value is object in request body 1`] = `
72+
<div>
73+
<div>
74+
<span
75+
class="sc-kpDqfm sc-dAlyuH cGRfjn gHomYR"
76+
/>
77+
<span
78+
class="sc-kpDqfm sc-jlZhew cGRfjn dYtiIA"
79+
>
80+
object
81+
</span>
82+
<span
83+
class="sc-kpDqfm sc-cwHptR cGRfjn gyVIPr"
84+
>
85+
(test title)
86+
</span>
87+
<span>
88+
89+
<span
90+
class="sc-kpDqfm sc-gFqAkR cGRfjn fYEICH"
91+
>
92+
93+
</span>
94+
</span>
95+
</div>
96+
<div>
97+
<span
98+
class="sc-kpDqfm cGRfjn"
99+
>
100+
Default:
101+
</span>
102+
103+
<span
104+
class="sc-kpDqfm sc-eldPxv cGRfjn ehWiAn"
105+
>
106+
{"properties":{}}
41107
</span>
42108
</div>
43109

0 commit comments

Comments
 (0)