1 Star 0 Fork 207

Jerry/WuKongIM

forked from WuKongDev/WuKongIM 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
api_conversation_test.go 1.66 KB
一键复制 编辑 原始数据 按行查看 历史
package server
import (
"bytes"
"net/http"
"net/http/httptest"
"testing"
"time"
"github.com/WuKongIM/WuKongIM/pkg/client"
"github.com/WuKongIM/WuKongIM/pkg/wkutil"
"github.com/stretchr/testify/assert"
)
func TestSyncUserConversation(t *testing.T) {
s := NewTestServer(t)
err := s.Start()
assert.NoError(t, err)
defer func() {
_ = s.Stop()
}()
s.MustWaitClusterReady()
// new client 1
cli1 := client.New(s.opts.External.TCPAddr, client.WithUID("u1"))
err = cli1.Connect()
assert.Nil(t, err)
err = cli1.SendMessage(client.NewChannel("u2", 1), []byte("hello"))
assert.Nil(t, err)
time.Sleep(time.Second * 1)
// 获取u1的最近会话列表
w := httptest.NewRecorder()
req, _ := http.NewRequest("POST", "/conversation/sync", bytes.NewReader([]byte(wkutil.ToJson(map[string]interface{}{
"uid": "u1",
"msg_count": 10,
}))))
s.apiServer.r.ServeHTTP(w, req)
var conversations []*syncUserConversationResp
err = wkutil.ReadJSONByByte(w.Body.Bytes(), &conversations)
assert.Nil(t, err)
assert.Equal(t, 1, len(conversations))
assert.Equal(t, "u2", conversations[0].ChannelId)
assert.Equal(t, 0, conversations[0].Unread)
// 获取u2的最近会话列表
w = httptest.NewRecorder()
req, _ = http.NewRequest("POST", "/conversation/sync", bytes.NewReader([]byte(wkutil.ToJson(map[string]interface{}{
"uid": "u2",
"msg_count": 10,
}))))
s.apiServer.r.ServeHTTP(w, req)
conversations = make([]*syncUserConversationResp, 0)
err = wkutil.ReadJSONByByte(w.Body.Bytes(), &conversations)
assert.Nil(t, err)
assert.Equal(t, 1, len(conversations))
assert.Equal(t, "u1", conversations[0].ChannelId)
assert.Equal(t, 1, conversations[0].Unread)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/JerryFox/WuKongIM.git
git@gitee.com:JerryFox/WuKongIM.git
JerryFox
WuKongIM
WuKongIM
main

搜索帮助