Align GoChat with Chatwoot frontend contracts
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user