// 功能描述:验证工作人员资质预检原因判定。 // 版本: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) } }) } }