🎉 live server seems to be working now
This commit is contained in:
70
third_party/sendspin-go/pkg/sendspin/role_player_test.go
vendored
Normal file
70
third_party/sendspin-go/pkg/sendspin/role_player_test.go
vendored
Normal 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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user