Implemented the "metadata()" helper function for the LoggerMetadata+Helpers extension in the library target.
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
//
|
||||
// ===----------------------------------------------------------------------===
|
||||
|
||||
import Foundation
|
||||
import Logging
|
||||
import Testing
|
||||
|
||||
@@ -22,7 +23,9 @@ extension Logger {
|
||||
var logger = Logger(label: "test.hummingbird-docc-middleware.logger")
|
||||
|
||||
logger.logLevel = try! #require(Logger.Level.allCases.randomElement())
|
||||
|
||||
|
||||
logger[metadataKey: "hb.request.id"] = "\(UUID().uuidString)"
|
||||
|
||||
return logger
|
||||
}()
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
// ===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the Hummingbird DocC Middleware open source project
|
||||
//
|
||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Hummingbird DocC Middleware project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of Hummingbird DocC Middleware project authors
|
||||
//
|
||||
// ===----------------------------------------------------------------------===
|
||||
|
||||
import struct Hummingbird.HTTPRequest
|
||||
import struct Hummingbird.Request
|
||||
import struct Hummingbird.RequestBody
|
||||
|
||||
extension Request {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
/// Generates a request that is ready to use in test case.
|
||||
/// - Parameters:
|
||||
/// - method: A HTTP method.
|
||||
/// - path: A URI path, if any.
|
||||
/// - Returns: A generated request instance to use in test cases.
|
||||
static func test(
|
||||
method: HTTPRequest.Method,
|
||||
path: String? = nil
|
||||
) -> Self {
|
||||
.init(
|
||||
head: .init(
|
||||
method: method,
|
||||
scheme: nil,
|
||||
authority: nil,
|
||||
path: path
|
||||
),
|
||||
body: .init(buffer: .init())
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,6 +18,8 @@ extension Tag {
|
||||
|
||||
/// Tag that indicate a test case for an enumeration type.
|
||||
@Tag static var enumeration: Self
|
||||
/// Tag that indicate a test case for an extended type.
|
||||
@Tag static var `extension`: Self
|
||||
/// Tag that indicate a test case for a middleware type.
|
||||
@Tag static var middleware: Self
|
||||
/// Tag that indicate a test case for a use case type.
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
// ===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the Hummingbird DocC Middleware open source project
|
||||
//
|
||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Hummingbird DocC Middleware project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of Hummingbird DocC Middleware project authors
|
||||
//
|
||||
// ===----------------------------------------------------------------------===
|
||||
|
||||
import class NIOEmbedded.NIOAsyncTestingChannel
|
||||
|
||||
import protocol Hummingbird.RequestContext
|
||||
|
||||
import struct Hummingbird.ApplicationRequestContextSource
|
||||
import struct Hummingbird.CoreRequestContextStorage
|
||||
import struct Logging.Logger
|
||||
|
||||
/// A mock that conforms to the `RequestContext` protocol.
|
||||
struct MockRequestContext {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
var coreContext: CoreRequestContextStorage
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this mock.
|
||||
/// - Parameter logger: A type that interacts with the logging system.
|
||||
init(logger: Logger) {
|
||||
self.coreContext = .init(source: ApplicationRequestContextSource(
|
||||
channel: NIOAsyncTestingChannel(),
|
||||
logger: logger
|
||||
))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - RequestContext
|
||||
|
||||
extension MockRequestContext: RequestContext {
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
init(source: ApplicationRequestContextSource) {
|
||||
self.coreContext = .init(source: source)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,5 +10,5 @@
|
||||
//
|
||||
// ===----------------------------------------------------------------------===
|
||||
|
||||
/// A namespace assigned for test arguments that would be input into test cases.
|
||||
/// A namespace assigned for test arguments
|
||||
enum Input {}
|
||||
|
||||
Reference in New Issue
Block a user