github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/crypto/keys/client/list_test.go (about)

     1  package client
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/gnolang/gno/tm2/pkg/commands"
     7  	"github.com/gnolang/gno/tm2/pkg/crypto/keys"
     8  	"github.com/gnolang/gno/tm2/pkg/testutils"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func Test_execList(t *testing.T) {
    13  	// Prepare some keybases
    14  	kbHome1, cleanUp1 := testutils.NewTestCaseDir(t)
    15  	kbHome2, cleanUp2 := testutils.NewTestCaseDir(t)
    16  	defer cleanUp1()
    17  	defer cleanUp2()
    18  	// leave home1 and home2 empty
    19  
    20  	// initialize test keybase.
    21  	kb, err := keys.NewKeyBaseFromDir(kbHome2)
    22  	assert.NoError(t, err)
    23  	_, err = kb.CreateAccount("something", testMnemonic, "", "", 0, 0)
    24  	assert.NoError(t, err)
    25  
    26  	testData := []struct {
    27  		name    string
    28  		kbDir   string
    29  		args    []string
    30  		wantErr bool
    31  	}{
    32  		{"invalid keybase", "/dev/null", []string{}, true},
    33  		{"keybase: empty", kbHome1, []string{}, false},
    34  		{"keybase: w/key", kbHome2, []string{}, false},
    35  	}
    36  	for _, tt := range testData {
    37  		t.Run(tt.name, func(t *testing.T) {
    38  			// Set current home
    39  			cfg := &BaseCfg{
    40  				BaseOptions: BaseOptions{
    41  					Home: tt.kbDir,
    42  				},
    43  			}
    44  
    45  			args := tt.args
    46  			if err := execList(cfg, args, commands.NewTestIO()); (err != nil) != tt.wantErr {
    47  				t.Errorf("listApp() error = %v, wantErr %v", err, tt.wantErr)
    48  			}
    49  		})
    50  	}
    51  }