diff --git a/Tests/AWSLambdaRuntimeCoreTests/MockLambdaServer.swift b/Tests/AWSLambdaRuntimeCoreTests/MockLambdaServer.swift index 14134aad..a0859218 100644 --- a/Tests/AWSLambdaRuntimeCoreTests/MockLambdaServer.swift +++ b/Tests/AWSLambdaRuntimeCoreTests/MockLambdaServer.swift @@ -20,6 +20,27 @@ import NIOPosix @testable import AWSLambdaRuntimeCore +func withMockServer( + behaviour: some LambdaServerBehavior, + port: Int = 0, + keepAlive: Bool = true, + _ body: (_ port: Int) async throws -> Result +) async throws -> Result { + let eventLoopGroup = NIOSingletons.posixEventLoopGroup + let server = MockLambdaServer(behavior: behaviour, port: port, keepAlive: keepAlive) + let port = try await server.start().get() + + let result: Swift.Result + do { + result = .success(try await body(port)) + } catch { + result = .failure(error) + } + + try? await server.stop().get() + return try result.get() +} + final class MockLambdaServer { private let logger = Logger(label: "MockLambdaServer") private let behavior: LambdaServerBehavior