fix(conversations): 修复状态切换与历史会话路由
- 处理历史主键与 display_id 冲突,确保消息和状态操作命中同一会话 - 允许已软删除收件箱中的历史会话切换状态 - 解决会话后自动打开列表中的相邻会话
This commit is contained in:
@@ -799,6 +799,27 @@ func (s *ConversationCrudTestSuite) TestToggleStatus_Success() {
|
||||
assert.Equal(s.T(), "resolved", resp.Payload.CurrentStatus)
|
||||
}
|
||||
|
||||
func (s *ConversationCrudTestSuite) TestToggleStatus_SoftDeletedInboxStillUpdatesConversation() {
|
||||
s.Require().NoError(s.db.Delete(s.testInbox).Error)
|
||||
|
||||
body, _ := json.Marshal(map[string]interface{}{
|
||||
"status": "resolved",
|
||||
})
|
||||
w := httptest.NewRecorder()
|
||||
req, _ := http.NewRequest("POST", s.convURL(s.testConv.ID)+"/toggle_status", bytes.NewReader(body))
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
s.router.ServeHTTP(w, req)
|
||||
|
||||
s.Require().Equal(http.StatusOK, w.Code, w.Body.String())
|
||||
var resp struct {
|
||||
Payload struct {
|
||||
CurrentStatus string `json:"current_status"`
|
||||
} `json:"payload"`
|
||||
}
|
||||
s.Require().NoError(json.Unmarshal(w.Body.Bytes(), &resp))
|
||||
s.Equal("resolved", resp.Payload.CurrentStatus)
|
||||
}
|
||||
|
||||
func (s *ConversationCrudTestSuite) TestToggleStatus_NoStatusTogglesLikeChatwoot() {
|
||||
w := httptest.NewRecorder()
|
||||
req, _ := http.NewRequest("POST", s.convURL(s.testConv.ID)+"/toggle_status", nil)
|
||||
|
||||
Reference in New Issue
Block a user