Skip to main content
Glama
chat_validation_test.go4.23 kB
package validations import ( "context" "testing" domainChat "github.com/aldinokemal/go-whatsapp-web-multidevice/domains/chat" pkgError "github.com/aldinokemal/go-whatsapp-web-multidevice/pkg/error" "github.com/stretchr/testify/assert" ) func TestValidateListChats(t *testing.T) { type args struct { request domainChat.ListChatsRequest } tests := []struct { name string args args err any }{ { name: "should success with valid request", args: args{request: domainChat.ListChatsRequest{ Limit: 25, Offset: 0, }}, err: nil, }, { name: "should success with zero limit (auto set to default)", args: args{request: domainChat.ListChatsRequest{ Limit: 0, Offset: 0, }}, err: nil, }, { name: "should success with max limit", args: args{request: domainChat.ListChatsRequest{ Limit: 100, Offset: 50, }}, err: nil, }, { name: "should error with limit too high", args: args{request: domainChat.ListChatsRequest{ Limit: 101, Offset: 0, }}, err: pkgError.ValidationError("limit: must be no greater than 100."), }, { name: "should error with negative offset", args: args{request: domainChat.ListChatsRequest{ Limit: 25, Offset: -1, }}, err: pkgError.ValidationError("offset: must be no less than 0."), }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := ValidateListChats(context.Background(), &tt.args.request) assert.Equal(t, tt.err, err) }) } } func TestValidateGetChatMessages(t *testing.T) { type args struct { request domainChat.GetChatMessagesRequest } tests := []struct { name string args args err any }{ { name: "should success with valid request", args: args{request: domainChat.GetChatMessagesRequest{ ChatJID: "6289685028129@s.whatsapp.net", Limit: 50, Offset: 0, }}, err: nil, }, { name: "should success with zero limit (auto set to default)", args: args{request: domainChat.GetChatMessagesRequest{ ChatJID: "6289685028129@s.whatsapp.net", Limit: 0, Offset: 0, }}, err: nil, }, { name: "should success with max limit", args: args{request: domainChat.GetChatMessagesRequest{ ChatJID: "6289685028129@s.whatsapp.net", Limit: 100, Offset: 50, }}, err: nil, }, { name: "should error with empty chat_jid", args: args{request: domainChat.GetChatMessagesRequest{ ChatJID: "", Limit: 50, Offset: 0, }}, err: pkgError.ValidationError("chat_jid: cannot be blank."), }, { name: "should error with limit too high", args: args{request: domainChat.GetChatMessagesRequest{ ChatJID: "6289685028129@s.whatsapp.net", Limit: 101, Offset: 0, }}, err: pkgError.ValidationError("limit: must be no greater than 100."), }, { name: "should error with negative offset", args: args{request: domainChat.GetChatMessagesRequest{ ChatJID: "6289685028129@s.whatsapp.net", Limit: 50, Offset: -1, }}, err: pkgError.ValidationError("offset: must be no less than 0."), }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := ValidateGetChatMessages(context.Background(), &tt.args.request) assert.Equal(t, tt.err, err) }) } } func TestValidatePinChat(t *testing.T) { type args struct { request domainChat.PinChatRequest } tests := []struct { name string args args err any }{ { name: "should success with valid request", args: args{request: domainChat.PinChatRequest{ ChatJID: "6289685028129@s.whatsapp.net", Pinned: true, }}, err: nil, }, { name: "should success with unpin request", args: args{request: domainChat.PinChatRequest{ ChatJID: "6289685028129@s.whatsapp.net", Pinned: false, }}, err: nil, }, { name: "should error with empty chat_jid", args: args{request: domainChat.PinChatRequest{ ChatJID: "", Pinned: true, }}, err: pkgError.ValidationError("chat_jid: cannot be blank."), }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := ValidatePinChat(context.Background(), &tt.args.request) assert.Equal(t, tt.err, err) }) } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/samihalawa/whatsapp-go-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server