2026-06-29 15:46:08 +08:00

43 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package message
import (
"encoding/json"
"testing"
messagedomain "hyapp/services/activity-service/internal/domain/message"
)
func TestConfirmIMPayloadActionsExposeAppButtonLabels(t *testing.T) {
payloadJSON, err := confirmIMPayloadJSON("cfm_1", messagedomain.RoleInvitationConfirmEvent{
InvitationID: 901,
InvitationType: "host",
InviterUserID: 1001,
TargetUserID: 2002,
}, "Alice has invited you to join ABC guild", 1760000000000)
if err != nil {
t.Fatalf("confirmIMPayloadJSON failed: %v", err)
}
var payload struct {
Type string `json:"type"`
Actions []struct {
Action string `json:"action"`
Label string `json:"label"`
Text string `json:"text"`
Style string `json:"style"`
} `json:"actions"`
}
if err := json.Unmarshal([]byte(payloadJSON), &payload); err != nil {
t.Fatalf("payload must be valid JSON: %v", err)
}
if payload.Type != "im_confirm" || len(payload.Actions) != 2 {
t.Fatalf("confirm payload shape mismatch: %+v", payload)
}
// Flutter 现在线上按 label 渲染按钮text 只作为旧解析兼容字段;两个字段必须一起存在。
if payload.Actions[0].Action != "reject" || payload.Actions[0].Label != "Reject" || payload.Actions[0].Text != "Reject" || payload.Actions[0].Style != "secondary" {
t.Fatalf("reject action mismatch: %+v", payload.Actions[0])
}
if payload.Actions[1].Action != "accept" || payload.Actions[1].Label != "Accept" || payload.Actions[1].Text != "Accept" || payload.Actions[1].Style != "primary" {
t.Fatalf("accept action mismatch: %+v", payload.Actions[1])
}
}