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
@@ -117,6 +117,34 @@ func TestCustomAttributeDefinitionHandler_List(t *testing.T) {
assert.Len(t, resp, 2)
}
func TestCustomAttributeDefinitionHandler_ListChatwootFrontendPayload(t *testing.T) {
r, handler, db, accountID := setupCustomAttrDefHandlerTest(t)
seedCustomAttrDef(t, db, accountID, "plan", "Plan", "list", "contact")
r.GET("/api/v1/accounts/:account_id/custom_attribute_definitions", handler.List)
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", fmt.Sprintf("/api/v1/accounts/%d/custom_attribute_definitions?attribute_model=contact_attribute", accountID), nil)
r.ServeHTTP(w, req)
assert.Equal(t, http.StatusOK, w.Code)
var resp []map[string]interface{}
require.NoError(t, json.Unmarshal(w.Body.Bytes(), &resp))
require.Len(t, resp, 1)
item := resp[0]
assert.Equal(t, "plan", item["attribute_key"])
assert.Equal(t, "Plan", item["attribute_display_name"])
assert.Equal(t, "list", item["attribute_display_type"])
assert.Equal(t, "contact_attribute", item["attribute_model"])
assert.Contains(t, item, "attribute_description")
assert.Contains(t, item, "attribute_values")
assert.Contains(t, item, "default_value")
assert.Contains(t, item, "regex_pattern")
assert.Contains(t, item, "regex_cue")
assert.Contains(t, item, "created_at")
assert.Contains(t, item, "updated_at")
}
func TestCustomAttributeDefinitionHandler_List_FilterByModel(t *testing.T) {
r, handler, db, accountID := setupCustomAttrDefHandlerTest(t)