feat(parity): align Chatwoot 4.15.1 contracts

This commit is contained in:
2026-07-14 12:11:52 +08:00
parent d16bb55d91
commit c3806b701a
84 changed files with 4013 additions and 575 deletions
@@ -28,7 +28,7 @@ func setupChatwootAuthTest(t *testing.T) (*gin.Engine, *gorm.DB, *model.User) {
db, err := gorm.Open(sqlite.Open("file::memory:"), &gorm.Config{Logger: logger.Default.LogMode(logger.Silent)})
require.NoError(t, err)
require.NoError(t, db.AutoMigrate(&model.Account{}, &model.User{}, &model.AccountUser{}, &model.AccessToken{}))
require.NoError(t, db.AutoMigrate(&model.Account{}, &model.User{}, &model.AccountUser{}, &model.AccessToken{}, &model.UserSession{}))
account := &model.Account{Name: "Auth Account", Status: "active", OnboardingStep: "invite_team"}
require.NoError(t, db.Create(account).Error)
@@ -75,10 +75,11 @@ func TestRegisterAuthRoutesDoesNotExposeSelfRegistration(t *testing.T) {
}
func TestChatwootAuthSignInReturnsDeviseHeadersAndUserPayload(t *testing.T) {
router, _, _ := setupChatwootAuthTest(t)
router, db, user := setupChatwootAuthTest(t)
body, _ := json.Marshal(map[string]string{"email": " AUTH@example.com ", "password": "password123"})
req, _ := http.NewRequest(http.MethodPost, "/auth/sign_in", bytes.NewReader(body))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) Chrome/126.0.0.0 Safari/537.36")
w := httptest.NewRecorder()
router.ServeHTTP(w, req)
@@ -94,6 +95,10 @@ func TestChatwootAuthSignInReturnsDeviseHeadersAndUserPayload(t *testing.T) {
require.NoError(t, json.Unmarshal(w.Body.Bytes(), &payload))
data := payload["data"].(map[string]any)
assertChatwootAuthUserFixture(t, data)
var session model.UserSession
require.NoError(t, db.Where("user_id = ? AND client_id = ?", user.ID, w.Header().Get("client")).First(&session).Error)
require.Equal(t, "Chrome", session.BrowserName)
require.Equal(t, "Linux", session.PlatformName)
}
func assertChatwootAuthUserFixture(t *testing.T, data map[string]any) {