Skip to content

Commit 55ab96d

Browse files
committed
Skip SSE tests on platforms that don't support streaming
1 parent 34fcfa7 commit 55ab96d

File tree

1 file changed

+33
-29
lines changed

1 file changed

+33
-29
lines changed

Tests/MCPTests/HTTPClientTransportTests.swift

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -377,39 +377,43 @@ import Testing
377377
}
378378
}
379379

380-
@Test("Receive Server-Sent Event (SSE)", .httpClientTransportSetup)
381-
func testReceiveSSE() async throws {
382-
let configuration = URLSessionConfiguration.ephemeral
383-
configuration.protocolClasses = [MockURLProtocol.self]
384-
385-
let transport = HTTPClientTransport(
386-
endpoint: testEndpoint, configuration: configuration, streaming: true, logger: nil)
387-
388-
let eventString = "id: event1\ndata: {\"key\":\"value\"}\n\n"
389-
let sseEventData = eventString.data(using: .utf8)!
390-
391-
await MockURLProtocol.requestHandlerStorage.setHandler {
392-
[testEndpoint] (request: URLRequest) in
393-
#expect(request.url == testEndpoint)
394-
#expect(request.httpMethod == "GET")
395-
#expect(request.value(forHTTPHeaderField: "Accept") == "text/event-stream")
396-
let response = HTTPURLResponse(
397-
url: testEndpoint, statusCode: 200, httpVersion: "HTTP/1.1",
398-
headerFields: ["Content-Type": "text/event-stream"])!
399-
return (response, sseEventData)
400-
}
380+
// Skip SSE tests on platforms that don't support streaming
381+
#if !canImport(FoundationNetworking)
382+
@Test("Receive Server-Sent Event (SSE)", .httpClientTransportSetup)
383+
func testReceiveSSE() async throws {
384+
let configuration = URLSessionConfiguration.ephemeral
385+
configuration.protocolClasses = [MockURLProtocol.self]
386+
387+
let transport = HTTPClientTransport(
388+
endpoint: testEndpoint, configuration: configuration, streaming: true,
389+
logger: nil)
390+
391+
let eventString = "id: event1\ndata: {\"key\":\"value\"}\n\n"
392+
let sseEventData = eventString.data(using: .utf8)!
393+
394+
await MockURLProtocol.requestHandlerStorage.setHandler {
395+
[testEndpoint] (request: URLRequest) in
396+
#expect(request.url == testEndpoint)
397+
#expect(request.httpMethod == "GET")
398+
#expect(request.value(forHTTPHeaderField: "Accept") == "text/event-stream")
399+
let response = HTTPURLResponse(
400+
url: testEndpoint, statusCode: 200, httpVersion: "HTTP/1.1",
401+
headerFields: ["Content-Type": "text/event-stream"])!
402+
return (response, sseEventData)
403+
}
401404

402-
try await transport.connect()
403-
try await Task.sleep(for: .milliseconds(100))
405+
try await transport.connect()
406+
try await Task.sleep(for: .milliseconds(100))
404407

405-
let stream = await transport.receive()
406-
var iterator = stream.makeAsyncIterator()
408+
let stream = await transport.receive()
409+
var iterator = stream.makeAsyncIterator()
407410

408-
let expectedData = #"{"key":"value"}"#.data(using: .utf8)!
409-
let receivedData = try await iterator.next()
411+
let expectedData = #"{"key":"value"}"#.data(using: .utf8)!
412+
let receivedData = try await iterator.next()
410413

411-
#expect(receivedData == expectedData)
412-
}
414+
#expect(receivedData == expectedData)
415+
}
416+
#endif // !canImport(FoundationNetworking)
413417
}
414418

415419
#endif // swift(>=6.1)

0 commit comments

Comments
 (0)