🎉 live server seems to be working now

This commit is contained in:
2026-05-14 14:29:57 +02:00
commit d72e439fd9
181 changed files with 47406 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
// ABOUTME: Tests for the PlayerGroupRole implementation
// ABOUTME: Verifies codec negotiation, encoder setup, and stream/start on join
package sendspin
import (
"testing"
"github.com/Sendspin/sendspin-go/pkg/protocol"
)
func TestPlayerRole_OnClientJoinSendsStreamStart(t *testing.T) {
role := NewPlayerRole(PlayerRoleConfig{
SampleRate: 48000,
Channels: 2,
BitDepth: 24,
})
sc := &ServerClient{
id: "c1",
roles: []string{"player@v1"},
capabilities: &protocol.PlayerV1Support{
SupportedFormats: []protocol.AudioFormat{
{Codec: "pcm", SampleRate: 48000, Channels: 2, BitDepth: 24},
},
},
sendChan: make(chan interface{}, 10),
}
role.OnClientJoin(sc)
select {
case <-sc.sendChan:
// stream/start was sent
default:
t.Fatal("OnClientJoin did not send stream/start")
}
if sc.Codec() != "pcm" {
t.Errorf("client codec = %q, want %q", sc.Codec(), "pcm")
}
}
func TestPlayerRole_OnClientJoinSkipsNonPlayerClient(t *testing.T) {
role := NewPlayerRole(PlayerRoleConfig{
SampleRate: 48000,
Channels: 2,
BitDepth: 24,
})
sc := &ServerClient{
id: "c1",
roles: []string{"controller@v1"},
sendChan: make(chan interface{}, 10),
}
role.OnClientJoin(sc)
select {
case <-sc.sendChan:
t.Error("should not send stream/start to non-player client")
default:
}
}
func TestPlayerRole_Role(t *testing.T) {
role := NewPlayerRole(PlayerRoleConfig{})
if role.Role() != "player" {
t.Errorf("Role() = %q, want %q", role.Role(), "player")
}
}