Skip to content

[TC-4] Large untested client modules: listeners/joining/connect/persistence_actor/voice #418

@intendednull

Description

@intendednull

From #413.

Sev: high. Tier: client (use MemNetwork). Obvious?: yes.

Critical modules carrying full client wire-protocol handling have zero in-file tests.

Evidence:

$ rg '#\[(test|tokio::test)\]' -c \
    crates/client/src/listeners.rs \
    crates/client/src/joining.rs \
    crates/client/src/persistence_actor.rs \
    crates/client/src/connect.rs \
    crates/client/src/voice.rs
0  0  0  0  0
$ wc -l crates/client/src/{listeners,joining,connect,persistence_actor}.rs
748 listeners.rs
465 joining.rs
409 connect.rs
280 persistence_actor.rs

listeners.rs 748 LOC. Gossip-event dispatch, join flow, network-connect lifecycle, persistence actor — all uncovered.

Fix: MemNetwork from crates/network/src/mem.rs exists for this. Per CLAUDE.md tier 3 ("Multi-peer sync semantics → Rust client crate test with MemNetwork"). Cover: listener event dispatch, join happy path + invite-mismatch, reconnect-and-recover.

Overlaps #343. Specific scope here.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions