From 689a7e3932e66a2c0467ee4f232aca8b060a6235 Mon Sep 17 00:00:00 2001 From: Fabian Fett Date: Wed, 4 Sep 2024 15:14:12 +0200 Subject: [PATCH] Add new `withMockServer` test resource method --- .../MockLambdaServer.swift | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) 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