test(invitation): 修正返利单测因 DATETIME(0) 小数秒四舍五入导致的天数抖动
MySQL DATETIME(0) 会把小数秒四舍五入,now-2天 可能进位成不足 48 小时而被算作 1 天,导致用例偶发失败;统一 Truncate 到整秒。
This commit is contained in:
@@ -341,7 +341,9 @@ func TestAwardSellerSideRebateTxAwardsOncePerSource(t *testing.T) {
|
||||
t.Fatalf("创建号主失败: %v", err)
|
||||
}
|
||||
|
||||
verifiedAt := time.Now().AddDate(0, 0, -2) // 距结算 2 天 => 首月 60%
|
||||
// 距结算 2 天 => 首月 60%。
|
||||
// Truncate 到整秒:DATETIME(0) 会把小数秒四舍五入,带小数时可能进位成不足 48 小时而算作 1 天。
|
||||
verifiedAt := time.Now().AddDate(0, 0, -2).Truncate(time.Second)
|
||||
if err := db.Create(&model.UserInvitation{
|
||||
InviterID: inviter.ID,
|
||||
InviteeID: seller.ID,
|
||||
|
||||
@@ -376,7 +376,8 @@ func TestRepositoryCompletePickupAwardsSellerInvitationRebate(t *testing.T) {
|
||||
}
|
||||
|
||||
listing := seedAvailableListing(t, db, "LST-REBATE-001", "返利提号账号", false)
|
||||
verifiedAt := time.Now().AddDate(0, 0, -2) // 距提号完成 2 天 => 首月 60% 档
|
||||
// 距提号完成 2 天 => 首月 60% 档;Truncate 到整秒避免 DATETIME(0) 四舍五入影响天数计算。
|
||||
verifiedAt := time.Now().AddDate(0, 0, -2).Truncate(time.Second)
|
||||
if err := db.Create(&model.UserInvitation{
|
||||
InviterID: inviter.ID,
|
||||
InviteeID: listing.OwnerID,
|
||||
|
||||
Reference in New Issue
Block a user