131 lines
3.1 KiB
Swift
131 lines
3.1 KiB
Swift
@_exported import Dependencies
|
|
@_exported import ShellClient
|
|
|
|
public protocol TestCase {}
|
|
|
|
public extension TestCase {
|
|
func withTestLogger(
|
|
key: String,
|
|
logLevel: Logger.Level = .debug,
|
|
operation: @escaping @Sendable () throws -> Void
|
|
) rethrows {
|
|
try TestSupport.withTestLogger(
|
|
key: key,
|
|
label: "\(Self.self)",
|
|
logLevel: logLevel
|
|
) {
|
|
try operation()
|
|
}
|
|
}
|
|
|
|
func withTestLogger(
|
|
key: String,
|
|
logLevel: Logger.Level = .debug,
|
|
dependencies setupDependencies: @escaping (inout DependencyValues) -> Void,
|
|
operation: @escaping @Sendable () throws -> Void
|
|
) rethrows {
|
|
try TestSupport.withTestLogger(
|
|
key: key,
|
|
label: "\(Self.self)",
|
|
logLevel: logLevel,
|
|
dependencies: setupDependencies
|
|
) {
|
|
try operation()
|
|
}
|
|
}
|
|
|
|
func withTestLogger(
|
|
key: String,
|
|
logLevel: Logger.Level = .debug,
|
|
operation: @escaping @Sendable () async throws -> Void
|
|
) async rethrows {
|
|
try await TestSupport.withTestLogger(
|
|
key: key,
|
|
label: "\(Self.self)",
|
|
logLevel: logLevel
|
|
) {
|
|
try await operation()
|
|
}
|
|
}
|
|
|
|
func withTestLogger(
|
|
key: String,
|
|
logLevel: Logger.Level = .debug,
|
|
dependencies setupDependencies: @escaping (inout DependencyValues) -> Void,
|
|
operation: @escaping @Sendable () async throws -> Void
|
|
) async rethrows {
|
|
try await TestSupport.withTestLogger(
|
|
key: key,
|
|
label: "\(Self.self)",
|
|
logLevel: logLevel,
|
|
dependencies: setupDependencies
|
|
) {
|
|
try await operation()
|
|
}
|
|
}
|
|
}
|
|
|
|
public func withTestLogger(
|
|
key: String,
|
|
label: String,
|
|
logLevel: Logger.Level = .debug,
|
|
operation: @escaping @Sendable () throws -> Void
|
|
) rethrows {
|
|
try withDependencies {
|
|
$0.logger = .init(label: label)
|
|
$0.logger[metadataKey: "test"] = "\(key)"
|
|
$0.logger.logLevel = logLevel
|
|
} operation: {
|
|
try operation()
|
|
}
|
|
}
|
|
|
|
public func withTestLogger(
|
|
key: String,
|
|
label: String,
|
|
logLevel: Logger.Level = .debug,
|
|
dependencies setupDependencies: @escaping (inout DependencyValues) -> Void,
|
|
operation: @escaping @Sendable () throws -> Void
|
|
) rethrows {
|
|
try withDependencies {
|
|
$0.logger = .init(label: label)
|
|
$0.logger[metadataKey: "test"] = "\(key)"
|
|
$0.logger.logLevel = logLevel
|
|
setupDependencies(&$0)
|
|
} operation: {
|
|
try operation()
|
|
}
|
|
}
|
|
|
|
public func withTestLogger(
|
|
key: String,
|
|
label: String,
|
|
logLevel: Logger.Level = .debug,
|
|
operation: @escaping @Sendable () async throws -> Void
|
|
) async rethrows {
|
|
try await withDependencies {
|
|
$0.logger = .init(label: label)
|
|
$0.logger[metadataKey: "test"] = "\(key)"
|
|
$0.logger.logLevel = logLevel
|
|
} operation: {
|
|
try await operation()
|
|
}
|
|
}
|
|
|
|
public func withTestLogger(
|
|
key: String,
|
|
label: String,
|
|
logLevel: Logger.Level = .debug,
|
|
dependencies setupDependencies: @escaping (inout DependencyValues) -> Void,
|
|
operation: @escaping @Sendable () async throws -> Void
|
|
) async rethrows {
|
|
try await withDependencies {
|
|
$0.logger = .init(label: label)
|
|
$0.logger[metadataKey: "test"] = "\(key)"
|
|
$0.logger.logLevel = logLevel
|
|
setupDependencies(&$0)
|
|
} operation: {
|
|
try await operation()
|
|
}
|
|
}
|