Files
platforms/backend/api/internal/logic/client/staff/auth_test.go
2026-09-05 20:17:07 +08:00

37 lines
1.4 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.
// 功能描述:验证工作人员资质预检原因判定。
// 版本1.0.0
package staff
import (
"testing"
"time"
common "git.apinb.com/heqiapp/platforms/backend/api/internal/logic/common"
"git.apinb.com/heqiapp/platforms/backend/api/internal/models"
)
// TestEvaluateCredential 验证缺失、停用、过期和有效资质均返回稳定原因码。
func TestEvaluateCredential(t *testing.T) {
now := time.Date(2026, 9, 5, 12, 0, 0, 0, time.UTC)
past, future := now.Add(-time.Hour), now.Add(time.Hour)
tests := []struct {
name string
credentials []models.StaffCredential
valid bool
reason string
}{
{name: "缺失", reason: "missing"},
{name: "停用", credentials: []models.StaffCredential{{Entity: models.Entity{ID: 1, Status: common.StatusDisable}}}, reason: "disabled"},
{name: "过期", credentials: []models.StaffCredential{{Entity: models.Entity{ID: 2, Status: common.StatusEnable}, ExpiredAt: &past}}, reason: "expired"},
{name: "有效", credentials: []models.StaffCredential{{Entity: models.Entity{ID: 3, Status: common.StatusEnable}, ExpiredAt: &future}}, valid: true, reason: "valid"},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
_, valid, reason := evaluateCredential(test.credentials, now)
if valid != test.valid || reason != test.reason {
t.Fatalf("valid=%v reason=%q期望 valid=%v reason=%q", valid, reason, test.valid, test.reason)
}
})
}
}