github.com/cosmos/cosmos-sdk@v0.50.10/x/genutil/utils_test.go (about) 1 package genutil 2 3 import ( 4 "encoding/json" 5 "os" 6 "path/filepath" 7 "testing" 8 "time" 9 10 "github.com/cometbft/cometbft/config" 11 tmed25519 "github.com/cometbft/cometbft/crypto/ed25519" 12 "github.com/cometbft/cometbft/privval" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestExportGenesisFileWithTime(t *testing.T) { 17 t.Parallel() 18 19 fname := filepath.Join(t.TempDir(), "genesis.json") 20 21 require.NoError(t, ExportGenesisFileWithTime(fname, "test", nil, json.RawMessage(`{"account_owner": "Bob"}`), time.Now())) 22 } 23 24 func TestInitializeNodeValidatorFilesFromMnemonic(t *testing.T) { 25 t.Parallel() 26 27 cfg := config.TestConfig() 28 cfg.RootDir = t.TempDir() 29 require.NoError(t, os.MkdirAll(filepath.Join(cfg.RootDir, "config"), 0o755)) 30 31 tests := []struct { 32 name string 33 mnemonic string 34 expError bool 35 }{ 36 { 37 name: "invalid mnemonic returns error", 38 mnemonic: "side video kiss hotel essence", 39 expError: true, 40 }, 41 { 42 name: "empty mnemonic does not return error", 43 mnemonic: "", 44 expError: false, 45 }, 46 { 47 name: "valid mnemonic does not return error", 48 mnemonic: "side video kiss hotel essence door angle student degree during vague adjust submit trick globe muscle frozen vacuum artwork million shield bind useful wave", 49 expError: false, 50 }, 51 } 52 53 for _, tt := range tests { 54 tt := tt 55 t.Run(tt.name, func(t *testing.T) { 56 _, _, err := InitializeNodeValidatorFilesFromMnemonic(cfg, tt.mnemonic) 57 58 if tt.expError { 59 require.Error(t, err) 60 } else { 61 require.NoError(t, err) 62 63 if tt.mnemonic != "" { 64 actualPVFile := privval.LoadFilePV(cfg.PrivValidatorKeyFile(), cfg.PrivValidatorStateFile()) 65 expectedPrivateKey := tmed25519.GenPrivKeyFromSecret([]byte(tt.mnemonic)) 66 expectedFile := privval.NewFilePV(expectedPrivateKey, cfg.PrivValidatorKeyFile(), cfg.PrivValidatorStateFile()) 67 require.Equal(t, expectedFile, actualPVFile) 68 } 69 } 70 }) 71 } 72 }