Skip to content

Commit 1e3fe87

Browse files
committed
feat: 完善additionalProperties处理,补充测试用例
1 parent 954b209 commit 1e3fe87

File tree

4 files changed

+20
-3
lines changed

4 files changed

+20
-3
lines changed

src/__tests__/__snapshots__/generic.test.ts.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ Object {
66
"definitions": Object {},
77
"properties": Object {
88
"value1": Object {
9+
"additionalProperties": false,
910
"properties": Object {
1011
"value2": Object {
12+
"additionalProperties": false,
1113
"properties": Object {
1214
"value3": Object {
1315
"type": "string",

src/__tests__/__snapshots__/interface.test.ts.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ Object {
252252
],
253253
},
254254
"other6": Object {
255+
"additionalProperties": false,
255256
"properties": Object {
256257
"some": Object {
257258
"type": "string",
@@ -267,6 +268,7 @@ Object {
267268
"type": "object",
268269
},
269270
"other8": Object {
271+
"additionalProperties": false,
270272
"properties": Object {
271273
"a": Object {
272274
"$ref": "#/definitions/Param.C.D.E.F.GetBaseDetailResponse",

src/__tests__/other.test.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,17 @@ test('获取注释_1', () => {
6868

6969
test('Promise_1', () => {
7070
expect(getSchema('Other_6')).toMatchSnapshot();
71-
});
71+
});
72+
73+
test('测试方法边界情况_genJsonschema', () => {
74+
const resultGenJsonschema = genTypeSchema.genJsonschema({}, {});
75+
expect(resultGenJsonschema).toMatchObject({});
76+
});
77+
78+
test('测试方法边界情况_getJsonSchema', () => {
79+
const resultGetJsonSchemaTest1 = genTypeSchema.getJsonSchema('test', 'test');
80+
expect(resultGetJsonSchemaTest1).toMatchObject({});
81+
82+
const resultGetJsonSchema = genTypeSchema.getJsonSchema('', 'test')
83+
expect(resultGetJsonSchema).toMatchObject({});
84+
});

src/get-jsonschema-from-data.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ export default class genTypeSchema extends typescriptToFileDatas {
9797
genJsonschema(
9898
fileJson: AnyOption,
9999
typeJson: AnyOption,
100-
entry: { keySet: Set<string>; refKeyTime: Record<string, number> },
100+
entry?: { keySet: Set<string>; refKeyTime: Record<string, number> },
101101
file?: string,
102102
): null | AnyOption {
103103
if (!entry) {
@@ -311,7 +311,6 @@ export default class genTypeSchema extends typescriptToFileDatas {
311311

312312
// 兼容import外部引入与内部引用两种方式
313313
let $refJson = fileJson[firstKey] || fileJson[$refKey] || {};
314-
// 魔法操作,消灭一直循环引用问题
315314
if ((entry as any).keySet.has($refKey)) {
316315
(entry as any).refKeyTime[$refKey] = ((entry as any).refKeyTime[$refKey] || 0) + 1;
317316
return;
@@ -568,6 +567,7 @@ export default class genTypeSchema extends typescriptToFileDatas {
568567
} else if (item.properties) {
569568
const res = this.genJsonschema(fileJson, item, entry, file) as AnyOption;
570569
Object.assign(item, res);
570+
item.additionalProperties = item.additionalProperties || false;
571571
if (item.definitions) {
572572
typeJson.definitions = { ...typeJson.definitions, ...item.definitions };
573573
delete item.definitions;

0 commit comments

Comments
 (0)