Implement message filter scubscription_status
and sender_user_id
[skip-tests]
This commit is contained in:
@@ -1192,3 +1192,124 @@ func TestUnconfirmedSubscriptionListMessages(t *testing.T) {
|
||||
}
|
||||
tt.AssertFalse(t, "foundActivatedMessage", foundActivatedMessage)
|
||||
}
|
||||
|
||||
func TestListMessagesSenderUserID(t *testing.T) {
|
||||
ws, baseUrl, stop := tt.StartSimpleWebserver(t)
|
||||
defer stop()
|
||||
data := tt.InitDefaultData(t, ws)
|
||||
|
||||
user16 := data.User[16]
|
||||
|
||||
type msg struct {
|
||||
MessageId string `json:"message_id"`
|
||||
}
|
||||
type mglist struct {
|
||||
Messages []msg `json:"messages"`
|
||||
TotalCount int `json:"total_count"`
|
||||
}
|
||||
|
||||
allMessages := tt.RequestAuthGet[mglist](t, user16.AdminKey, baseUrl, "/api/v2/messages")
|
||||
tt.AssertTrue(t, "allMessages count > 0", allMessages.TotalCount > 0)
|
||||
|
||||
filteredMessages := tt.RequestAuthGet[mglist](t, user16.AdminKey, baseUrl, fmt.Sprintf("/api/v2/messages?sender_user_id=%s", user16.UID))
|
||||
|
||||
tt.AssertEqual(t, "Filtered message count should equal total count", allMessages.TotalCount, filteredMessages.TotalCount)
|
||||
tt.AssertEqual(t, "Filtered message len should equal total len", len(allMessages.Messages), len(filteredMessages.Messages))
|
||||
}
|
||||
|
||||
func TestListMessagesSubscriptionStatusAllInactiveSubscription(t *testing.T) {
|
||||
ws, baseUrl, stop := tt.StartSimpleWebserver(t)
|
||||
defer stop()
|
||||
data := tt.InitDefaultData(t, ws)
|
||||
|
||||
user14 := data.User[14] // Subscriber
|
||||
user15 := data.User[15] // Owner
|
||||
chanName := "chan_other_accepted"
|
||||
|
||||
subscriptionID, _ := tt.FindSubscriptionByChanName(t, baseUrl, user14, user15.UID, chanName)
|
||||
|
||||
newMessageTitle := langext.RandBase62(48)
|
||||
tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{"key": user15.AdminKey, "user_id": user15.UID, "channel": chanName, "title": newMessageTitle})
|
||||
|
||||
type msg struct {
|
||||
MessageId string `json:"message_id"`
|
||||
ChannelId string `json:"channel_id"`
|
||||
Title string `json:"title"`
|
||||
}
|
||||
type mglist struct {
|
||||
Messages []msg `json:"messages"`
|
||||
TotalCount int `json:"total_count"`
|
||||
}
|
||||
|
||||
{
|
||||
messages := tt.RequestAuthGet[mglist](t, user14.AdminKey, baseUrl, "/api/v2/messages")
|
||||
foundInitial := langext.ArrAny(messages.Messages, func(m msg) bool { return m.Title == newMessageTitle })
|
||||
tt.AssertTrue(t, "foundInitial", foundInitial)
|
||||
}
|
||||
|
||||
tt.RequestAuthPatch[gin.H](t, user14.AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions/%s", user14.UID, subscriptionID), gin.H{"active": false})
|
||||
|
||||
{
|
||||
messages := tt.RequestAuthGet[mglist](t, user14.AdminKey, baseUrl, "/api/v2/messages")
|
||||
foundInactive := langext.ArrAny(messages.Messages, func(m msg) bool { return m.Title == newMessageTitle })
|
||||
tt.AssertFalse(t, "foundInactive", foundInactive)
|
||||
}
|
||||
|
||||
{
|
||||
messages := tt.RequestAuthGet[mglist](t, user14.AdminKey, baseUrl, "/api/v2/messages?subscription_status=all")
|
||||
foundAllStatus := langext.ArrAny(messages.Messages, func(m msg) bool { return m.Title == newMessageTitle })
|
||||
tt.AssertTrue(t, "foundAllStatus", foundAllStatus)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListMessagesSubscriptionStatusAllNoSubscription(t *testing.T) {
|
||||
ws, baseUrl, stop := tt.StartSimpleWebserver(t)
|
||||
defer stop()
|
||||
data := tt.InitDefaultData(t, ws)
|
||||
|
||||
user0 := data.User[0]
|
||||
|
||||
type msg struct {
|
||||
MessageId string `json:"message_id"`
|
||||
ChannelId string `json:"channel_id"`
|
||||
Title string `json:"title"`
|
||||
}
|
||||
type mglist struct {
|
||||
Messages []msg `json:"messages"`
|
||||
TotalCount int `json:"total_count"`
|
||||
}
|
||||
|
||||
chan2 := data.User[0].Channels[2]
|
||||
|
||||
newMessageTitle := langext.RandBase62(48)
|
||||
tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{"key": user0.AdminKey, "user_id": user0.UID, "channel": chan2.InternalName, "title": newMessageTitle})
|
||||
|
||||
{
|
||||
messages := tt.RequestAuthGet[mglist](t, user0.AdminKey, baseUrl, "/api/v2/messages")
|
||||
foundInitial := langext.ArrAny(messages.Messages, func(m msg) bool { return m.Title == newMessageTitle })
|
||||
tt.AssertTrue(t, "foundInitial", foundInitial)
|
||||
}
|
||||
|
||||
{
|
||||
messages := tt.RequestAuthGet[mglist](t, user0.AdminKey, baseUrl, "/api/v2/messages?subscription_status=all")
|
||||
foundAllStatusAndSubscribed := langext.ArrAny(messages.Messages, func(m msg) bool { return m.Title == newMessageTitle })
|
||||
tt.AssertTrue(t, "foundAllStatusAndSubscribed", foundAllStatusAndSubscribed)
|
||||
}
|
||||
|
||||
subscriptionID, _ := tt.FindSubscriptionByChanName(t, baseUrl, user0, user0.UID, chan2.InternalName)
|
||||
|
||||
tt.RequestAuthDelete[gin.H](t, user0.AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions/%s", user0.UID, subscriptionID), gin.H{})
|
||||
|
||||
{
|
||||
messages := tt.RequestAuthGet[mglist](t, user0.AdminKey, baseUrl, "/api/v2/messages")
|
||||
foundNoSub := langext.ArrAny(messages.Messages, func(m msg) bool { return m.Title == newMessageTitle })
|
||||
tt.AssertFalse(t, "foundNoSub", foundNoSub)
|
||||
}
|
||||
|
||||
{
|
||||
messages := tt.RequestAuthGet[mglist](t, user0.AdminKey, baseUrl, "/api/v2/messages?subscription_status=all")
|
||||
foundAllStatus := langext.ArrAny(messages.Messages, func(m msg) bool { return m.Title == newMessageTitle })
|
||||
tt.AssertTrue(t, "foundAllStatus", foundAllStatus)
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user