tenth version
Deploy / Test, build and deploy (push) Successful in 1m46s

This commit is contained in:
2026-06-08 14:58:56 +00:00
parent 20cc8506ad
commit 7626c1b831
17 changed files with 917 additions and 27 deletions
+2 -2
View File
@@ -100,8 +100,8 @@ func legalTransition(from, to domain.SystemState) bool {
}
allowed := map[domain.SystemState][]domain.SystemState{
domain.StateInit: {domain.StateSyncInstruments, domain.StateWaitExitWindow, domain.StatePlaceExitOrders, domain.StateMonitorExitOrders, domain.StateGenerateSignals, domain.StatePlaceEntryOrders, domain.StateHoldOvernight, domain.StateReconcile, domain.StateSleep},
domain.StateSyncInstruments: {domain.StateSyncMarketData},
domain.StateSyncMarketData: {domain.StateGenerateSignals},
domain.StateSyncInstruments: {domain.StateSyncMarketData, domain.StateInit},
domain.StateSyncMarketData: {domain.StateGenerateSignals, domain.StateInit},
domain.StateGenerateSignals: {domain.StateWaitEntryWindow, domain.StatePlaceEntryOrders, domain.StateHoldOvernight, domain.StateSleep},
domain.StateWaitEntryWindow: {domain.StatePlaceEntryOrders, domain.StateSleep},
domain.StatePlaceEntryOrders: {domain.StateMonitorEntryOrders, domain.StateHoldOvernight, domain.StateWaitExitWindow, domain.StatePlaceExitOrders, domain.StateMonitorExitOrders, domain.StateReconcile},
+12
View File
@@ -77,6 +77,18 @@ func TestCalendarRecoveryAllowsRestartInsideExitWindow(t *testing.T) {
}
}
func TestSyncStatesCanRecoverToInit(t *testing.T) {
ctx := context.Background()
repo := testutil.NewMemoryRepository()
system := New(repo, domain.ModePaper)
if err := system.Transition(ctx, domain.StateSyncInstruments, domain.StateInit); err != nil {
t.Fatalf("SYNC_INSTRUMENTS -> INIT should be legal recovery: %v", err)
}
if err := system.Transition(ctx, domain.StateSyncMarketData, domain.StateInit); err != nil {
t.Fatalf("SYNC_MARKET_DATA -> INIT should be legal recovery: %v", err)
}
}
func TestRecoverFromMonitorEntryHaltsOnCriticalReconciliationDiff(t *testing.T) {
ctx := context.Background()
repo := testutil.NewMemoryRepository()