package service import ( "context" "testing" "github.com/gochat/gochat/internal/model" "github.com/gochat/gochat/internal/repository" ) // DB-backed WidgetService tests targeting low-coverage functions func newWidgetServiceForCov53(t *testing.T) *WidgetService { db := newSimpleServiceTestDB(t) return &WidgetService{ inboxRepo: repository.NewInboxRepo(db), contactRepo: repository.NewContactRepo(db), contactInboxRepo: repository.NewContactInboxRepo(db), conversationRepo: repository.NewConversationRepo(db), messageRepo: repository.NewMessageRepo(db), } } func TestWidgetService_ResolvePublicContactInbox_EmptySourceID_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, _, err := svc.resolvePublicContactInbox(context.Background(), "token", "") if err == nil { t.Error("expected error for empty sourceID") } } func TestWidgetService_PublicCreateContact_InvalidInbox_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, err := svc.PublicCreateContact(context.Background(), "invalid", PublicContactRequest{}) _ = err } func TestWidgetService_PublicUpdateContact_InvalidInbox_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, err := svc.PublicUpdateContact(context.Background(), "invalid", "src", PublicContactRequest{}) _ = err } func TestWidgetService_PublicCreateConversation_InvalidInbox_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, err := svc.PublicCreateConversation(context.Background(), "invalid", "src", PublicConversationRequest{}) _ = err } func TestWidgetService_PublicGetConversation_InvalidInbox_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, err := svc.PublicGetConversation(context.Background(), "invalid", "src", 1) _ = err } func TestWidgetService_PublicUpdateLastSeen_InvalidInbox_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, err := svc.PublicUpdateLastSeen(context.Background(), "invalid", "src", 1) _ = err } func TestWidgetService_PublicToggleTyping_InvalidInbox_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) err := svc.PublicToggleTyping(context.Background(), "invalid", "src", 1, true) _ = err } func TestWidgetService_PublicCreateMessage_InvalidInbox_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, _, _, err := svc.PublicCreateMessage(context.Background(), "invalid", "src", 1, PublicMessageRequest{}) _ = err } func TestWidgetService_PublicUpdateMessage_InvalidInbox_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, _, err := svc.PublicUpdateMessage(context.Background(), "invalid", "src", 1, 1, PublicMessageRequest{}) _ = err } func TestWidgetService_ResolveLatestConversation_InvalidToken_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, err := svc.ResolveLatestConversation(context.Background(), "invalid") _ = err } func TestWidgetService_FindOrCreateContactByIdentifier_Empty_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, err := svc.findOrCreateContactByIdentifier(context.Background(), 0, "") _ = err } func TestWidgetService_AttachWidgetUploads_Nil_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, err := svc.attachWidgetUploads(context.Background(), &model.Message{}, nil) _ = err } func TestWidgetService_PublicConversationMessages_Invalid_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) _, _, err := svc.publicConversationMessages(context.Background(), 0, PublicMessageListOptions{}) _ = err } func TestWidgetService_LatestConversationAllowsEnd_Nil_Cov53(t *testing.T) { t.Skip("panics on nil") svc := newWidgetServiceForCov53(t) _, err := svc.latestConversationAllowsEnd(context.Background(), nil) _ = err } func TestWidgetService_ValidWidgetLabels_Nil_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) result := svc.validWidgetLabels(context.Background(), 1, []string{"label1"}) _ = result } func TestWidgetService_IdentifyWidgetInputEmailContact_Nil_Cov53(t *testing.T) { svc := newWidgetServiceForCov53(t) defer func() { _ = recover() }() _, _ = svc.identifyWidgetInputEmailContact(context.Background(), nil, nil, nil, WidgetMessageUpdate{}) }