Files
clawgo/pkg/channels/whatsapp_test.go
2026-03-10 00:33:23 +08:00

40 lines
1.0 KiB
Go

package channels
import (
"testing"
"github.com/YspCoder/clawgo/pkg/config"
)
func TestWhatsAppShouldHandleIncomingMessage(t *testing.T) {
ch := &WhatsAppChannel{
config: config.WhatsAppConfig{
EnableGroups: true,
RequireMentionInGroups: true,
},
}
if !ch.shouldHandleIncomingMessage(false, false, false) {
t.Fatalf("private chats should always be allowed")
}
if ch.shouldHandleIncomingMessage(true, false, false) {
t.Fatalf("group message without mention should be blocked")
}
if !ch.shouldHandleIncomingMessage(true, true, false) {
t.Fatalf("group mention should be allowed")
}
if !ch.shouldHandleIncomingMessage(true, false, true) {
t.Fatalf("reply-to-me should be allowed")
}
ch.config.EnableGroups = false
if ch.shouldHandleIncomingMessage(true, true, true) {
t.Fatalf("groups should be blocked when disabled")
}
ch.config.EnableGroups = true
ch.config.RequireMentionInGroups = false
if !ch.shouldHandleIncomingMessage(true, false, false) {
t.Fatalf("group should be allowed when mention is not required")
}
}