package api import ( "context" "testing" "time" "github.com/cosmic-clash/cosmic-clash/server/domain" ) func TestAssignmentProviderFromStorePreservesPlayerScopedRecoveryBoundary(t *testing.T) { provider := AssignmentProviderFromStore(nil) if provider == nil { t.Fatal("store provider was not created") } if _, err := provider(context.Background(), "player-1", "match-1", time.Unix(1000, 0)); err == nil { t.Fatal("nil store was treated as an available assignment source") } } func TestProposalProviderFromStoreFailsClosedWithoutDatabase(t *testing.T) { provider := ProposalProviderFromStore(nil) if provider == nil { t.Fatal("proposal store provider was not created") } if _, err := provider.Get(context.Background(), "player-1", "proposal-1", time.Unix(1000, 0)); err == nil { t.Fatal("nil store was treated as an available proposal source") } } func TestProposalPromoterFromStoreFailsClosedWithoutDatabase(t *testing.T) { promoter := ProposalPromoterFromStore(nil) if promoter == nil { t.Fatal("proposal promoter was not created") } proposal := domain.Proposal{ProposalID: "proposal-1", State: domain.Accepted} if err := promoter.Promote(context.Background(), proposal, time.Unix(1000, 0)); err == nil { t.Fatal("nil store was treated as an available proposal promoter") } }