Files

55 lines
2.1 KiB
Go

package distribution
import (
"testing"
"hfb_jysh/backend/internal/model"
"hfb_jysh/backend/internal/modules/systemconfig"
)
// TestCreateSiteUsesConfiguredDefaultSettlementHoldDays 验证新建站点未显式传值时读取系统配置的默认冷却天数。
func TestCreateSiteUsesConfiguredDefaultSettlementHoldDays(t *testing.T) {
db := distributionTestDB(t)
repo := NewRepository(db)
if err := db.Create(&model.SystemConfig{
Key: systemconfig.DistributionSettlementHoldDaysKey,
Value: "3",
}).Error; err != nil {
t.Fatal(err)
}
dto, err := repo.CreateSite(t.Context(), CreateSiteRequest{SiteCode: "cfg_hold", SiteName: "配置冷却站", Domain: "cfghold.dist.com"})
if err != nil {
t.Fatalf("CreateSite err = %v", err)
}
if dto.SettlementHoldDays != 3 {
t.Fatalf("DTO settlement_hold_days = %d, want 3", dto.SettlementHoldDays)
}
var site model.DistributionSite
if err := db.Where("site_code = ?", "cfg_hold").First(&site).Error; err != nil {
t.Fatal(err)
}
if site.SettlementHoldDays != 3 {
t.Fatalf("DB settlement_hold_days = %d, want 3", site.SettlementHoldDays)
}
}
// TestCreateSiteFallsBackWhenConfigMissing 验证系统配置缺失时回落到内置默认 7 天。
func TestCreateSiteFallsBackWhenConfigMissing(t *testing.T) {
db := distributionTestDB(t)
repo := NewRepository(db)
dto, err := repo.CreateSite(t.Context(), CreateSiteRequest{SiteCode: "no_cfg_hold", SiteName: "兜底冷却站", Domain: "nocfghold.dist.com"})
if err != nil {
t.Fatalf("CreateSite err = %v", err)
}
if dto.SettlementHoldDays != systemconfig.DefaultDistributionSettlementHoldDays {
t.Fatalf("DTO settlement_hold_days = %d, want %d", dto.SettlementHoldDays, systemconfig.DefaultDistributionSettlementHoldDays)
}
var site model.DistributionSite
if err := db.Where("site_code = ?", "no_cfg_hold").First(&site).Error; err != nil {
t.Fatal(err)
}
if site.SettlementHoldDays != systemconfig.DefaultDistributionSettlementHoldDays {
t.Fatalf("DB settlement_hold_days = %d, want %d", site.SettlementHoldDays, systemconfig.DefaultDistributionSettlementHoldDays)
}
}