github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/crypto/keys/client/generate_test.go (about) 1 package client 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/gnolang/gno/tm2/pkg/commands" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func Test_execGenerateNormal(t *testing.T) { 12 t.Parallel() 13 14 cfg := &GenerateCfg{ 15 CustomEntropy: false, 16 } 17 18 err := execGenerate(cfg, []string{}, commands.NewTestIO()) 19 require.NoError(t, err) 20 } 21 22 func Test_execGenerateUser(t *testing.T) { 23 t.Parallel() 24 25 cfg := &GenerateCfg{ 26 CustomEntropy: true, 27 } 28 29 io := commands.NewTestIO() 30 io.SetIn(strings.NewReader("")) 31 32 err := execGenerate(cfg, []string{}, io) 33 require.Error(t, err) 34 require.Equal(t, err.Error(), "EOF") 35 36 // Try again 37 io.SetIn(strings.NewReader("Hi!\n")) 38 err = execGenerate(cfg, []string{}, io) 39 require.Error(t, err) 40 require.Equal(t, err.Error(), 41 "256-bits is 43 characters in Base-64, and 100 in Base-6. You entered 3, and probably want more") 42 43 // Now provide "good" entropy :) 44 fakeEntropy := strings.Repeat(":)", 40) + "\ny\n" // entropy + accept count 45 io.SetIn(strings.NewReader(fakeEntropy)) 46 err = execGenerate(cfg, []string{}, io) 47 require.NoError(t, err) 48 49 // Now provide "good" entropy but no answer 50 fakeEntropy = strings.Repeat(":)", 40) + "\n" // entropy + accept count 51 io.SetIn(strings.NewReader(fakeEntropy)) 52 err = execGenerate(cfg, []string{}, io) 53 require.Error(t, err) 54 55 // Now provide "good" entropy but say no 56 fakeEntropy = strings.Repeat(":)", 40) + "\nn\n" // entropy + accept count 57 io.SetIn(strings.NewReader(fakeEntropy)) 58 err = execGenerate(cfg, []string{}, io) 59 require.NoError(t, err) 60 }