Align GoChat with Chatwoot frontend contracts
This commit is contained in:
@@ -40,10 +40,12 @@ func setupChatwootAuthTest(t *testing.T) (*gin.Engine, *gorm.DB, *model.User) {
|
||||
AccountID: account.ID,
|
||||
Name: "Auth User",
|
||||
Email: "auth@example.com",
|
||||
UID: "auth@example.com",
|
||||
PasswordDigest: passwordDigest,
|
||||
Provider: "email",
|
||||
DisplayName: "Auth Display",
|
||||
MessageSignature: "Cheers",
|
||||
PubsubToken: "pubsub-auth-user",
|
||||
ConfirmedAt: &confirmedAt,
|
||||
Active: true,
|
||||
}
|
||||
@@ -82,14 +84,39 @@ func TestChatwootAuthSignInReturnsDeviseHeadersAndUserPayload(t *testing.T) {
|
||||
var payload map[string]any
|
||||
require.NoError(t, json.Unmarshal(w.Body.Bytes(), &payload))
|
||||
data := payload["data"].(map[string]any)
|
||||
assertChatwootAuthUserFixture(t, data)
|
||||
}
|
||||
|
||||
func assertChatwootAuthUserFixture(t *testing.T, data map[string]any) {
|
||||
t.Helper()
|
||||
|
||||
require.Equal(t, "Auth User", data["name"])
|
||||
require.Equal(t, "auth@example.com", data["email"])
|
||||
require.Equal(t, "auth@example.com", data["uid"])
|
||||
require.Equal(t, "Auth Display", data["available_name"])
|
||||
require.Equal(t, "Auth Display", data["display_name"])
|
||||
require.Equal(t, "", data["avatar_url"])
|
||||
require.Equal(t, "User", data["type"])
|
||||
require.Equal(t, "email", data["provider"])
|
||||
require.Equal(t, "pubsub-auth-user", data["pubsub_token"])
|
||||
require.Equal(t, "Cheers", data["message_signature"])
|
||||
require.Equal(t, "auth-profile-token", data["access_token"])
|
||||
require.Equal(t, "administrator", data["role"])
|
||||
require.Equal(t, map[string]any{}, data["custom_attributes"])
|
||||
require.Equal(t, map[string]any{}, data["ui_settings"])
|
||||
require.Equal(t, true, data["confirmed"])
|
||||
require.NotNil(t, data["account_id"])
|
||||
accounts := data["accounts"].([]any)
|
||||
require.Len(t, accounts, 1)
|
||||
account := accounts[0].(map[string]any)
|
||||
require.Equal(t, "Auth Account", account["name"])
|
||||
require.Equal(t, "active", account["status"])
|
||||
require.Equal(t, "invite_team", account["onboarding_step"])
|
||||
require.Equal(t, "administrator", account["role"])
|
||||
require.Equal(t, "online", account["availability"])
|
||||
require.Equal(t, "online", account["availability_status"])
|
||||
require.Equal(t, true, account["auto_offline"])
|
||||
require.Equal(t, []any{"administrator"}, account["permissions"])
|
||||
}
|
||||
|
||||
func TestChatwootAuthValidateTokenReturnsPayloadData(t *testing.T) {
|
||||
@@ -107,7 +134,7 @@ func TestChatwootAuthValidateTokenReturnsPayloadData(t *testing.T) {
|
||||
payload := body["payload"].(map[string]any)
|
||||
require.Equal(t, true, payload["success"])
|
||||
data := payload["data"].(map[string]any)
|
||||
require.Equal(t, "auth@example.com", data["email"])
|
||||
assertChatwootAuthUserFixture(t, data)
|
||||
}
|
||||
|
||||
func TestChatwootAuthSignOutRevokesRefreshSession(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user