github.com/prysmaticlabs/prysm@v1.4.4/validator/node/node_test.go (about)

     1  package node
     2  
     3  import (
     4  	"context"
     5  	"flag"
     6  	"io/ioutil"
     7  	"os"
     8  	"path/filepath"
     9  	"testing"
    10  
    11  	"github.com/prysmaticlabs/prysm/cmd/validator/flags"
    12  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    13  	"github.com/prysmaticlabs/prysm/validator/accounts"
    14  	"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
    15  	"github.com/prysmaticlabs/prysm/validator/keymanager"
    16  	logTest "github.com/sirupsen/logrus/hooks/test"
    17  	"github.com/urfave/cli/v2"
    18  )
    19  
    20  // Test that the sharding node can build with default flag values.
    21  func TestNode_Builds(t *testing.T) {
    22  	app := cli.App{}
    23  	set := flag.NewFlagSet("test", 0)
    24  	set.String("datadir", t.TempDir()+"/datadir", "the node data directory")
    25  	dir := t.TempDir() + "/walletpath"
    26  	passwordDir := t.TempDir() + "/password"
    27  	require.NoError(t, os.MkdirAll(passwordDir, os.ModePerm))
    28  	passwordFile := filepath.Join(passwordDir, "password.txt")
    29  	walletPassword := "$$Passw0rdz2$$"
    30  	require.NoError(t, ioutil.WriteFile(
    31  		passwordFile,
    32  		[]byte(walletPassword),
    33  		os.ModePerm,
    34  	))
    35  	set.String("wallet-dir", dir, "path to wallet")
    36  	set.String("wallet-password-file", passwordFile, "path to wallet password")
    37  	set.String("keymanager-kind", "imported", "keymanager kind")
    38  	set.String("verbosity", "debug", "log verbosity")
    39  	require.NoError(t, set.Set(flags.WalletPasswordFileFlag.Name, passwordFile))
    40  	context := cli.NewContext(&app, set, nil)
    41  	_, err := accounts.CreateWalletWithKeymanager(context.Context, &accounts.CreateWalletConfig{
    42  		WalletCfg: &wallet.Config{
    43  			WalletDir:      dir,
    44  			KeymanagerKind: keymanager.Imported,
    45  			WalletPassword: walletPassword,
    46  		},
    47  	})
    48  	require.NoError(t, err)
    49  
    50  	valClient, err := NewValidatorClient(context)
    51  	require.NoError(t, err, "Failed to create ValidatorClient")
    52  	err = valClient.db.Close()
    53  	require.NoError(t, err)
    54  }
    55  
    56  // TestClearDB tests clearing the database
    57  func TestClearDB(t *testing.T) {
    58  	hook := logTest.NewGlobal()
    59  	tmp := filepath.Join(t.TempDir(), "datadirtest")
    60  	require.NoError(t, clearDB(context.Background(), tmp, true))
    61  	require.LogsContain(t, hook, "Removing database")
    62  }