@@ -39,7 +39,7 @@ import FoundationNetworking
3939final class HTTPServerTests : XCTestCase {
4040
4141 func testRequests_AreMatchedToHandlers_ViaRoute( ) async throws {
42- let server = HTTPServer ( port : 8008 )
42+ let server = HTTPServer . make ( )
4343
4444 await server. appendRoute ( " /accepted " ) { _ in
4545 HTTPResponse . make ( statusCode: . accepted)
@@ -62,7 +62,7 @@ final class HTTPServerTests: XCTestCase {
6262 }
6363
6464 func testUnmatchedRequests_Return404( ) async throws {
65- let server = HTTPServer ( port : 8008 )
65+ let server = HTTPServer . make ( )
6666
6767 let response = await server. handleRequest ( . make( method: . GET, path: " /accepted " ) )
6868 XCTAssertEqual (
@@ -72,7 +72,7 @@ final class HTTPServerTests: XCTestCase {
7272 }
7373
7474 func testHandlerErrors_Return500( ) async throws {
75- let server = HTTPServer ( port : 8008 ) { _ in
75+ let server = HTTPServer . make ( ) { _ in
7676 throw SocketError . disconnected
7777 }
7878
@@ -84,7 +84,7 @@ final class HTTPServerTests: XCTestCase {
8484 }
8585
8686 func testHandlerTimeout_Returns500( ) async throws {
87- let server = HTTPServer ( port : 8008 , timeout: 0.1 ) { _ in
87+ let server = HTTPServer . make ( timeout: 0.1 ) { _ in
8888 try await Task . sleep ( nanoseconds: 1_000_000_000 )
8989 return HTTPResponse . make ( statusCode: . accepted)
9090 }
@@ -97,7 +97,7 @@ final class HTTPServerTests: XCTestCase {
9797 }
9898
9999 func testKeepAlive_IsAddedToResponses( ) async throws {
100- let server = HTTPServer ( port : 8008 )
100+ let server = HTTPServer . make ( )
101101
102102 var response = await server. handleRequest (
103103 . make( method: . GET, path: " /accepted " , headers: [ . connection: " keep-alive " ] )
@@ -115,7 +115,7 @@ final class HTTPServerTests: XCTestCase {
115115 }
116116
117117 func testServer_ReturnsFile_WhenFileHandlerIsMatched( ) async throws {
118- let server = HTTPServer ( port: 8009 , logger : . print ( ) )
118+ let server = HTTPServer . make ( port: 8009 )
119119 await server. appendRoute ( " * " , to: . file( named: " fish.json " , in: . module) )
120120 let task = Task { try await server. start ( ) }
121121
@@ -131,7 +131,7 @@ final class HTTPServerTests: XCTestCase {
131131
132132#if canImport(Darwin)
133133 func testServer_Returns500_WhenHandlerTimesout( ) async throws {
134- let server = HTTPServer ( port : 8008 , timeout: 0.1 )
134+ let server = HTTPServer . make ( timeout: 0.1 )
135135 await server. appendRoute ( " * " ) { _ in
136136 try await Task . sleep ( nanoseconds: 5_000_000_000 )
137137 return . make( statusCode: . ok)
@@ -150,4 +150,25 @@ final class HTTPServerTests: XCTestCase {
150150#endif
151151}
152152
153+ extension HTTPServer {
153154
155+ static func make( port: UInt16 = 8008 ,
156+ timeout: TimeInterval = 15 ,
157+ logger: HTTPLogging ? = defaultLogger ( ) ,
158+ handler: HTTPHandler ? = nil ) -> HTTPServer {
159+ HTTPServer ( port: port,
160+ timeout: timeout,
161+ logger: logger,
162+ handler: handler)
163+ }
164+
165+ static func make( port: UInt16 = 8008 ,
166+ timeout: TimeInterval = 15 ,
167+ logger: HTTPLogging ? = . print( ) ,
168+ handler: @Sendable @escaping ( HTTPRequest) async throws -> HTTPResponse ) -> HTTPServer {
169+ HTTPServer ( port: port,
170+ timeout: timeout,
171+ logger: logger,
172+ handler: ClosureHTTPHandler ( handler) )
173+ }
174+ }
0 commit comments