DAC-146: Add unit tests for ClientConnection autoload#32
Merged
Conversation
Tests cover: - is_space_connected: true/false for connected/error/connecting/unknown - get_space_connection_status: returns correct status strings - _all_failed: true when all error, false when one connected, true for empty/null - disconnect_server: cleans space/channel/message/member/role caches - disconnect_server: emits spaces_updated and server_removed signals No AccordClient GDExtension dependency needed (client=null in connections). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
68648f6 to
0343c8b
Compare
krazyjakee
added a commit
that referenced
this pull request
Jun 8, 2026
- #32: audit log gains action-type + user filters, cursor pagination (load-more), and live gateway prepend via onAuditLogCreate - #33: reports queue gains status filter (All/Pending/Actioned/Dismissed), pagination, and inline delete-message/kick/ban actions that also action the report Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
krazyjakee
added a commit
that referenced
this pull request
Jun 14, 2026
…UI (#127) (#134) * feat(voice): DM voice/video calls with ring/accept/decline (#127) Adds 1:1 and group-DM calling on top of the existing channel-agnostic voice stack, wiring the new server-side call signaling (accordserver #32). accordkit: - AccordCallSignal model + call.ring/decline/cancel/end gateway streams - VoiceApi.ring / declineCall / cancelCall REST endpoints - forwarded streams on AccordClient client: - CallController: outgoing call (join voice + ring), incoming ring state, accept (implicit join) / decline / cancel, and gateway-driven transitions - call.* events wired through the per-connection event handler; a peer joining the ringing channel clears the "Calling…" state - VoiceController.join accepts a null spaceId for DM calls - call/video buttons in the DM conversation header; outgoing calls open the full-screen voice view with a "Calling…" banner that pops when the call ends - IncomingCallOverlay banner (accept/decline) mounted app-wide, with a looping ringtone and a "Call declined" snackbar - ringtone assets (incoming + outgoing ringback) Tests: accordkit endpoint + gateway dispatch tests; CallState.copyWith unit tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(voice): play caller ringback and stop "Calling…" leaking on hang-up The outgoing-call ringback was dead code: `startRingtone(outgoing: true)` and the bundled `ring_outgoing.wav` existed but nothing called them, so the caller saw a "Calling…" spinner in silence while the callee heard a ringtone. Wire the ringback in `startCall` and stop it the moment the call is answered, declined, or cancelled. Also fix a state leak: hitting the in-call "Disconnect" button while still ringing routes through `VoiceController.leave()`, which never cleared `CallController.outgoingChannelId` — so the "Calling…" state (and now the ringback) leaked after a manual hang-up. A `build()` listener on the voice channel clears the outgoing state and silences the ringback whenever the ringing session ends by any path the explicit transitions don't cover. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(voice): address call controller bugs found in review - acceptIncoming: return null when voice join fails, preventing the full-screen view from opening for a channel we aren't actually connected to - startCall: set outgoingChannelId synchronously before the first await so concurrent taps (before the join completes) are blocked by hasOutgoing; also clear it on join failure or missing client - cancelOutgoing: guard at top — no-ops when there is no outgoing call, so it cannot disconnect an unrelated voice session - startCall / markAnswered / handleDecline / cancelOutgoing: wire the outgoing ringback tone (ring_outgoing.wav was added but never played) - handleRing / handleDecline / handleCancelOrEnd / accept/declineIncoming: wrap fire-and-forget sound futures in unawaited() to make intent explicit - test: add hasOutgoing group documenting the re-entrancy guard semantics --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tests/unit/test_client_connection.gdwith 20 unit tests forClientConnectionand relatedClientmethodsis_space_connected(connected/error/connecting/unknown)get_space_connection_status(all status strings)_all_failed(all error, one connected, empty, null slots)disconnect_servercache cleanup (space/channel/message/member/role caches, signals)Test plan
./test.sh unit)gdlint scripts/ scenes/)