github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/node/registration/powchain_test.go (about) 1 package registration 2 3 import ( 4 "flag" 5 "testing" 6 7 "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" 8 "github.com/prysmaticlabs/prysm/shared/params" 9 "github.com/prysmaticlabs/prysm/shared/testutil/assert" 10 "github.com/prysmaticlabs/prysm/shared/testutil/require" 11 logTest "github.com/sirupsen/logrus/hooks/test" 12 "github.com/urfave/cli/v2" 13 ) 14 15 func TestPowchainPreregistration(t *testing.T) { 16 app := cli.App{} 17 set := flag.NewFlagSet("test", 0) 18 set.String(flags.HTTPWeb3ProviderFlag.Name, "primary", "") 19 fallback := cli.StringSlice{} 20 err := fallback.Set("fallback1") 21 require.NoError(t, err) 22 err = fallback.Set("fallback2") 23 require.NoError(t, err) 24 set.Var(&fallback, flags.FallbackWeb3ProviderFlag.Name, "") 25 ctx := cli.NewContext(&app, set, nil) 26 27 address, endpoints, err := PowchainPreregistration(ctx) 28 require.NoError(t, err) 29 assert.Equal(t, params.BeaconConfig().DepositContractAddress, address) 30 assert.DeepEqual(t, []string{"primary", "fallback1", "fallback2"}, endpoints) 31 } 32 33 func TestPowchainPreregistration_EmptyWeb3Provider(t *testing.T) { 34 hook := logTest.NewGlobal() 35 app := cli.App{} 36 set := flag.NewFlagSet("test", 0) 37 set.String(flags.HTTPWeb3ProviderFlag.Name, "", "") 38 fallback := cli.StringSlice{} 39 set.Var(&fallback, flags.FallbackWeb3ProviderFlag.Name, "") 40 ctx := cli.NewContext(&app, set, nil) 41 42 _, _, err := PowchainPreregistration(ctx) 43 require.NoError(t, err) 44 assert.LogsContain(t, hook, "No ETH1 node specified to run with the beacon node") 45 } 46 47 func TestDepositContractAddress_Ok(t *testing.T) { 48 address, err := DepositContractAddress() 49 require.NoError(t, err) 50 assert.Equal(t, params.BeaconConfig().DepositContractAddress, address) 51 } 52 53 func TestDepositContractAddress_EmptyAddress(t *testing.T) { 54 params.SetupTestConfigCleanup(t) 55 config := params.BeaconConfig() 56 config.DepositContractAddress = "" 57 params.OverrideBeaconConfig(config) 58 59 _, err := DepositContractAddress() 60 assert.ErrorContains(t, "valid deposit contract is required", err) 61 } 62 63 func TestDepositContractAddress_NotHexAddress(t *testing.T) { 64 params.SetupTestConfigCleanup(t) 65 config := params.BeaconConfig() 66 config.DepositContractAddress = "abc?!" 67 params.OverrideBeaconConfig(config) 68 69 _, err := DepositContractAddress() 70 assert.ErrorContains(t, "invalid deposit contract address given", err) 71 }