Skip to content

Commit a04ef3f

Browse files
committed
Merge remote-tracking branch 'origin/main' into bugfix/300/explode-the-header-2
2 parents 97618fa + 0f712cc commit a04ef3f

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

Sources/OpenAPIKit/Header/Header.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ extension OpenAPI.Header {
186186

187187
// the following are parsed as part of Schema
188188
case style
189+
case explode
189190
case allowReserved
190191
case example
191192
case examples
@@ -200,6 +201,7 @@ extension OpenAPI.Header {
200201
.content,
201202
.schema,
202203
.style,
204+
.explode,
203205
.allowReserved,
204206
.example,
205207
.examples
@@ -224,6 +226,8 @@ extension OpenAPI.Header {
224226
self = .schema
225227
case "style":
226228
self = .style
229+
case "explode":
230+
self = .explode
227231
case "allowReserved":
228232
self = .allowReserved
229233
case "example":
@@ -249,6 +253,8 @@ extension OpenAPI.Header {
249253
return "schema"
250254
case .style:
251255
return "style"
256+
case .explode:
257+
return "explode"
252258
case .allowReserved:
253259
return "allowReserved"
254260
case .example:

Tests/OpenAPIKitTests/Header/HeaderTests.swift

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,67 @@ extension HeaderTests {
547547
)
548548
}
549549

550+
func test_header_withStyleAndExplode_encode() throws {
551+
let header = OpenAPI.Header(
552+
schema: .init(
553+
.array(items: .string),
554+
style: .form,
555+
explode: false
556+
),
557+
required: true
558+
)
559+
560+
let encodedHeader = try orderUnstableTestStringFromEncoding(of: header)
561+
562+
assertJSONEquivalent(
563+
encodedHeader,
564+
"""
565+
{
566+
"explode" : false,
567+
"required" : true,
568+
"schema" : {
569+
"items" : {
570+
"type" : "string"
571+
},
572+
"type" : "array"
573+
},
574+
"style" : "form"
575+
}
576+
"""
577+
)
578+
}
579+
580+
func test_header_withStyleAndExplode_decode() throws {
581+
let headerData =
582+
"""
583+
{
584+
"explode" : false,
585+
"required" : true,
586+
"schema" : {
587+
"items" : {
588+
"type" : "string"
589+
},
590+
"type" : "array"
591+
},
592+
"style" : "form"
593+
}
594+
""".data(using: .utf8)!
595+
596+
let header = try orderUnstableDecode(OpenAPI.Header.self, from: headerData)
597+
598+
XCTAssertEqual(
599+
header,
600+
OpenAPI.Header(
601+
schema: .init(
602+
.array(items: .string),
603+
style: .form,
604+
explode: false
605+
),
606+
required: true
607+
)
608+
)
609+
}
610+
550611
func test_header_errorForBothContentAndSchema_decode() {
551612
let headerData =
552613
"""

0 commit comments

Comments
 (0)