From 9a52dbdb7b747082f86f46d9b0ae1321ebf35ae5 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Tue, 13 Oct 2026 15:21:14 +0800 Subject: [PATCH] =?UTF-8?q?test(invitation):=20=E4=BF=AE=E6=AD=A3=E8=BF=94?= =?UTF-8?q?=E5=88=A9=E5=8D=95=E6=B5=8B=E5=9B=A0=20DATETIME(0)=20=E5=B0=8F?= =?UTF-8?q?=E6=95=B0=E7=A7=92=E5=9B=9B=E8=88=8D=E4=BA=94=E5=85=A5=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E5=A4=A9=E6=95=B0=E6=8A=96=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MySQL DATETIME(0) 会把小数秒四舍五入,now-2天 可能进位成不足 48 小时而被算作 1 天,导致用例偶发失败;统一 Truncate 到整秒。 --- backend/internal/modules/invitation/repository_test.go | 4 +++- backend/internal/modules/pickup/repository_test.go | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/internal/modules/invitation/repository_test.go b/backend/internal/modules/invitation/repository_test.go index 12e070f..98860c4 100644 --- a/backend/internal/modules/invitation/repository_test.go +++ b/backend/internal/modules/invitation/repository_test.go @@ -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, diff --git a/backend/internal/modules/pickup/repository_test.go b/backend/internal/modules/pickup/repository_test.go index 86ea617..dc452cf 100644 --- a/backend/internal/modules/pickup/repository_test.go +++ b/backend/internal/modules/pickup/repository_test.go @@ -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,