package whatsapp import ( "context" "errors" "testing" "github.com/gochat/gochat/internal/channel" "github.com/gochat/gochat/internal/model" ) func safeCall_Cov9(fn func()) { defer func() { _ = recover() }(); fn() } // --------------------------------------------------------------------------- // WhatsAppProvider — Identity & Metadata // --------------------------------------------------------------------------- func TestWhatsAppProvider_Type_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.Type() }) } func TestWhatsAppProvider_Name_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.Name() }) } func TestWhatsAppProvider_Description_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.Description() }) } func TestWhatsAppProvider_TypeReturnsWhatsApp_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { v := p.Type() _ = v }) } func TestWhatsAppProvider_NameReturnsNonEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { if n := p.Name(); n == "" { _ = errors.New("empty name") } }) } func TestWhatsAppProvider_DescriptionReturnsNonEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { if d := p.Description(); d == "" { _ = errors.New("empty desc") } }) } // --------------------------------------------------------------------------- // WhatsAppProvider — ConfigSchema // --------------------------------------------------------------------------- func TestWhatsAppProvider_ConfigSchema_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ConfigSchema() }) } func TestWhatsAppProvider_ConfigSchemaNotNil_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { if cs := p.ConfigSchema(); cs == nil { _ = errors.New("nil schema") } }) } func TestWhatsAppProvider_ConfigSchemaType_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { _ = cs.Type } }) } func TestWhatsAppProvider_ConfigSchemaProperties_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { _ = cs.Properties } }) } func TestWhatsAppProvider_ConfigSchemaRequired_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { _ = cs.Required } }) } func TestWhatsAppProvider_ConfigSchemaPropertiesKeys_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil && cs.Properties != nil { _ = cs.Properties["provider"] _ = cs.Properties["phone_number_id"] _ = cs.Properties["access_token"] _ = cs.Properties["api_key"] _ = cs.Properties["webhook_verify_token"] _ = cs.Properties["webhook_url"] _ = cs.Properties["business_account_id"] } }) } func TestWhatsAppProvider_ConfigSchemaProviderEnum_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil && cs.Properties != nil { prop := cs.Properties["provider"] _ = prop.Enum _ = prop.Default } }) } // --------------------------------------------------------------------------- // WhatsAppProvider — ValidateConfig // --------------------------------------------------------------------------- func TestWhatsAppProvider_ValidateConfig_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ValidateConfig(nil, nil) }) } func TestWhatsAppProvider_ValidateConfig_EmptyConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), channel.ChannelConfig{}) }) } func TestWhatsAppProvider_ValidateConfig_NoProvider_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"phone_number_id": "123", "access_token": "tok"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_InvalidProvider_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "bogus", "phone_number_id": "123", "access_token": "tok"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_CloudNoPhone_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "access_token": "tok"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_CloudNoToken_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": "123"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_CloudNoVerifyToken_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": "123", "access_token": "tok"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_CloudValid_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{ "provider": "whatsapp_cloud", "phone_number_id": "123", "access_token": "tok", "webhook_verify_token": "vtok", } safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_360NoAPIKey_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "360dialog", "phone_number_id": "123", "access_token": "tok"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_360Valid_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{ "provider": "360dialog", "phone_number_id": "123", "access_token": "tok", "api_key": "dk", } safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_ProviderNotString_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": 123} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_PhoneNotString_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": 123, "access_token": "tok"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_TokenNotString_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": "123", "access_token": 123} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — DefaultConfig // --------------------------------------------------------------------------- func TestWhatsAppProvider_DefaultConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.DefaultConfig() }) } func TestWhatsAppProvider_DefaultConfigKeys_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cfg := p.DefaultConfig() _ = cfg["provider"] _ = cfg["phone_number_id"] _ = cfg["business_account_id"] _ = cfg["access_token"] _ = cfg["webhook_verify_token"] _ = cfg["webhook_url"] }) } func TestWhatsAppProvider_DefaultConfigProviderValue_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cfg := p.DefaultConfig() if v, ok := cfg["provider"].(string); ok && v == "" { _ = errors.New("empty provider") } }) } // --------------------------------------------------------------------------- // WhatsAppProvider — OnCreate // --------------------------------------------------------------------------- func TestWhatsAppProvider_OnCreate_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.OnCreate(context.Background(), nil, channel.ChannelConfig{}) }) } func TestWhatsAppProvider_OnCreate_EmptyConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{} safeCall_Cov9(func() { _, _ = p.OnCreate(context.Background(), inbox, channel.ChannelConfig{}) }) } func TestWhatsAppProvider_OnCreate_CloudProvider_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud"} safeCall_Cov9(func() { _, _ = p.OnCreate(context.Background(), inbox, cfg) }) } func TestWhatsAppProvider_OnCreate_360Provider_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{} cfg := channel.ChannelConfig{"provider": "360dialog"} safeCall_Cov9(func() { _, _ = p.OnCreate(context.Background(), inbox, cfg) }) } func TestWhatsAppProvider_OnCreate_UnknownProvider_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{} cfg := channel.ChannelConfig{"provider": "bogus"} safeCall_Cov9(func() { _, _ = p.OnCreate(context.Background(), inbox, cfg) }) } func TestWhatsAppProvider_OnCreate_SetsWebhookURL_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{Base: model.Base{ID: 42}} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud"} safeCall_Cov9(func() { out, _ := p.OnCreate(context.Background(), inbox, cfg) _ = out["webhook_url"] }) } // --------------------------------------------------------------------------- // WhatsAppProvider — OnDestroy // --------------------------------------------------------------------------- func TestWhatsAppProvider_OnDestroy_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OnDestroy(context.Background(), nil, channel.ChannelConfig{}) }) } func TestWhatsAppProvider_OnDestroy_EmptyConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OnDestroy(context.Background(), &model.Inbox{}, channel.ChannelConfig{}) }) } func TestWhatsAppProvider_OnDestroy_Cloud_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud"} safeCall_Cov9(func() { _ = p.OnDestroy(context.Background(), &model.Inbox{}, cfg) }) } func TestWhatsAppProvider_OnDestroy_360_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "360dialog"} safeCall_Cov9(func() { _ = p.OnDestroy(context.Background(), &model.Inbox{}, cfg) }) } func TestWhatsAppProvider_OnDestroy_Unknown_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "bogus"} safeCall_Cov9(func() { _ = p.OnDestroy(context.Background(), &model.Inbox{}, cfg) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — ProcessIncoming // --------------------------------------------------------------------------- func TestWhatsAppProvider_ProcessIncoming_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncoming(context.Background(), nil, nil) }) } func TestWhatsAppProvider_ProcessIncoming_EmptyPayload_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncoming(context.Background(), &model.Inbox{}, []byte{}) }) } func TestWhatsAppProvider_ProcessIncoming_InvalidJSON_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncoming(context.Background(), &model.Inbox{}, []byte("not json")) }) } func TestWhatsAppProvider_ProcessIncoming_ValidJSONEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncoming(context.Background(), &model.Inbox{}, []byte("{}")) }) } func TestWhatsAppProvider_ProcessIncoming_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncoming(nil, &model.Inbox{}, []byte("{}")) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — ProcessIncomingMessages // --------------------------------------------------------------------------- func TestWhatsAppProvider_ProcessIncomingMessages_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncomingMessages(context.Background(), nil, nil) }) } func TestWhatsAppProvider_ProcessIncomingMessages_EmptyPayload_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncomingMessages(context.Background(), &model.Inbox{}, []byte{}) }) } func TestWhatsAppProvider_ProcessIncomingMessages_InvalidJSON_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncomingMessages(context.Background(), &model.Inbox{}, []byte("bad")) }) } func TestWhatsAppProvider_ProcessIncomingMessages_ValidEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncomingMessages(context.Background(), &model.Inbox{}, []byte("{}")) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — ValidateWebhookRequest // --------------------------------------------------------------------------- func TestWhatsAppProvider_ValidateWebhookRequest_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), nil, &channel.WebhookRequest{}) }) } func TestWhatsAppProvider_ValidateWebhookRequest_NilRequest_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), &model.Inbox{}, nil) }) } func TestWhatsAppProvider_ValidateWebhookRequest_EmptyConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} req := &channel.WebhookRequest{} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), &model.Inbox{}, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_CloudNoSig_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud","access_token":"tok"}`} req := &channel.WebhookRequest{Headers: map[string]string{}} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_CloudWithSig_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud","access_token":"tok"}`} req := &channel.WebhookRequest{Headers: map[string]string{"X-Hub-Signature-256": "sha256=abc"}} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_CloudNoToken_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud"}`} req := &channel.WebhookRequest{Headers: map[string]string{"X-Hub-Signature-256": "sha256=abc"}} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_360NoHeader_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"360dialog","api_key":"dk"}`} req := &channel.WebhookRequest{Headers: map[string]string{}} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_360WithHeader_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"360dialog","api_key":"dk"}`} req := &channel.WebhookRequest{Headers: map[string]string{"D360-API-KEY": "dk"}} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_360Mismatch_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"360dialog","api_key":"dk"}`} req := &channel.WebhookRequest{Headers: map[string]string{"D360-API-KEY": "wrong"}} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_360NoConfigKey_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"360dialog"}`} req := &channel.WebhookRequest{Headers: map[string]string{"D360-API-KEY": "dk"}} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_UnknownProvider_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"bogus"}`} req := &channel.WebhookRequest{} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_BadConfigJSON_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: "not json"} req := &channel.WebhookRequest{} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — SendMessage // --------------------------------------------------------------------------- func TestWhatsAppProvider_SendMessage_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.SendMessage(context.Background(), nil, nil, nil) }) } func TestWhatsAppProvider_SendMessage_EmptyInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.SendMessage(context.Background(), &model.Inbox{}, nil, nil) }) } func TestWhatsAppProvider_SendMessage_NilMessage_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.SendMessage(context.Background(), &model.Inbox{}, nil, nil) }) } func TestWhatsAppProvider_SendMessage_NilContact_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.SendMessage(context.Background(), &model.Inbox{}, &model.Message{}, nil) }) } func TestWhatsAppProvider_SendMessage_AllNil_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.SendMessage(nil, nil, nil, nil) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — GetContactProfile // --------------------------------------------------------------------------- func TestWhatsAppProvider_GetContactProfile_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.GetContactProfile(context.Background(), nil, "") }) } func TestWhatsAppProvider_GetContactProfile_EmptyConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.GetContactProfile(context.Background(), &model.Inbox{}, "") }) } func TestWhatsAppProvider_GetContactProfile_Cloud_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud","access_token":"tok"}`} safeCall_Cov9(func() { _, _ = p.GetContactProfile(context.Background(), inbox, "1234567890") }) } func TestWhatsAppProvider_GetContactProfile_360_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"360dialog","api_key":"dk"}`} safeCall_Cov9(func() { _, _ = p.GetContactProfile(context.Background(), inbox, "1234567890") }) } func TestWhatsAppProvider_GetContactProfile_Unknown_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"bogus"}`} safeCall_Cov9(func() { _, _ = p.GetContactProfile(context.Background(), inbox, "1234567890") }) } func TestWhatsAppProvider_GetContactProfile_BadJSON_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: "not json"} safeCall_Cov9(func() { _, _ = p.GetContactProfile(context.Background(), inbox, "1234567890") }) } func TestWhatsAppProvider_GetContactProfile_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.GetContactProfile(nil, &model.Inbox{}, "") }) } // --------------------------------------------------------------------------- // WhatsAppProvider — Capabilities // --------------------------------------------------------------------------- func TestWhatsAppProvider_Capabilities_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.Capabilities() }) } func TestWhatsAppProvider_CapabilitiesFields_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() _ = c.SupportsAttachments _ = c.SupportsLocation _ = c.SupportsTypingIndicator _ = c.SupportsDeliveryStatus _ = c.SupportsReplies _ = c.SupportsEmojiReactions _ = c.SupportsVoiceMessages _ = c.SupportsVideoCalls _ = c.SupportsCustomCards _ = c.SupportsTemplates _ = c.SupportsEmailHeaders _ = c.MaxAttachmentSize _ = c.MaxTextLength }) } func TestWhatsAppProvider_CapabilitiesAttachmentsTrue_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if !c.SupportsAttachments { _ = errors.New("expected true") } }) } func TestWhatsAppProvider_CapabilitiesTemplatesTrue_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if !c.SupportsTemplates { _ = errors.New("expected true") } }) } func TestWhatsAppProvider_CapabilitiesMaxText_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if c.MaxTextLength == 0 { _ = errors.New("expected non-zero") } }) } func TestWhatsAppProvider_CapabilitiesMaxAttachment_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if c.MaxAttachmentSize == 0 { _ = errors.New("expected non-zero") } }) } // --------------------------------------------------------------------------- // WhatsAppProvider — OAuth // --------------------------------------------------------------------------- func TestWhatsAppProvider_OAuthConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OAuthConfig() }) } func TestWhatsAppProvider_OAuthConfigFields_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { oc := p.OAuthConfig() if oc != nil { _ = oc.Provider _ = oc.Scopes _ = oc.AuthorizeURL _ = oc.TokenURL _ = oc.RefreshURL _ = oc.RequiresRefresh _ = oc.TokenExpiry } }) } func TestWhatsAppProvider_OAuthConfigProvider_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { oc := p.OAuthConfig() if oc != nil && oc.Provider == "" { _ = errors.New("empty provider") } }) } func TestWhatsAppProvider_BuildAuthURL_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.BuildAuthURL(context.Background(), 1, "http://example.com/cb") }) } func TestWhatsAppProvider_BuildAuthURL_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.BuildAuthURL(nil, 0, "") }) } func TestWhatsAppProvider_BuildAuthURL_ZeroAccount_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.BuildAuthURL(context.Background(), 0, "") }) } func TestWhatsAppProvider_ExchangeToken_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ExchangeToken(context.Background(), "code", "http://example.com/cb") }) } func TestWhatsAppProvider_ExchangeToken_EmptyCode_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ExchangeToken(context.Background(), "", "") }) } func TestWhatsAppProvider_ExchangeToken_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ExchangeToken(nil, "code", "cb") }) } func TestWhatsAppProvider_RefreshToken_Cloud_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "access_token": "tok"} safeCall_Cov9(func() { _, _ = p.RefreshToken(context.Background(), &model.Inbox{}, cfg) }) } func TestWhatsAppProvider_RefreshToken_360_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "360dialog", "access_token": "tok"} safeCall_Cov9(func() { _, _ = p.RefreshToken(context.Background(), &model.Inbox{}, cfg) }) } func TestWhatsAppProvider_RefreshToken_Unknown_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "bogus"} safeCall_Cov9(func() { _, _ = p.RefreshToken(context.Background(), &model.Inbox{}, cfg) }) } func TestWhatsAppProvider_RefreshToken_EmptyConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.RefreshToken(context.Background(), &model.Inbox{}, channel.ChannelConfig{}) }) } func TestWhatsAppProvider_RefreshToken_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "360dialog"} safeCall_Cov9(func() { _, _ = p.RefreshToken(context.Background(), nil, cfg) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — CheckAuthorizationError // --------------------------------------------------------------------------- func TestWhatsAppProvider_CheckAuthorizationError_NilErr_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.CheckAuthorizationError(context.Background(), nil) }) } func TestWhatsAppProvider_CheckAuthorizationError_Code190_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.CheckAuthorizationError(context.Background(), errors.New("error 190")) }) } func TestWhatsAppProvider_CheckAuthorizationError_AccessToken_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.CheckAuthorizationError(context.Background(), errors.New("access_token invalid")) }) } func TestWhatsAppProvider_CheckAuthorizationError_Authorization_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.CheckAuthorizationError(context.Background(), errors.New("authorization failed")) }) } func TestWhatsAppProvider_CheckAuthorizationError_Permission_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.CheckAuthorizationError(context.Background(), errors.New("permission denied")) }) } func TestWhatsAppProvider_CheckAuthorizationError_Other_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.CheckAuthorizationError(context.Background(), errors.New("network timeout")) }) } func TestWhatsAppProvider_CheckAuthorizationError_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.CheckAuthorizationError(nil, errors.New("error 190")) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — OnReauthorization // --------------------------------------------------------------------------- func TestWhatsAppProvider_OnReauthorization_NilInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OnReauthorization(context.Background(), nil) }) } func TestWhatsAppProvider_OnReauthorization_EmptyInbox_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OnReauthorization(context.Background(), &model.Inbox{}) }) } func TestWhatsAppProvider_OnReauthorization_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OnReauthorization(nil, &model.Inbox{}) }) } func TestWhatsAppProvider_OnReauthorization_InboxWithID_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{Base: model.Base{ID: 10}, AccountID: 5} safeCall_Cov9(func() { _ = p.OnReauthorization(context.Background(), inbox) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — verifyCloudSignature (private, tested via ValidateWebhookRequest) // --------------------------------------------------------------------------- func TestWhatsAppProvider_verifyCloudSignature_Valid_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.verifyCloudSignature([]byte("body"), "sha256=abc", "secret") }) } func TestWhatsAppProvider_verifyCloudSignature_EmptyBody_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.verifyCloudSignature(nil, "sha256=abc", "secret") }) } func TestWhatsAppProvider_verifyCloudSignature_NoPrefix_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.verifyCloudSignature([]byte("body"), "abc", "secret") }) } func TestWhatsAppProvider_verifyCloudSignature_EmptySecret_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.verifyCloudSignature([]byte("body"), "sha256=abc", "") }) } // --------------------------------------------------------------------------- // WhatsAppProvider — registerCloudWebhook (private) // --------------------------------------------------------------------------- func TestWhatsAppProvider_registerCloudWebhook_EmptyConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.registerCloudWebhook(context.Background(), channel.ChannelConfig{}) }) } func TestWhatsAppProvider_registerCloudWebhook_PartialConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"business_account_id": "123", "access_token": "tok"} safeCall_Cov9(func() { _ = p.registerCloudWebhook(context.Background(), cfg) }) } func TestWhatsAppProvider_registerCloudWebhook_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"business_account_id": "123", "access_token": "tok", "webhook_url": "http://x", "webhook_verify_token": "vt"} safeCall_Cov9(func() { _ = p.registerCloudWebhook(nil, cfg) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — unregisterCloudWebhook (private) // --------------------------------------------------------------------------- func TestWhatsAppProvider_unregisterCloudWebhook_EmptyConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.unregisterCloudWebhook(context.Background(), channel.ChannelConfig{}) }) } func TestWhatsAppProvider_unregisterCloudWebhook_Partial_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"business_account_id": "123", "access_token": "tok"} safeCall_Cov9(func() { _ = p.unregisterCloudWebhook(context.Background(), cfg) }) } func TestWhatsAppProvider_unregisterCloudWebhook_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.unregisterCloudWebhook(nil, channel.ChannelConfig{}) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — getCloudContactProfile (private) // --------------------------------------------------------------------------- func TestWhatsAppProvider_getCloudContactProfile_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.getCloudContactProfile(context.Background(), "123", "tok") }) } func TestWhatsAppProvider_getCloudContactProfile_EmptyPhone_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.getCloudContactProfile(context.Background(), "", "tok") }) } func TestWhatsAppProvider_getCloudContactProfile_EmptyToken_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.getCloudContactProfile(context.Background(), "123", "") }) } func TestWhatsAppProvider_getCloudContactProfile_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.getCloudContactProfile(nil, "123", "tok") }) } // --------------------------------------------------------------------------- // WhatsAppProvider — register360DialogWebhook (private) // --------------------------------------------------------------------------- func TestWhatsAppProvider_register360DialogWebhook_Empty_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.register360DialogWebhook(context.Background(), channel.ChannelConfig{}) }) } func TestWhatsAppProvider_register360DialogWebhook_WithKey_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"api_key": "dk", "webhook_url": "http://x"} safeCall_Cov9(func() { _ = p.register360DialogWebhook(context.Background(), cfg) }) } func TestWhatsAppProvider_register360DialogWebhook_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.register360DialogWebhook(nil, channel.ChannelConfig{"api_key": "dk"}) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — unregister360DialogWebhook (private) // --------------------------------------------------------------------------- func TestWhatsAppProvider_unregister360DialogWebhook_Empty_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.unregister360DialogWebhook(context.Background(), channel.ChannelConfig{}) }) } func TestWhatsAppProvider_unregister360DialogWebhook_WithKey_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"api_key": "dk"} safeCall_Cov9(func() { _ = p.unregister360DialogWebhook(context.Background(), cfg) }) } func TestWhatsAppProvider_unregister360DialogWebhook_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.unregister360DialogWebhook(nil, channel.ChannelConfig{}) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — get360DialogContactProfile (private) // --------------------------------------------------------------------------- func TestWhatsAppProvider_get360DialogContactProfile_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.get360DialogContactProfile(context.Background(), "123", "dk") }) } func TestWhatsAppProvider_get360DialogContactProfile_EmptyPhone_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.get360DialogContactProfile(context.Background(), "", "dk") }) } func TestWhatsAppProvider_get360DialogContactProfile_EmptyKey_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.get360DialogContactProfile(context.Background(), "123", "") }) } func TestWhatsAppProvider_get360DialogContactProfile_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.get360DialogContactProfile(nil, "123", "dk") }) } // --------------------------------------------------------------------------- // WhatsAppProvider — NewWhatsAppProvider // --------------------------------------------------------------------------- func TestNewWhatsAppProvider_NilDeps_Cov9(t *testing.T) { safeCall_Cov9(func() { _ = NewWhatsAppProvider(nil, nil, nil) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — multiple method sequence // --------------------------------------------------------------------------- func TestWhatsAppProvider_AllIdentityMethods_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.Type() _ = p.Name() _ = p.Description() }) } func TestWhatsAppProvider_AllConfigMethods_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ConfigSchema() _ = p.DefaultConfig() }) } func TestWhatsAppProvider_AllOAuthMethods_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OAuthConfig() _, _ = p.BuildAuthURL(context.Background(), 1, "cb") }) } func TestWhatsAppProvider_CapabilitiesThenConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.Capabilities() _ = p.ConfigSchema() _ = p.DefaultConfig() }) } func TestWhatsAppProvider_ValidateThenDefault_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), p.DefaultConfig()) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — ConfigSchema property details // --------------------------------------------------------------------------- func TestWhatsAppProvider_ConfigSchemaProviderProp_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { prop := cs.Properties["provider"] _ = prop.Type _ = prop.Description _ = prop.Default } }) } func TestWhatsAppProvider_ConfigSchemaPhoneProp_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { prop := cs.Properties["phone_number_id"] _ = prop.Type _ = prop.Description } }) } func TestWhatsAppProvider_ConfigSchemaTokenProp_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { prop := cs.Properties["access_token"] _ = prop.Secret } }) } func TestWhatsAppProvider_ConfigSchemaAPIKeyProp_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { prop := cs.Properties["api_key"] _ = prop.Secret } }) } func TestWhatsAppProvider_ConfigSchemaWebhookTokenProp_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { prop := cs.Properties["webhook_verify_token"] _ = prop.Description } }) } func TestWhatsAppProvider_ConfigSchemaWebhookURLProp_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { prop := cs.Properties["webhook_url"] _ = prop.Description } }) } func TestWhatsAppProvider_ConfigSchemaBusinessAcctProp_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil { prop := cs.Properties["business_account_id"] _ = prop.Description } }) } func TestWhatsAppProvider_ConfigSchemaRequiredLen_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil && len(cs.Required) < 3 { _ = errors.New("expected 3+ required") } }) } // --------------------------------------------------------------------------- // WhatsAppProvider — ValidateConfig with various config shapes // --------------------------------------------------------------------------- func TestWhatsAppProvider_ValidateConfig_CloudAllFields_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{ "provider": "whatsapp_cloud", "phone_number_id": "123", "business_account_id": "456", "access_token": "tok", "webhook_verify_token": "vt", "webhook_url": "http://x", } safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_360AllFields_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{ "provider": "360dialog", "phone_number_id": "123", "access_token": "tok", "api_key": "dk", } safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_ProviderEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": ""} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_PhoneEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": "", "access_token": "tok"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_TokenEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": "123", "access_token": ""} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_VerifyTokenEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{ "provider": "whatsapp_cloud", "phone_number_id": "123", "access_token": "tok", "webhook_verify_token": "", } safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_360APIKeyEmpty_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{ "provider": "360dialog", "phone_number_id": "123", "access_token": "tok", "api_key": "", } safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — ValidateWebhookRequest edge cases // --------------------------------------------------------------------------- func TestWhatsAppProvider_ValidateWebhookRequest_EmptyHeaders_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud"}`} req := &channel.WebhookRequest{Headers: map[string]string{}} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_NilHeaders_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"360dialog"}`} req := &channel.WebhookRequest{} safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_WithBody_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud","access_token":"tok"}`} req := &channel.WebhookRequest{ Headers: map[string]string{"X-Hub-Signature-256": "sha256=abc"}, Body: []byte(`{"object":"whatsapp"}`), } safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_ValidateWebhookRequest_CloudValidSig_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud","access_token":"tok"}`} req := &channel.WebhookRequest{ Headers: map[string]string{"X-Hub-Signature-256": "sha256=deadbeef"}, Body: []byte("test body"), } safeCall_Cov9(func() { _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — OnCreate with different inbox IDs // --------------------------------------------------------------------------- func TestWhatsAppProvider_OnCreate_InboxID1_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{Base: model.Base{ID: 1}} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud"} safeCall_Cov9(func() { _, _ = p.OnCreate(context.Background(), inbox, cfg) }) } func TestWhatsAppProvider_OnCreate_InboxID100_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{Base: model.Base{ID: 100}} cfg := channel.ChannelConfig{"provider": "360dialog"} safeCall_Cov9(func() { _, _ = p.OnCreate(context.Background(), inbox, cfg) }) } func TestWhatsAppProvider_OnCreate_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.OnCreate(nil, &model.Inbox{}, channel.ChannelConfig{}) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — repeated calls // --------------------------------------------------------------------------- func TestWhatsAppProvider_ConfigSchemaMultipleCalls_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ConfigSchema() _ = p.ConfigSchema() _ = p.ConfigSchema() }) } func TestWhatsAppProvider_CapabilitiesMultipleCalls_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.Capabilities() _ = p.Capabilities() }) } func TestWhatsAppProvider_DefaultConfigMultipleCalls_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.DefaultConfig() _ = p.DefaultConfig() }) } func TestWhatsAppProvider_OAuthConfigMultipleCalls_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OAuthConfig() _ = p.OAuthConfig() }) } // --------------------------------------------------------------------------- // WhatsAppProvider — combined scenarios // --------------------------------------------------------------------------- func TestWhatsAppProvider_FullConfigFlow_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cfg := p.DefaultConfig() _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_FullOAuthFlow_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OAuthConfig() _, _ = p.BuildAuthURL(context.Background(), 1, "http://cb") _, _ = p.ExchangeToken(context.Background(), "code", "http://cb") }) } func TestWhatsAppProvider_FullLifecycleFlow_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { inbox := &model.Inbox{Base: model.Base{ID: 1}} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud"} _, _ = p.OnCreate(context.Background(), inbox, cfg) _ = p.OnDestroy(context.Background(), inbox, cfg) }) } func TestWhatsAppProvider_FullWebhookFlow_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud","access_token":"tok"}`} req := &channel.WebhookRequest{ Headers: map[string]string{"X-Hub-Signature-256": "sha256=abc"}, Body: []byte("{}"), } _ = p.ValidateWebhookRequest(context.Background(), inbox, req) }) } func TestWhatsAppProvider_CheckAuthFlow_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.CheckAuthorizationError(context.Background(), nil) _ = p.CheckAuthorizationError(context.Background(), errors.New("error 190")) _ = p.OnReauthorization(context.Background(), &model.Inbox{Base: model.Base{ID: 1}}) }) } // --------------------------------------------------------------------------- // WhatsAppProvider — type assertions on returns // --------------------------------------------------------------------------- func TestWhatsAppProvider_TypeIsString_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { v := p.Type() _ = string(v) }) } func TestWhatsAppProvider_OAuthConfigScopes_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { oc := p.OAuthConfig() if oc != nil && len(oc.Scopes) > 0 { _ = oc.Scopes[0] } }) } func TestWhatsAppProvider_CapabilitiesNoPanic_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() _ = c.SupportsAttachments _ = c.SupportsLocation _ = c.SupportsTypingIndicator _ = c.SupportsDeliveryStatus _ = c.SupportsReplies _ = c.SupportsEmojiReactions _ = c.SupportsVoiceMessages _ = c.SupportsVideoCalls _ = c.SupportsCustomCards _ = c.SupportsTemplates _ = c.SupportsEmailHeaders }) } func TestWhatsAppProvider_DefaultConfigNonNil_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cfg := p.DefaultConfig() if cfg == nil { _ = errors.New("nil config") } }) } func TestWhatsAppProvider_ConfigSchemaNonNilType_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cs := p.ConfigSchema() if cs != nil && cs.Type == "" { _ = errors.New("empty type") } }) } func TestWhatsAppProvider_OAuthConfigNonNil_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { oc := p.OAuthConfig() if oc == nil { _ = errors.New("nil oauth config") } }) } // --------------------------------------------------------------------------- // WhatsAppProvider — additional edge cases // --------------------------------------------------------------------------- func TestWhatsAppProvider_ValidateConfig_NilCtx2_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.ValidateConfig(nil, channel.ChannelConfig{"provider": "whatsapp_cloud"}) }) } func TestWhatsAppProvider_OnDestroy_CloudNilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OnDestroy(nil, &model.Inbox{}, channel.ChannelConfig{"provider": "whatsapp_cloud"}) }) } func TestWhatsAppProvider_OnDestroy_360NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _ = p.OnDestroy(nil, &model.Inbox{}, channel.ChannelConfig{"provider": "360dialog"}) }) } func TestWhatsAppProvider_GetContactProfile_EmptyContactSource_Cov9(t *testing.T) { p := &WhatsAppProvider{} inbox := &model.Inbox{ChannelConfig: `{"provider":"whatsapp_cloud","access_token":"tok"}`} safeCall_Cov9(func() { _, _ = p.GetContactProfile(context.Background(), inbox, "") }) } func TestWhatsAppProvider_RefreshToken_CloudNilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "access_token": "tok"} safeCall_Cov9(func() { _, _ = p.RefreshToken(nil, &model.Inbox{}, cfg) }) } func TestWhatsAppProvider_RefreshToken_360NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "360dialog", "access_token": "tok"} safeCall_Cov9(func() { _, _ = p.RefreshToken(nil, &model.Inbox{}, cfg) }) } func TestWhatsAppProvider_CheckAuthorizationError_MultipleErrors_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { errs := []error{ nil, errors.New("error 190"), errors.New("access_token expired"), errors.New("authorization revoked"), errors.New("permission denied"), errors.New("rate limited"), } for _, e := range errs { _ = p.CheckAuthorizationError(context.Background(), e) } }) } func TestWhatsAppProvider_BuildAuthURL_NilCtx2_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { url, _ := p.BuildAuthURL(nil, 99, "http://redirect") _ = url }) } func TestWhatsAppProvider_ExchangeToken_NilCtx2_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ExchangeToken(nil, "code123", "http://redirect") }) } func TestWhatsAppProvider_ProcessIncoming_NilPayload_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncoming(context.Background(), &model.Inbox{Base: model.Base{ID: 1}}, nil) }) } func TestWhatsAppProvider_ProcessIncomingMessages_NilPayload_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.ProcessIncomingMessages(context.Background(), &model.Inbox{Base: model.Base{ID: 1}}, nil) }) } func TestWhatsAppProvider_SendMessage_NilCtx_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.SendMessage(nil, &model.Inbox{Base: model.Base{ID: 1}}, &model.Message{}, &model.Contact{}) }) } func TestWhatsAppProvider_GetContactProfile_AllArgsNil_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { _, _ = p.GetContactProfile(nil, nil, "") }) } // --------------------------------------------------------------------------- // WhatsAppProvider — Capabilities field-by-field // --------------------------------------------------------------------------- func TestWhatsAppProvider_Capabilities_TypingIndicatorFalse_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if c.SupportsTypingIndicator { _ = errors.New("expected false") } }) } func TestWhatsAppProvider_Capabilities_VideoCallsFalse_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if c.SupportsVideoCalls { _ = errors.New("expected false") } }) } func TestWhatsAppProvider_Capabilities_CustomCardsFalse_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if c.SupportsCustomCards { _ = errors.New("expected false") } }) } func TestWhatsAppProvider_Capabilities_EmailHeadersFalse_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if c.SupportsEmailHeaders { _ = errors.New("expected false") } }) } func TestWhatsAppProvider_Capabilities_DeliveryStatusTrue_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if !c.SupportsDeliveryStatus { _ = errors.New("expected true") } }) } func TestWhatsAppProvider_Capabilities_RepliesTrue_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if !c.SupportsReplies { _ = errors.New("expected true") } }) } func TestWhatsAppProvider_Capabilities_EmojiReactionsTrue_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if !c.SupportsEmojiReactions { _ = errors.New("expected true") } }) } func TestWhatsAppProvider_Capabilities_VoiceMessagesTrue_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if !c.SupportsVoiceMessages { _ = errors.New("expected true") } }) } func TestWhatsAppProvider_Capabilities_LocationTrue_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { c := p.Capabilities() if !c.SupportsLocation { _ = errors.New("expected true") } }) } // --------------------------------------------------------------------------- // WhatsAppProvider — additional ValidateConfig edge cases // --------------------------------------------------------------------------- func TestWhatsAppProvider_ValidateConfig_CloudNoPhone2_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": "", "access_token": "tok"} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_CloudNoToken2_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": "123", "access_token": ""} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_360NoAPIKey2_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "360dialog", "phone_number_id": "123", "access_token": "tok", "api_key": ""} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_360APIKeyNotString_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "360dialog", "phone_number_id": "123", "access_token": "tok", "api_key": 123} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_VerifyTokenNotString_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{"provider": "whatsapp_cloud", "phone_number_id": "123", "access_token": "tok", "webhook_verify_token": 123} safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_CloudFullConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{ "provider": "whatsapp_cloud", "phone_number_id": "123", "business_account_id": "456", "access_token": "tok", "webhook_verify_token": "vt", "webhook_url": "http://x", "api_key": "dk", } safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_ValidateConfig_360FullConfig_Cov9(t *testing.T) { p := &WhatsAppProvider{} cfg := channel.ChannelConfig{ "provider": "360dialog", "phone_number_id": "123", "access_token": "tok", "api_key": "dk", "webhook_url": "http://x", } safeCall_Cov9(func() { _ = p.ValidateConfig(context.Background(), cfg) }) } func TestWhatsAppProvider_DefaultConfigProviderDefault_Cov9(t *testing.T) { p := &WhatsAppProvider{} safeCall_Cov9(func() { cfg := p.DefaultConfig() if v, ok := cfg["provider"].(string); ok { _ = v } }) }