Skip to content

Commit 468c56e

Browse files
feat: sending system messages (#248)
* test: added a test for system messages * test: updated test * test: updating test * feat: ability to send system message * test: updated test * test: fixing test * test: fix test * fix: test
1 parent a74a643 commit 468c56e

File tree

2 files changed

+34
-13
lines changed

2 files changed

+34
-13
lines changed

channel_test.go

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,9 +281,10 @@ func TestChannel_GetReplies(t *testing.T) {
281281

282282
msg = resp.Message
283283

284-
reply := &Message{Text: "test reply", ParentID: msg.ID, Type: MessageTypeReply}
285-
_, err = ch.SendMessage(ctx, reply, randomUser(t, c).ID)
284+
reply := &Message{Text: "test reply", ParentID: msg.ID}
285+
resp, err = ch.SendMessage(ctx, reply, randomUser(t, c).ID)
286286
require.NoError(t, err, "send reply")
287+
require.Equal(t, MessageTypeReply, resp.Message.Type, "message type is reply")
287288

288289
repliesResp, err := ch.GetReplies(ctx, msg.ID, nil)
289290
require.NoError(t, err, "get replies")
@@ -361,6 +362,25 @@ func TestChannel_SendMessage(t *testing.T) {
361362
assert.True(t, msg2.Silent, "message silent flag is set")
362363
}
363364

365+
func TestChannel_SendSystemMessage(t *testing.T) {
366+
c := initClient(t)
367+
ch := initChannel(t, c)
368+
ctx := context.Background()
369+
user := randomUser(t, c)
370+
msg := &Message{
371+
Text: "test message",
372+
Type: MessageTypeSystem,
373+
}
374+
375+
resp, err := ch.SendMessage(ctx, msg, user.ID)
376+
require.NoError(t, err, "send message")
377+
378+
// check that message was updated
379+
msg = resp.Message
380+
assert.NotEmpty(t, msg.ID, "message has ID")
381+
assert.Equal(t, MessageTypeSystem, msg.Type, "message type is system")
382+
}
383+
364384
func TestChannel_Truncate(t *testing.T) {
365385
c := initClient(t)
366386
ch := initChannel(t, c)

message.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ func (m *Message) toRequest() messageRequest {
9292

9393
req.Message = messageRequestMessage{
9494
Text: m.Text,
95+
Type: m.Type,
9596
Attachments: m.Attachments,
9697
User: messageRequestUser{ID: m.User.ID},
9798
ExtraData: m.ExtraData,
@@ -121,17 +122,17 @@ type messageRequest struct {
121122
}
122123

123124
type messageRequestMessage struct {
124-
Text string `json:"text"`
125-
Attachments []*Attachment `json:"attachments"`
126-
User messageRequestUser `json:"user"`
127-
MentionedUsers []string `json:"mentioned_users"`
128-
ParentID string `json:"parent_id"`
129-
ShowInChannel bool `json:"show_in_channel"`
130-
Silent bool `json:"silent"`
131-
QuotedMessageID string `json:"quoted_message_id"`
132-
Pinned bool `json:"pinned"`
133-
134-
ExtraData map[string]interface{} `json:"-"`
125+
Text string `json:"text"`
126+
Type MessageType `json:"type" validate:"omitempty,oneof=system"`
127+
Attachments []*Attachment `json:"attachments"`
128+
User messageRequestUser `json:"user"`
129+
MentionedUsers []string `json:"mentioned_users"`
130+
ParentID string `json:"parent_id"`
131+
ShowInChannel bool `json:"show_in_channel"`
132+
Silent bool `json:"silent"`
133+
QuotedMessageID string `json:"quoted_message_id"`
134+
Pinned bool `json:"pinned"`
135+
ExtraData map[string]interface{} `json:"-"`
135136
}
136137

137138
type messageRequestForJSON messageRequestMessage

0 commit comments

Comments
 (0)