Roll back broken audio, keep notifications.
This commit is contained in:
+37
-47
@@ -160,71 +160,64 @@ func TestUserAudioChangeNotification(t *testing.T) {
|
||||
wantOK bool
|
||||
}{
|
||||
{
|
||||
name: "user mutes themselves",
|
||||
name: "user mutes",
|
||||
user: &gumble.User{Session: 2, Name: "Guest", Channel: current, SelfMuted: true},
|
||||
remember: true,
|
||||
change: gumble.UserChangeAudio,
|
||||
want: userChangeNotification{
|
||||
event: "mute",
|
||||
who: "Guest",
|
||||
what: "Current",
|
||||
line: "Guest muted themselves",
|
||||
},
|
||||
wantOK: true,
|
||||
want: userChangeNotification{event: "mute", who: "Guest", what: "Current", line: "Guest muted"},
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "user unmutes themselves",
|
||||
name: "user unmutes",
|
||||
user: &gumble.User{Session: 2, Name: "Guest", Channel: current},
|
||||
previous: userAudioState{selfMuted: true},
|
||||
remember: true,
|
||||
change: gumble.UserChangeAudio,
|
||||
want: userChangeNotification{
|
||||
event: "unmute",
|
||||
who: "Guest",
|
||||
what: "Current",
|
||||
line: "Guest unmuted themselves",
|
||||
},
|
||||
wantOK: true,
|
||||
want: userChangeNotification{event: "unmute", who: "Guest", what: "Current", line: "Guest unmuted"},
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "deafen takes precedence over implied mute",
|
||||
name: "user deafens without mute change",
|
||||
user: &gumble.User{Session: 2, Name: "Guest", Channel: current, SelfMuted: true, SelfDeafened: true},
|
||||
previous: userAudioState{selfMuted: true},
|
||||
remember: true,
|
||||
change: gumble.UserChangeAudio,
|
||||
want: userChangeNotification{event: "deafen", who: "Guest", what: "Current", line: "Guest deafened"},
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "user undeafens without mute change",
|
||||
user: &gumble.User{Session: 2, Name: "Guest", Channel: current, SelfMuted: true},
|
||||
previous: userAudioState{selfMuted: true, selfDeafened: true},
|
||||
remember: true,
|
||||
change: gumble.UserChangeAudio,
|
||||
want: userChangeNotification{event: "undeafen", who: "Guest", what: "Current", line: "Guest undeafened"},
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "user mutes and deafens",
|
||||
user: &gumble.User{Session: 2, Name: "Guest", Channel: current, SelfMuted: true, SelfDeafened: true},
|
||||
remember: true,
|
||||
change: gumble.UserChangeAudio,
|
||||
want: userChangeNotification{
|
||||
event: "deafen",
|
||||
who: "Guest",
|
||||
what: "Current",
|
||||
line: "Guest deafened themselves",
|
||||
},
|
||||
wantOK: true,
|
||||
want: userChangeNotification{event: "mutedeafen", who: "Guest", what: "Current", line: "Guest muted and deafened"},
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "undeafen takes precedence over implied unmute",
|
||||
name: "user unmutes and undeafens",
|
||||
user: &gumble.User{Session: 2, Name: "Guest", Channel: current},
|
||||
previous: userAudioState{selfMuted: true, selfDeafened: true},
|
||||
remember: true,
|
||||
change: gumble.UserChangeAudio,
|
||||
want: userChangeNotification{
|
||||
event: "undeafen",
|
||||
who: "Guest",
|
||||
what: "Current",
|
||||
line: "Guest undeafened themselves",
|
||||
},
|
||||
wantOK: true,
|
||||
want: userChangeNotification{event: "unmuteundeafen", who: "Guest", what: "Current", line: "Guest unmuted and undeafened"},
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "self mute uses self wording",
|
||||
user: &gumble.User{Session: 1, Name: "Username", Channel: current, SelfMuted: true},
|
||||
name: "self mutes and deafens",
|
||||
user: &gumble.User{Session: 1, Name: "Username", Channel: current, SelfMuted: true, SelfDeafened: true},
|
||||
remember: true,
|
||||
change: gumble.UserChangeAudio,
|
||||
want: userChangeNotification{
|
||||
event: "mute",
|
||||
who: "me",
|
||||
what: "Current",
|
||||
line: "You muted yourself",
|
||||
},
|
||||
wantOK: true,
|
||||
want: userChangeNotification{event: "mutedeafen", who: "me", what: "Current", line: "You muted and deafened yourself"},
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "other channel is ignored",
|
||||
@@ -233,12 +226,12 @@ func TestUserAudioChangeNotification(t *testing.T) {
|
||||
change: gumble.UserChangeAudio,
|
||||
},
|
||||
{
|
||||
name: "initial state is remembered without notification",
|
||||
name: "unknown initial state is ignored",
|
||||
user: &gumble.User{Session: 2, Name: "Guest", Channel: current, SelfMuted: true},
|
||||
change: gumble.UserChangeConnected | gumble.UserChangeAudio,
|
||||
},
|
||||
{
|
||||
name: "unrelated user change is ignored",
|
||||
name: "unrelated change is ignored",
|
||||
user: &gumble.User{Session: 2, Name: "Guest", Channel: current, SelfMuted: true},
|
||||
remember: true,
|
||||
change: gumble.UserChangeComment,
|
||||
@@ -247,13 +240,10 @@ func TestUserAudioChangeNotification(t *testing.T) {
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
b := &Barnard{
|
||||
Client: &gumble.Client{Self: self},
|
||||
}
|
||||
b := &Barnard{Client: &gumble.Client{Self: self}}
|
||||
if tt.remember {
|
||||
b.userAudioStates = map[uint32]userAudioState{tt.user.Session: tt.previous}
|
||||
}
|
||||
|
||||
got, ok := b.userAudioChangeNotification(&gumble.UserChangeEvent{
|
||||
Client: b.Client,
|
||||
Type: tt.change,
|
||||
|
||||
Reference in New Issue
Block a user