github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/client/keys/list_test.go (about)

     1  package keys
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/spf13/cobra"
     7  	"github.com/spf13/viper"
     8  	"github.com/stretchr/testify/require"
     9  
    10  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/flags"
    11  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/crypto/keys"
    12  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/tests"
    13  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
    14  )
    15  
    16  func Test_runListCmd(t *testing.T) {
    17  	runningUnattended := isRunningUnattended()
    18  	type args struct {
    19  		cmd  *cobra.Command
    20  		args []string
    21  	}
    22  
    23  	cmdBasic := ListKeysCmd()
    24  
    25  	// Prepare some keybases
    26  	kbHome1, cleanUp1 := tests.NewTestCaseDir(t)
    27  	defer cleanUp1()
    28  	// Do nothing, leave home1 empty
    29  
    30  	kbHome2, cleanUp2 := tests.NewTestCaseDir(t)
    31  	defer cleanUp2()
    32  	viper.Set(flags.FlagHome, kbHome2)
    33  
    34  	mockIn, _, _ := tests.ApplyMockIO(cmdBasic)
    35  	kb, err := keys.NewKeyring(sdk.KeyringServiceName(), viper.GetString(flags.FlagKeyringBackend), viper.GetString(flags.FlagHome), mockIn)
    36  	require.NoError(t, err)
    37  	if runningUnattended {
    38  		mockIn.Reset("testpass1\ntestpass1\n")
    39  	}
    40  
    41  	_, err = kb.CreateAccount("something", tests.TestMnemonic, "", "", "", keys.Secp256k1)
    42  	require.NoError(t, err)
    43  
    44  	defer func() {
    45  		kb.Delete("something", "", false)
    46  	}()
    47  	testData := []struct {
    48  		name    string
    49  		kbDir   string
    50  		args    args
    51  		wantErr bool
    52  	}{
    53  		{"keybase: empty", kbHome1, args{cmdBasic, []string{}}, false},
    54  		{"keybase: w/key", kbHome2, args{cmdBasic, []string{}}, false},
    55  	}
    56  	for _, tt := range testData {
    57  		tt := tt
    58  		t.Run(tt.name, func(t *testing.T) {
    59  			if runningUnattended {
    60  				mockIn.Reset("testpass1\ntestpass1\n")
    61  			}
    62  			viper.Set(flagListNames, false)
    63  			viper.Set(flags.FlagHome, tt.kbDir)
    64  			if err := runListCmd(tt.args.cmd, tt.args.args); (err != nil) != tt.wantErr {
    65  				t.Errorf("runListCmd() error = %v, wantErr %v", err, tt.wantErr)
    66  			}
    67  
    68  			if runningUnattended {
    69  				mockIn.Reset("testpass1\ntestpass1\n")
    70  			}
    71  			viper.Set(flagListNames, true)
    72  			if err := runListCmd(tt.args.cmd, tt.args.args); (err != nil) != tt.wantErr {
    73  				t.Errorf("runListCmd() error = %v, wantErr %v", err, tt.wantErr)
    74  			}
    75  		})
    76  	}
    77  }