+package main
+
+import (
+ "context"
+ "errors"
+ "strings"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+ "go.mau.fi/whatsmeow/types"
+)
+
+func TestWhatsAppGroupReadFailureWarnsWithoutLosingNames(t *testing.T) {
+ var logs strings.Builder
+
+ groups := newWhatsAppGroups(daemonTestLogger(&logs))
+ groups.set("group", "Example group")
+
+ client := &WhatsAppGroupsFailure{WhatsAppClient: &WhatsAppFake{}}
+ link := WhatsAppLink{
+ client: client,
+ own: []string{whatsappTestNumber},
+ }
+
+ require.False(t, groups.read(t.Context(), link))
+ require.Equal(t, "<4>group list failed: no route for OWN\n", logs.String())
+ require.Equal(t, "Example group", groups.name(t.Context(), link, "group"))
+}
+
+type WhatsAppGroupsFailure struct {
+ WhatsAppClient
+}
+
+func (c *WhatsAppGroupsFailure) GetJoinedGroups(_ context.Context) ([]*types.GroupInfo, error) {
+ return nil, errors.New("no route for " + whatsappTestNumber)
+}