1
0
mirror of synced 2024-11-25 06:26:03 +03:00
mg-transport-api-client-go/v1/webhook_test.go

86 lines
2.4 KiB
Go

package v1
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/assert"
)
func TestWebhookRequest_IsMessageWebhook(t *testing.T) {
assert.True(t, WebhookRequest{Type: MessageSendWebhookType}.IsMessageWebhook())
assert.True(t, WebhookRequest{Type: MessageUpdateWebhookType}.IsMessageWebhook())
assert.True(t, WebhookRequest{Type: MessageDeleteWebhookType}.IsMessageWebhook())
assert.True(t, WebhookRequest{Type: MessageReadWebhookType}.IsMessageWebhook())
assert.False(t, WebhookRequest{}.IsMessageWebhook())
}
func TestWebhookRequest_IsTemplateWebhook(t *testing.T) {
assert.True(t, WebhookRequest{Type: TemplateCreateWebhookType}.IsTemplateWebhook())
assert.True(t, WebhookRequest{Type: TemplateUpdateWebhookType}.IsTemplateWebhook())
assert.True(t, WebhookRequest{Type: TemplateDeleteWebhookType}.IsTemplateWebhook())
assert.False(t, WebhookRequest{}.IsTemplateWebhook())
}
func TestWebhookData_MessageWebhookData(t *testing.T) {
wh := WebhookRequest{
Type: MessageSendWebhookType,
Data: mustMarshalJSON(MessageWebhookData{
ExternalUserID: "1",
ExternalMessageID: "1",
ExternalChatID: "1",
ChannelID: 1,
Content: "test",
Type: MsgTypeText,
}),
}.MessageWebhookData()
assert.Equal(t, "test", wh.Content)
}
func TestWebhookData_TemplateCreateWebhookData(t *testing.T) {
wh := WebhookRequest{
Type: TemplateCreateWebhookType,
Data: mustMarshalJSON(TemplateCreateWebhookData{
TemplateContent: TemplateContent{
Name: "template",
},
ChannelID: 1,
}),
}.TemplateCreateWebhookData()
assert.Equal(t, "template", wh.TemplateContent.Name)
}
func TestWebhookData_TemplateEditWebhookData(t *testing.T) {
wh := WebhookRequest{
Type: TemplateUpdateWebhookType,
Data: mustMarshalJSON(TemplateUpdateWebhookData{
TemplateContent: TemplateContent{
Name: "template",
},
ChannelID: 1,
Code: "code",
}),
}.TemplateUpdateWebhookData()
assert.Equal(t, "template", wh.TemplateContent.Name)
assert.Equal(t, "code", wh.Code)
}
func TestWebhookData_TemplateDeleteWebhookData(t *testing.T) {
wh := WebhookRequest{
Type: TemplateDeleteWebhookType,
Data: mustMarshalJSON(TemplateDeleteWebhookData{
ChannelID: 1,
Code: "code",
}),
}.TemplateDeleteWebhookData()
assert.Equal(t, "code", wh.Code)
}
func mustMarshalJSON(v interface{}) []byte {
data, err := json.Marshal(v)
if err != nil {
panic(err)
}
return data
}