Files
CosmicClash/server/api/store_adapters_test.go
T
2026-09-01 10:29:50 +01:00

41 lines
1.3 KiB
Go

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")
}
}