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