代码拉取完成,页面将自动刷新
同步操作将从 WuKongDev/WuKongIM 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
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)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。