Files
pika/internal/service/alert_service_expire_test.go

38 lines
1.3 KiB
Go

package service
import (
"testing"
"time"
)
func TestAgentExpireReminderDay(t *testing.T) {
now := time.Date(2026, time.August, 23, 12, 0, 0, 0, time.Local).UnixMilli()
dayMs := int64(24 * time.Hour / time.Millisecond)
tests := []struct {
name string
expireTime int64
wantDay int
wantOK bool
}{
{name: "未配置到期时间", expireTime: 0, wantDay: 0, wantOK: false},
{name: "超过七天", expireTime: now + 8*dayMs, wantDay: 0, wantOK: false},
{name: "正好七天", expireTime: now + 7*dayMs, wantDay: 7, wantOK: true},
{name: "七天窗口内", expireTime: now + 5*dayMs, wantDay: 7, wantOK: true},
{name: "正好三天", expireTime: now + 3*dayMs, wantDay: 3, wantOK: true},
{name: "三天窗口内", expireTime: now + 2*dayMs, wantDay: 3, wantOK: true},
{name: "正好一天", expireTime: now + dayMs, wantDay: 1, wantOK: true},
{name: "不足一天", expireTime: now + dayMs/2, wantDay: 1, wantOK: true},
{name: "已经到期", expireTime: now - dayMs, wantDay: 1, wantOK: true},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
gotDay, gotOK := agentExpireReminderDay(tt.expireTime, now)
if gotDay != tt.wantDay || gotOK != tt.wantOK {
t.Fatalf("agentExpireReminderDay() = (%d, %v), want (%d, %v)", gotDay, gotOK, tt.wantDay, tt.wantOK)
}
})
}
}