eighth version

This commit is contained in:
2026-06-08 11:55:36 +00:00
parent ebea17b411
commit e8b7d8e27c
15 changed files with 431 additions and 42 deletions
+31
View File
@@ -27,6 +27,23 @@ func TestValidateAllowsCancelCountsFreeOrderPolicy(t *testing.T) {
}
}
func TestValidateLiveTradeRequiresPreconditions(t *testing.T) {
cfg := minimalBrokerConfig(domain.ModeLiveTrade)
cfg.Live.TradeAck = liveTradeAck
err := cfg.Validate()
if err == nil || !strings.Contains(err.Error(), "LIVE_READONLY_DAYS") {
t.Fatalf("Validate err=%v, want live_trade readonly precondition", err)
}
}
func TestValidateLiveTradeAcceptsAllPreconditions(t *testing.T) {
cfg := minimalBrokerConfig(domain.ModeLiveTrade)
cfg.Live = validLiveTradeConfig()
if err := cfg.Validate(); err != nil {
t.Fatalf("Validate live_trade preconditions: %v", err)
}
}
func minimalBrokerConfig(mode domain.Mode) Config {
return Config{
App: AppConfig{
@@ -64,6 +81,20 @@ func minimalBrokerConfig(mode domain.Mode) Config {
}
}
func validLiveTradeConfig() LiveConfig {
return LiveConfig{
TradeAck: liveTradeAck,
ReadonlyDays: minLiveReadonlyDays,
PaperDays: minPaperDays,
SandboxDays: minSandboxDays,
CommissionWhitelistChecked: true,
TelegramTested: true,
KillSwitchTested: true,
ServerTimeChecked: true,
SmallCapital: true,
}
}
func mustTOD(raw string) timeutil.TimeOfDay {
tod, err := timeutil.ParseTimeOfDay(raw)
if err != nil {