Tests[ListSubscribedChannelMessages]
This commit is contained in:
parent
3db636d41a
commit
3d1e6cfa17
@ -52,6 +52,7 @@ func (ac *AppContext) CheckPermissionChanMessagesRead(channel models.Channel) *g
|
|||||||
if !sub.Confirmed {
|
if !sub.Confirmed {
|
||||||
return langext.Ptr(ginresp.APIError(ac.ginContext, 401, apierr.USER_AUTH_FAILED, "You are not authorized for this action", nil))
|
return langext.Ptr(ginresp.APIError(ac.ginContext, 401, apierr.USER_AUTH_FAILED, "You are not authorized for this action", nil))
|
||||||
}
|
}
|
||||||
|
return nil // subscribed channel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -560,6 +560,112 @@ func TestListChannelMessages(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestListSubscribedChannelMessages(t *testing.T) {
|
||||||
|
ws, baseUrl, stop := tt.StartSimpleWebserver(t)
|
||||||
|
defer stop()
|
||||||
|
|
||||||
|
data := tt.InitDefaultData(t, ws)
|
||||||
|
|
||||||
|
type msg struct {
|
||||||
|
ChannelId string `json:"channel_id"`
|
||||||
|
ChannelInternalName string `json:"channel_internal_name"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
MessageId string `json:"message_id"`
|
||||||
|
OwnerUserId string `json:"owner_user_id"`
|
||||||
|
Priority int `json:"priority"`
|
||||||
|
SenderIp string `json:"sender_ip"`
|
||||||
|
SenderName string `json:"sender_name"`
|
||||||
|
SenderUserId string `json:"sender_user_id"`
|
||||||
|
Timestamp string `json:"timestamp"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
Trimmed bool `json:"trimmed"`
|
||||||
|
UsrMessageId string `json:"usr_message_id"`
|
||||||
|
}
|
||||||
|
type mglist struct {
|
||||||
|
Messages []msg `json:"messages"`
|
||||||
|
NPT string `json:"next_page_token"`
|
||||||
|
PageSize int `json:"page_size"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type chanobj struct {
|
||||||
|
ChannelId string `json:"channel_id"`
|
||||||
|
DescriptionName string `json:"description_name"`
|
||||||
|
DisplayName string `json:"display_name"`
|
||||||
|
InternalName string `json:"internal_name"`
|
||||||
|
MessagesSent int `json:"messages_sent"`
|
||||||
|
OwnerUserId string `json:"owner_user_id"`
|
||||||
|
SubscribeKey string `json:"subscribe_key"`
|
||||||
|
Subscription struct {
|
||||||
|
ChannelId string `json:"channel_id"`
|
||||||
|
ChannelInternalName string `json:"channel_internal_name"`
|
||||||
|
ChannelOwnerUserId string `json:"channel_owner_user_id"`
|
||||||
|
Confirmed bool `json:"confirmed"`
|
||||||
|
SubscriberUserId string `json:"subscriber_user_id"`
|
||||||
|
SubscriptionId string `json:"subscription_id"`
|
||||||
|
TimestampCreated string `json:"timestamp_created"`
|
||||||
|
} `json:"subscription"`
|
||||||
|
TimestampCreated string `json:"timestamp_created"`
|
||||||
|
TimestampLastsent string `json:"timestamp_lastsent"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type chanlist struct {
|
||||||
|
Channels []chanobj `json:"channels"`
|
||||||
|
}
|
||||||
|
|
||||||
|
clist := tt.RequestAuthGet[chanlist](t, data.User[16].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/channels", data.User[16].UID))
|
||||||
|
|
||||||
|
chan1 := langext.ArrFirstOrNil(clist.Channels, func(v chanobj) bool { return v.InternalName == "chan1" })
|
||||||
|
chan2 := langext.ArrFirstOrNil(clist.Channels, func(v chanobj) bool { return v.InternalName == "chan2" })
|
||||||
|
chan3 := langext.ArrFirstOrNil(clist.Channels, func(v chanobj) bool { return v.InternalName == "chan3" })
|
||||||
|
|
||||||
|
{
|
||||||
|
sub1 := tt.RequestAuthPost[gin.H](t, data.User[1].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions?chan_subscribe_key=%s", data.User[1].UID, chan1.SubscribeKey), gin.H{
|
||||||
|
"channel_owner_user_id": data.User[16].UID,
|
||||||
|
"channel_internal_name": "chan1",
|
||||||
|
})
|
||||||
|
sub2 := tt.RequestAuthPost[gin.H](t, data.User[1].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions?chan_subscribe_key=%s", data.User[1].UID, chan2.SubscribeKey), gin.H{
|
||||||
|
"channel_owner_user_id": data.User[16].UID,
|
||||||
|
"channel_internal_name": "chan2",
|
||||||
|
})
|
||||||
|
sub3 := tt.RequestAuthPost[gin.H](t, data.User[1].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions?chan_subscribe_key=%s", data.User[1].UID, chan3.SubscribeKey), gin.H{
|
||||||
|
"channel_owner_user_id": data.User[16].UID,
|
||||||
|
"channel_internal_name": "chan3",
|
||||||
|
})
|
||||||
|
|
||||||
|
tt.RequestAuthPatch[gin.H](t, data.User[16].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions/%s", data.User[16].UID, sub1["subscription_id"]), gin.H{
|
||||||
|
"confirmed": true,
|
||||||
|
})
|
||||||
|
tt.RequestAuthPatch[gin.H](t, data.User[16].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions/%s", data.User[16].UID, sub2["subscription_id"]), gin.H{
|
||||||
|
"confirmed": true,
|
||||||
|
})
|
||||||
|
tt.RequestAuthPatch[gin.H](t, data.User[16].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions/%s", data.User[16].UID, sub3["subscription_id"]), gin.H{
|
||||||
|
"confirmed": true,
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
msgList0 := tt.RequestAuthGet[mglist](t, data.User[1].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/channels/%s/messages", data.User[16].UID, chan1.ChannelId))
|
||||||
|
tt.AssertEqual(t, "msgList.len", 8, len(msgList0.Messages))
|
||||||
|
tt.AssertEqual(t, "PageSize", 16, msgList0.PageSize)
|
||||||
|
tt.AssertEqual(t, "msgList[0]", "Lorem Ipsum 11", msgList0.Messages[0].Title)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
msgList0 := tt.RequestAuthGet[mglist](t, data.User[1].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/channels/%s/messages", data.User[16].UID, chan2.ChannelId))
|
||||||
|
tt.AssertEqual(t, "msgList.len", 10, len(msgList0.Messages))
|
||||||
|
tt.AssertEqual(t, "PageSize", 16, msgList0.PageSize)
|
||||||
|
tt.AssertEqual(t, "msgList[0]", "Lorem Ipsum 23", msgList0.Messages[0].Title)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
msgList0 := tt.RequestAuthGet[mglist](t, data.User[1].AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/channels/%s/messages", data.User[16].UID, chan3.ChannelId))
|
||||||
|
tt.AssertEqual(t, "msgList.len", 5, len(msgList0.Messages))
|
||||||
|
tt.AssertEqual(t, "PageSize", 16, msgList0.PageSize)
|
||||||
|
tt.AssertEqual(t, "msgList[0]", "Lorem Ipsum 20", msgList0.Messages[0].Title)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestListChannelSubscriptions(t *testing.T) {
|
func TestListChannelSubscriptions(t *testing.T) {
|
||||||
t.SkipNow() //TODO
|
t.SkipNow() //TODO
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user