package genesis import ( "testing" "github.com/OffchainLabs/prysm/v7/beacon-chain/state" ) // StoreDuringTest temporarily replaces the package level GenesisData with the provided GenesisData func StoreDuringTest(t *testing.T, gd GenesisData) { prev := getPkgVar() t.Cleanup(func() { setPkgVar(prev, prev.initialized) }) setPkgVar(gd, true) } // StoreEmbeddedDuringTest sets the named embedded genesis file as the genesis data for the lifecycle of the current test. func StoreEmbeddedDuringTest(t *testing.T, name string) { gd, ok := embeddedGenesisData[name] if !ok { t.Fatalf("embedded genesis data for %s not found", name) } StoreDuringTest(t, gd) } // StoreStateDuringTest creates and stores genesis data from a beacon state for the duration of a test. // This is essential for testing components that depend on genesis information being globally available, // The function automatically cleans up after the test completes, restoring the previous // genesis state to prevent test interference. Without this setup, many blockchain // components would fail during testing due to uninitialized genesis data. func StoreStateDuringTest(t *testing.T, st state.BeaconState) { gd, err := newGenesisData(st, "testdata") if err != nil { t.Fatalf("failed to create genesis data: %v", err) } StoreDuringTest(t, gd) }