86 lines
2.4 KiB
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
|
|
}
|