diff --git a/linebot/messaging_api/tests/handwritten/model_reply_message_request_test.go b/linebot/messaging_api/tests/handwritten/model_reply_message_request_test.go new file mode 100644 index 00000000..88cd0033 --- /dev/null +++ b/linebot/messaging_api/tests/handwritten/model_reply_message_request_test.go @@ -0,0 +1,39 @@ +package tests + + +import ( + "encoding/json" + "strings" + "testing" + + "github.com/line/line-bot-sdk-go/v7/linebot/messaging_api" +) + +func TestTemplateMessage(t *testing.T) { + req := &messaging_api.ReplyMessageRequest{ + ReplyToken: "JKLJDSFhkljdsjfkla", + Messages: []messaging_api.MessageInterface{ + &messaging_api.TemplateMessage{ + AltText: "Buttons alt text", + Template: &messaging_api.ButtonsTemplate{ + ThumbnailImageUrl: "https://example.com/static/buttons/1040.jpg", + Title: "My button sample", + Actions: []messaging_api.ActionInterface{ + &messaging_api.UriAction{ + Label: "Go to line.me", + Uri: "https://line.me", + }, + }, + }, + }, + }, + } + encodedMsg, err := json.Marshal(req) + if err != nil { + t.Fatalf("Failed to encode message: %v", err) + } + encodedMsgStr := string(encodedMsg) + if !strings.Contains(encodedMsgStr, `"type":"buttons"`) { + t.Errorf("Encoded message doens't contains expected default value: %s", encodedMsgStr) + } +}