• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-swift / 39414026790
93%

Build:
DEFAULT BRANCH: main
Ran 20 Oct 2026 11:25AM UTC
Jobs 1
Files 171
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Oct 2026 11:18AM UTC coverage: 92.911% (+0.2%) from 92.76%
39414026790

push

github

web-flow
refactor(realtime): adopt WebSocketTransport in RealtimeClient and drop the legacy socket (#1600)

* refactor(realtime): adopt WebSocketTransport in RealtimeClient and drop the legacy socket

RealtimeClient now opens connections through the package `WebSocketTransport`
protocol. The `LegacyWebSocketTransport` closure typealias, the callback-style
`WebSocket` protocol, `LegacyWebSocketEvent`, and `URLSessionWebSocket` are
gone.

- The public initializer builds `URLSessionWebSocketTransport` from
  `options.session`'s configuration and delegate, as the old socket did.
- `push(_:)` and the broadcast pushes are `async` and await
  `WebSocketConnection.send` directly. Callers outside the actor already
  awaited them. A push queues behind frames still in `sendBuffer`, so it
  cannot overtake a flush after connect.
- `WebSocketConnection.close(code:reason:)` is synchronous: it only starts the
  close, and `.closed` reports completion. `deinit` can close the socket
  without a task.
- `disconnect()` with no code now sends 1000 (normal closure) instead of no
  status code.
- A connection that opens after its reconnect attempt was cancelled is now
  closed. It used to stay open.
- The RFC 6455 close-code and reason checks move from `URLSessionWebSocket`
  to `URLSessionWebSocketTransport`.
- `URLSession.sessionWithConfiguration` and `_Delegate` move unchanged to
  `Transport/URLSession+WebSocketDelegate.swift`.

Tests: the fakes conform to `WebSocketConnection`, and a test-only init keeps
the `wsTransport:` closure. The connect-failure, deallocation, session and
cert-pinning tests now run on `URLSessionWebSocketTransport`. Tests that only
covered the legacy event type, or repeated `URLSessionWebSocketTransportTests`,
are removed.

* fix(realtime): address review findings on the WebSocketTransport adoption

- A handshake that fails with `URLError.cancelled` (for example, a pinned
  certificate the delegate rejects) is now a retryable `.transport` error.
  Only a... (continued)

185 of 207 new or added lines in 6 files covered. (89.37%)

1 existing line in 1 file now uncovered.

12792 of 13768 relevant lines covered (92.91%)

887854.17 hits per line

Uncovered Changes

Lines Coverage ∆ File
16
85.57
-5.19% Sources/Realtime/Transport/URLSessionWebSocketTransport.swift
3
90.49
-0.36% Sources/Realtime/RealtimeClient.swift
2
96.97
Sources/Realtime/Transport/URLSession+WebSocketDelegate.swift
1
93.86
0.0% Sources/Realtime/Engine/RealtimeEngine.swift

Coverage Regressions

Lines Coverage ∆ File
1
85.57
-5.19% Sources/Realtime/Transport/URLSessionWebSocketTransport.swift
Jobs
ID Job ID Ran Files Coverage
1 39414026790.1 20 Oct 2026 11:25AM UTC 171
92.91
GitHub Action Run
Source Files on build 39414026790
  • Tree
  • List 171
  • Changed 8
  • Source Changed 7
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39414026790
  • 4804d225 on github
  • Prev Build on main (#39404989528)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc