2026-08-15 08:59:40 +08:00
|
|
|
package service
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"cmautobuy/admin/model"
|
|
|
|
|
)
|
|
|
|
|
|
2026-08-15 09:41:45 +08:00
|
|
|
func TestInnerCodeRowView_按状态区分匹配与回写能力(t *testing.T) {
|
2026-08-15 08:59:40 +08:00
|
|
|
for _, status := range []model.InnerCodeStatus{
|
2026-08-15 17:08:17 +08:00
|
|
|
model.InnerCodePending, model.InnerCodeReady, model.InnerCodeQueued, model.InnerCodeApplying,
|
2026-08-15 08:59:40 +08:00
|
|
|
model.InnerCodeUpdated, model.InnerCodeAlreadyFilled, model.InnerCodeSkipped,
|
|
|
|
|
model.InnerCodeFailed, model.InnerCodeNeedsCheck,
|
|
|
|
|
} {
|
|
|
|
|
view := innerCodeRowView(model.InnerCodeRecord{Status: status, RemoteInnerCode: "OLD"})
|
2026-08-15 09:41:45 +08:00
|
|
|
wantMatch := status == model.InnerCodePending || status == model.InnerCodeReady ||
|
|
|
|
|
status == model.InnerCodeSkipped || status == model.InnerCodeFailed
|
|
|
|
|
if view.CanMatch != wantMatch {
|
|
|
|
|
t.Errorf("status=%s CanMatch=%v", status, view.CanMatch)
|
|
|
|
|
}
|
|
|
|
|
if view.CanApply != (status == model.InnerCodeReady) {
|
|
|
|
|
t.Errorf("status=%s CanApply=%v", status, view.CanApply)
|
2026-08-15 08:59:40 +08:00
|
|
|
}
|
|
|
|
|
if view.CanRecheck != (status == model.InnerCodeNeedsCheck) {
|
|
|
|
|
t.Errorf("status=%s CanRecheck=%v", status, view.CanRecheck)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestInnerCodeStatusOptions_覆盖所有状态(t *testing.T) {
|
|
|
|
|
options := InnerCodeStatusOptions()
|
2026-08-15 17:08:17 +08:00
|
|
|
if len(options) != 10 || options[0].Value != "" {
|
2026-08-15 08:59:40 +08:00
|
|
|
t.Fatalf("状态筛选项不完整: %+v", options)
|
|
|
|
|
}
|
|
|
|
|
}
|