fix(HH-528): persist auto resolve message (#116)
Co-authored-by: Rogee <rogee@ipao.vip>
This commit is contained in:
@@ -469,7 +469,7 @@ func serializeAccountSettings(account *model.Account) map[string]any {
|
||||
settings := map[string]any{
|
||||
"auto_resolve_after": account.AutoResolveDuration,
|
||||
"auto_resolve_duration": account.AutoResolveDuration,
|
||||
"auto_resolve_message": "",
|
||||
"auto_resolve_message": account.AutoResolveMessage,
|
||||
"auto_resolve_ignore_waiting": account.AutoResolveIgnoreWaiting,
|
||||
"audio_transcriptions": account.AudioTranscriptions,
|
||||
"auto_resolve_label": account.AutoResolveLabel,
|
||||
|
||||
@@ -349,10 +349,11 @@ func (s *AccountHandlerTestSuite) TestPatchUpdate_AudioTranscriptions() {
|
||||
|
||||
func (s *AccountHandlerTestSuite) TestPatchUpdate_AutoResolvePreferences() {
|
||||
acc := s.seedAccount("Auto Resolve Preferences")
|
||||
accountURL := "/api/v1/accounts/" + strconv.FormatUint(uint64(acc.ID), 10)
|
||||
|
||||
body := `{"auto_resolve_after":15,"auto_resolve_ignore_waiting":true,"auto_resolve_label":"vip"}`
|
||||
body := `{"auto_resolve_after":15,"auto_resolve_ignore_waiting":true,"auto_resolve_label":"vip","auto_resolve_message":"We will close this conversation now."}`
|
||||
w := httptest.NewRecorder()
|
||||
req, _ := http.NewRequest("PATCH", "/api/v1/accounts/"+strconv.FormatUint(uint64(acc.ID), 10), bytes.NewBufferString(body))
|
||||
req, _ := http.NewRequest("PATCH", accountURL, bytes.NewBufferString(body))
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
s.router.ServeHTTP(w, req)
|
||||
|
||||
@@ -362,16 +363,25 @@ func (s *AccountHandlerTestSuite) TestPatchUpdate_AutoResolvePreferences() {
|
||||
assert.Equal(s.T(), float64(15), settings["auto_resolve_after"])
|
||||
assert.Equal(s.T(), true, settings["auto_resolve_ignore_waiting"])
|
||||
assert.Equal(s.T(), "vip", settings["auto_resolve_label"])
|
||||
assert.Equal(s.T(), "We will close this conversation now.", settings["auto_resolve_message"])
|
||||
|
||||
var stored model.Account
|
||||
require.NoError(s.T(), s.db.First(&stored, acc.ID).Error)
|
||||
assert.Equal(s.T(), 15, stored.AutoResolveDuration)
|
||||
assert.True(s.T(), stored.AutoResolveIgnoreWaiting)
|
||||
assert.Equal(s.T(), "vip", stored.AutoResolveLabel)
|
||||
assert.Equal(s.T(), "We will close this conversation now.", stored.AutoResolveMessage)
|
||||
|
||||
w = httptest.NewRecorder()
|
||||
req, _ = http.NewRequest("GET", accountURL, nil)
|
||||
s.router.ServeHTTP(w, req)
|
||||
require.Equal(s.T(), http.StatusOK, w.Code)
|
||||
settings = s.unmarshalResponse(w)["settings"].(map[string]interface{})
|
||||
assert.Equal(s.T(), "We will close this conversation now.", settings["auto_resolve_message"])
|
||||
|
||||
body = `{"auto_resolve_after":0,"auto_resolve_ignore_waiting":false,"auto_resolve_label":""}`
|
||||
w = httptest.NewRecorder()
|
||||
req, _ = http.NewRequest("PATCH", "/api/v1/accounts/"+strconv.FormatUint(uint64(acc.ID), 10), bytes.NewBufferString(body))
|
||||
req, _ = http.NewRequest("PATCH", accountURL, bytes.NewBufferString(body))
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
s.router.ServeHTTP(w, req)
|
||||
|
||||
@@ -380,6 +390,23 @@ func (s *AccountHandlerTestSuite) TestPatchUpdate_AutoResolvePreferences() {
|
||||
assert.Zero(s.T(), stored.AutoResolveDuration)
|
||||
assert.False(s.T(), stored.AutoResolveIgnoreWaiting)
|
||||
assert.Empty(s.T(), stored.AutoResolveLabel)
|
||||
assert.Equal(s.T(), "We will close this conversation now.", stored.AutoResolveMessage)
|
||||
|
||||
body = `{"auto_resolve_message":""}`
|
||||
w = httptest.NewRecorder()
|
||||
req, _ = http.NewRequest("PATCH", accountURL, bytes.NewBufferString(body))
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
s.router.ServeHTTP(w, req)
|
||||
require.Equal(s.T(), http.StatusOK, w.Code)
|
||||
settings = s.unmarshalResponse(w)["settings"].(map[string]interface{})
|
||||
assert.Empty(s.T(), settings["auto_resolve_message"])
|
||||
|
||||
w = httptest.NewRecorder()
|
||||
req, _ = http.NewRequest("GET", accountURL, nil)
|
||||
s.router.ServeHTTP(w, req)
|
||||
require.Equal(s.T(), http.StatusOK, w.Code)
|
||||
settings = s.unmarshalResponse(w)["settings"].(map[string]interface{})
|
||||
assert.Empty(s.T(), settings["auto_resolve_message"])
|
||||
}
|
||||
|
||||
func (s *AccountHandlerTestSuite) TestPatchUpdate_ChatwootGeneralSettingsPayload() {
|
||||
|
||||
Reference in New Issue
Block a user