Updated how mute and deafen for self works, more similar to official client behavior.
This commit is contained in:
@@ -9,12 +9,17 @@ import (
|
||||
)
|
||||
|
||||
func TestSetSelfMutedAndDeafenedWritesOneCombinedState(t *testing.T) {
|
||||
for _, deafened := range []bool{true, false} {
|
||||
name := "undeafen"
|
||||
if deafened {
|
||||
name = "deafen"
|
||||
}
|
||||
t.Run(name, func(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
muted bool
|
||||
deafened bool
|
||||
}{
|
||||
{name: "deafen", muted: true, deafened: true},
|
||||
{name: "undeafen and remain muted", muted: true},
|
||||
{name: "undeafen and unmute"},
|
||||
}
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
local, remote := net.Pipe()
|
||||
defer local.Close()
|
||||
defer remote.Close()
|
||||
@@ -23,7 +28,7 @@ func TestSetSelfMutedAndDeafenedWritesOneCombinedState(t *testing.T) {
|
||||
user := &User{Session: 7, client: client}
|
||||
written := make(chan struct{})
|
||||
go func() {
|
||||
user.SetSelfMutedAndDeafened(true, deafened)
|
||||
user.SetSelfMutedAndDeafened(test.muted, test.deafened)
|
||||
close(written)
|
||||
}()
|
||||
|
||||
@@ -38,11 +43,11 @@ func TestSetSelfMutedAndDeafenedWritesOneCombinedState(t *testing.T) {
|
||||
if err := proto.Unmarshal(data, &state); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if state.SelfMute == nil || !*state.SelfMute {
|
||||
t.Fatalf("self mute = %v, want true", state.SelfMute)
|
||||
if state.SelfMute == nil || *state.SelfMute != test.muted {
|
||||
t.Fatalf("self mute = %v, want %v", state.SelfMute, test.muted)
|
||||
}
|
||||
if state.SelfDeaf == nil || *state.SelfDeaf != deafened {
|
||||
t.Fatalf("self deafen = %v, want %v", state.SelfDeaf, deafened)
|
||||
if state.SelfDeaf == nil || *state.SelfDeaf != test.deafened {
|
||||
t.Fatalf("self deafen = %v, want %v", state.SelfDeaf, test.deafened)
|
||||
}
|
||||
<-written
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user