Align GoChat with Chatwoot frontend contracts

This commit is contained in:
2026-06-13 22:13:32 +08:00
parent 71abf58636
commit d884fdda0a
162 changed files with 9825 additions and 528 deletions
@@ -192,6 +192,32 @@ func (s *AgentHandlerTestSuite) TestCreateAgent() {
assert.Equal(s.T(), s.user.ID, membership.InvitedBy)
}
func (s *AgentHandlerTestSuite) TestCreateAgentChatwootFrontendPayload() {
req := service.CreateAgentRequest{
Email: "chatwoot-agent@test.com",
Name: "Chatwoot Agent",
Role: "administrator",
}
w, c := s.makeRequest("POST", "/api/v1/accounts/1/agents", req, s.account.ID, s.user.ID)
s.handler.Create(c)
assert.Equal(s.T(), http.StatusOK, w.Code)
var data map[string]interface{}
s.Require().NoError(json.Unmarshal(w.Body.Bytes(), &data))
assert.Equal(s.T(), "chatwoot-agent@test.com", data["email"])
assert.Equal(s.T(), "Chatwoot Agent", data["name"])
assert.Equal(s.T(), "Chatwoot Agent", data["available_name"])
assert.Equal(s.T(), "administrator", data["role"])
assert.Equal(s.T(), "offline", data["availability_status"])
assert.IsType(s.T(), true, data["auto_offline"])
assert.Equal(s.T(), "email", data["provider"])
assert.Contains(s.T(), data, "account_id")
assert.Contains(s.T(), data, "confirmed")
assert.Contains(s.T(), data, "thumbnail")
assert.NotContains(s.T(), data, "payload")
assert.NotContains(s.T(), data, "data")
}
func (s *AgentHandlerTestSuite) TestCreateAgentSendsWorkspaceInvitation() {
req := service.CreateAgentRequest{Email: "invite-mail@test.com", Name: "Invite Mail", Role: "agent"}
w, c := s.makeRequest("POST", "/api/v1/accounts/1/agents", req, s.account.ID, s.user.ID)