diff --git a/Package.swift b/Package.swift index 8980ea0..e957628 100644 --- a/Package.swift +++ b/Package.swift @@ -25,7 +25,7 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-openapi-runtime.git", from: "1.0.0"), - .package(url: "https://github.com/vapor/vapor.git", from: "4.86.2"), + .package(url: "https://github.com/vapor/vapor.git", from: "4.91.1"), .package(url: "https://github.com/apple/swift-atomics.git", from: "1.2.0") ], targets: [ diff --git a/Sources/OpenAPIVapor/VaporTransport.swift b/Sources/OpenAPIVapor/VaporTransport.swift index 8d0323a..7916202 100644 --- a/Sources/OpenAPIVapor/VaporTransport.swift +++ b/Sources/OpenAPIVapor/VaporTransport.swift @@ -71,7 +71,7 @@ extension [Vapor.PathComponent] { init(_ path: String) { self = path.split( separator: "/", - omittingEmptySubsequences: false + omittingEmptySubsequences: true ).map { parameter in if parameter.first == "{", parameter.last == "}" { return .parameter(String(parameter.dropFirst().dropLast())) diff --git a/Tests/OpenAPIVaporTests/VaporTransportTests.swift b/Tests/OpenAPIVaporTests/VaporTransportTests.swift index c2b15bf..ab52823 100644 --- a/Tests/OpenAPIVaporTests/VaporTransportTests.swift +++ b/Tests/OpenAPIVaporTests/VaporTransportTests.swift @@ -28,7 +28,7 @@ final class VaporTransportTests: XCTestCase { override func tearDown() async throws { app.shutdown() } - + func testHeadRequestExplicitContentLength() async throws { let transport = VaporTransport(routesBuilder: app) let response = HTTPTypes.HTTPResponse( @@ -112,6 +112,9 @@ final class VaporTransportTests: XCTestCase { method: .post, path: "/hello/{name}" ) + + XCTAssertTrue(app.routes.all.first?.path == ["hello", ":name"]) + try app.test( .POST, "/hello/Maria?greeting=Howdy",