package common import ( "testing" "time" ) func TestEvaluateInactiveUserExpire(t *testing.T) { now := time.Date(2026, 5, 27, 8, 0, 0, 0, time.UTC) params := promoRuleParams{InactiveMonths: 3} tests := []struct { name string lastExpire time.Time want bool }{ { name: "permanent subscription is not inactive", lastExpire: time.UnixMilli(0), want: false, }, { name: "active subscription is not inactive", lastExpire: now.Add(time.Hour), want: false, }, { name: "expire at threshold is inactive", lastExpire: now.AddDate(0, -3, 0), want: true, }, { name: "expire before threshold is inactive", lastExpire: now.AddDate(0, -3, -1), want: true, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := evaluateInactiveUserExpire(tt.lastExpire, params, now); got != tt.want { t.Fatalf("evaluateInactiveUserExpire() = %v, want %v", got, tt.want) } }) } }