Skip to content

Commit 2834548

Browse files
authored
Merge pull request #352 from mattpolzin/fix-inferred-bug
keep inferred when updating any other property of a core context using a helper function
2 parents b00b08d + 4756da4 commit 2834548

File tree

3 files changed

+57
-18
lines changed

3 files changed

+57
-18
lines changed

Sources/OpenAPIKit/Schema Object/JSONSchemaContext.swift

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,8 @@ extension JSONSchema.CoreContext {
296296
allowedValues: allowedValues,
297297
defaultValue: defaultValue,
298298
examples: examples,
299-
vendorExtensions: vendorExtensions
299+
vendorExtensions: vendorExtensions,
300+
_inferred: inferred
300301
)
301302
}
302303

@@ -315,7 +316,8 @@ extension JSONSchema.CoreContext {
315316
allowedValues: allowedValues,
316317
defaultValue: defaultValue,
317318
examples: examples,
318-
vendorExtensions: vendorExtensions
319+
vendorExtensions: vendorExtensions,
320+
_inferred: inferred
319321
)
320322
}
321323

@@ -334,7 +336,8 @@ extension JSONSchema.CoreContext {
334336
allowedValues: allowedValues,
335337
defaultValue: defaultValue,
336338
examples: examples,
337-
vendorExtensions: vendorExtensions
339+
vendorExtensions: vendorExtensions,
340+
_inferred: inferred
338341
)
339342
}
340343

@@ -353,7 +356,8 @@ extension JSONSchema.CoreContext {
353356
allowedValues: allowedValues,
354357
defaultValue: defaultValue,
355358
examples: examples,
356-
vendorExtensions: vendorExtensions
359+
vendorExtensions: vendorExtensions,
360+
_inferred: inferred
357361
)
358362
}
359363

@@ -372,7 +376,8 @@ extension JSONSchema.CoreContext {
372376
allowedValues: allowedValues,
373377
defaultValue: defaultValue,
374378
examples: examples,
375-
vendorExtensions: vendorExtensions
379+
vendorExtensions: vendorExtensions,
380+
_inferred: inferred
376381
)
377382
}
378383

@@ -391,7 +396,8 @@ extension JSONSchema.CoreContext {
391396
allowedValues: allowedValues,
392397
defaultValue: defaultValue,
393398
examples: [example],
394-
vendorExtensions: vendorExtensions
399+
vendorExtensions: vendorExtensions,
400+
_inferred: inferred
395401
)
396402
}
397403

@@ -410,7 +416,8 @@ extension JSONSchema.CoreContext {
410416
allowedValues: allowedValues,
411417
defaultValue: defaultValue,
412418
examples: examples,
413-
vendorExtensions: vendorExtensions
419+
vendorExtensions: vendorExtensions,
420+
_inferred: inferred
414421
)
415422
}
416423

@@ -429,7 +436,8 @@ extension JSONSchema.CoreContext {
429436
allowedValues: allowedValues,
430437
defaultValue: defaultValue,
431438
examples: examples,
432-
vendorExtensions: vendorExtensions
439+
vendorExtensions: vendorExtensions,
440+
_inferred: inferred
433441
)
434442
}
435443

@@ -448,7 +456,8 @@ extension JSONSchema.CoreContext {
448456
allowedValues: allowedValues,
449457
defaultValue: defaultValue,
450458
examples: examples,
451-
vendorExtensions: vendorExtensions
459+
vendorExtensions: vendorExtensions,
460+
_inferred: inferred
452461
)
453462
}
454463

@@ -467,7 +476,8 @@ extension JSONSchema.CoreContext {
467476
allowedValues: allowedValues,
468477
defaultValue: defaultValue,
469478
examples: examples,
470-
vendorExtensions: vendorExtensions
479+
vendorExtensions: vendorExtensions,
480+
_inferred: inferred
471481
)
472482
}
473483
}

Sources/OpenAPIKit30/Schema Object/JSONSchemaContext.swift

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,8 @@ extension JSONSchema.CoreContext {
273273
externalDocs: externalDocs,
274274
allowedValues: allowedValues,
275275
defaultValue: defaultValue,
276-
example: example
276+
example: example,
277+
_inferred: inferred
277278
)
278279
}
279280

@@ -291,7 +292,8 @@ extension JSONSchema.CoreContext {
291292
externalDocs: externalDocs,
292293
allowedValues: allowedValues,
293294
defaultValue: defaultValue,
294-
example: example
295+
example: example,
296+
_inferred: inferred
295297
)
296298
}
297299

@@ -309,7 +311,8 @@ extension JSONSchema.CoreContext {
309311
externalDocs: externalDocs,
310312
allowedValues: allowedValues,
311313
defaultValue: defaultValue,
312-
example: example
314+
example: example,
315+
_inferred: inferred
313316
)
314317
}
315318

@@ -327,7 +330,8 @@ extension JSONSchema.CoreContext {
327330
externalDocs: externalDocs,
328331
allowedValues: allowedValues,
329332
defaultValue: defaultValue,
330-
example: example
333+
example: example,
334+
_inferred: inferred
331335
)
332336
}
333337

@@ -345,7 +349,8 @@ extension JSONSchema.CoreContext {
345349
externalDocs: externalDocs,
346350
allowedValues: allowedValues,
347351
defaultValue: defaultValue,
348-
example: example
352+
example: example,
353+
_inferred: inferred
349354
)
350355
}
351356

@@ -363,7 +368,8 @@ extension JSONSchema.CoreContext {
363368
externalDocs: externalDocs,
364369
allowedValues: allowedValues,
365370
defaultValue: defaultValue,
366-
example: example
371+
example: example,
372+
_inferred: inferred
367373
)
368374
}
369375

@@ -381,7 +387,8 @@ extension JSONSchema.CoreContext {
381387
externalDocs: externalDocs,
382388
allowedValues: allowedValues,
383389
defaultValue: defaultValue,
384-
example: example
390+
example: example,
391+
_inferred: inferred
385392
)
386393
}
387394
}

Tests/OpenAPIKitCompatTests/DocumentConversionTests.swift

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,28 @@ final class DocumentConversionTests: XCTestCase {
762762
}
763763

764764
func test_JSONSchemaFragment() throws {
765-
// TODO: write test
765+
let inferredFragment = OpenAPIKit30.JSONSchema.fragment(.init(_inferred: true))
766+
767+
let oldDoc = OpenAPIKit30.OpenAPI.Document(
768+
info: .init(title: "Hello", version: "1.0.0"),
769+
servers: [],
770+
paths: [:],
771+
components: .init(
772+
schemas: [
773+
"schema1": inferredFragment,
774+
]
775+
)
776+
)
777+
778+
let newDoc = oldDoc.convert(to: .v3_1_0)
779+
780+
try assertEqualNewToOld(newDoc, oldDoc)
781+
782+
let newInferredFragment = try XCTUnwrap(newDoc.components.schemas["schema1"])
783+
784+
try assertEqualNewToOld(newInferredFragment, inferredFragment)
785+
786+
// TODO: write more tests
766787
}
767788

768789
func test_Operation() throws {
@@ -1192,6 +1213,7 @@ fileprivate func assertEqualNewToOld(_ newCoreContext: OpenAPIKit.JSONSchemaCont
11921213
XCTAssertEqual(newCoreContext.readOnly, oldCoreContext.readOnly)
11931214
XCTAssertEqual(newCoreContext.writeOnly, oldCoreContext.writeOnly)
11941215
XCTAssertEqual(newCoreContext.deprecated, oldCoreContext.deprecated)
1216+
XCTAssertEqual(newCoreContext.inferred, oldCoreContext.inferred)
11951217
}
11961218

11971219
fileprivate func assertEqualNewToOld(_ newStringContext: OpenAPIKit.JSONSchema.StringContext, _ oldStringContext: OpenAPIKit30.JSONSchema.StringContext) {

0 commit comments

Comments
 (0)