Skip to content

Commit 11f3af9

Browse files
committed
Lower minimum platform requirements
We don’t really need them that high
1 parent b3a0aaf commit 11f3af9

File tree

3 files changed

+51
-5
lines changed

3 files changed

+51
-5
lines changed

Package.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ let swiftSettings: [SwiftSetting] = [
2525
let package = Package(
2626
name: "StructuredWebSocketClient",
2727
platforms: [
28-
.macOS(.v12),
29-
.iOS(.v15),
30-
.watchOS(.v8),
31-
.tvOS(.v15),
28+
.macOS(.v10_15),
29+
.iOS(.v13),
30+
.watchOS(.v6),
31+
.tvOS(.v13),
3232
],
3333
products: [
3434
.library(name: "StructuredWebSocketClient", targets: ["StructuredWebSocketClient"]),

Sources/StructuredWebSocketClient/MessageTransport.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public struct MessageMetadata: Sendable {
3838
/// The uptimenanoseconds the message was received from the network
3939
public let receivedAt: Date
4040

41-
public init(number: Int, receivedAt: Date = .now) {
41+
public init(number: Int, receivedAt: Date = .init()) {
4242
self.number = number
4343
self.receivedAt = receivedAt
4444
}

Tests/StructuredWebSocketClientTests/WebSocketClientTests.swift

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,27 @@ final class WebSocketClientTests: XCTestCase {
2525
XCTAssert(isLoggingConfigured)
2626
}
2727

28+
func testNeverOpening() async throws {
29+
let logger = Logger(label: "Test")
30+
logger.debug("Creating client")
31+
// This is an invalid URL - it's not a websocket endpoint
32+
let request = URLRequest(url: .init(string: "https://www.apple.com")!)
33+
let tt = URLSessionWebSocketTransport(request: request, urlSession: .shared, logger: logger)
34+
let client = WebSocketClient(
35+
inboundMiddleware: NoOpMiddleWare(),
36+
outboundMiddleware: NoOpMiddleWare(),
37+
transport: tt,
38+
logger: logger
39+
)
40+
logger.debug("Connecting")
41+
42+
for try await event in client.connect() {
43+
logger.debug("\(String(reflecting: event))")
44+
}
45+
46+
logger.debug("Events are done")
47+
}
48+
2849
func testOpen() async throws {
2950
let tt = TestMessageTransport(initialMessages: [
3051
// it's not guaranteed that there aren't messages put inbetween
@@ -97,6 +118,7 @@ final class WebSocketClientTests: XCTestCase {
97118
}
98119
}
99120

121+
@available(iOS 15.0, *)
100122
extension MessageMetadata: CustomDebugStringConvertible {
101123
public var debugDescription: String {
102124
#if canImport(Darwin)
@@ -119,3 +141,27 @@ let isLoggingConfigured: Bool = {
119141
}
120142
return true
121143
}()
144+
145+
import AsyncAlgorithms
146+
public final class TestNotOpeningTransport: MessageTransport, Sendable {
147+
private let _events: AsyncChannel<WebSocketEvent> = .init()
148+
private let events: AsyncChannel<WebSocketEvent> = .init()
149+
150+
public init() {}
151+
152+
public func send(_ message: URLSessionWebSocketTask.Message) async throws {}
153+
154+
public func close(with closeCode: URLSessionWebSocketTask.CloseCode, reason: Data?) {
155+
//
156+
}
157+
158+
public func connect() -> AsyncChannel<WebSocketEvent> {
159+
Task { [unowned self] in
160+
for await event in self._events {
161+
await self.events.send(event)
162+
}
163+
self.events.finish()
164+
}
165+
return self.events
166+
}
167+
}

0 commit comments

Comments
 (0)