Skip to content

Commit efc4c35

Browse files
authoredMay 16, 2024
fix: handle OpenAPI 3.1 nullability for mocks (#1381)
1 parent bc3d277 commit efc4c35

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed
 

‎packages/mock/src/faker/getters/object.ts

+17
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,23 @@ export const getMockObject = ({
7272
});
7373
}
7474

75+
if (Array.isArray(item.type)) {
76+
return combineSchemasMock({
77+
item: {
78+
anyOf: item.type.map((type) => ({ type })),
79+
name: item.name,
80+
},
81+
separator: 'anyOf',
82+
mockOptions,
83+
operationId,
84+
tags,
85+
combine,
86+
context,
87+
imports,
88+
existingReferencedProperties,
89+
});
90+
}
91+
7592
if (item.properties) {
7693
let value =
7794
!combine ||

‎packages/mock/src/faker/getters/scalar.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,13 @@ export const getMockScalar = ({
248248
};
249249
}
250250

251-
case 'object':
251+
case 'null':
252+
return {
253+
value: 'null',
254+
imports: [],
255+
name: item.name,
256+
};
257+
252258
default: {
253259
return getMockObject({
254260
item,

‎tests/configs/mock.config.ts

+10
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,14 @@ export default defineConfig({
104104
target: '../specifications/petstore.yaml',
105105
},
106106
},
107+
nullType: {
108+
output: {
109+
schemas: '../generated/mock/null-type/model',
110+
target: '../generated/mock/null-type/endpoints.ts',
111+
mock: true,
112+
},
113+
input: {
114+
target: '../specifications/null-type.yaml',
115+
},
116+
},
107117
});

0 commit comments

Comments
 (0)
Please sign in to comment.