github.com/iotexproject/iotex-core@v1.14.1-rc1/ioctl/newcmd/node/node_test.go (about)

     1  package node
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/golang/mock/gomock"
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/iotexproject/iotex-core/ioctl/config"
    10  	"github.com/iotexproject/iotex-core/ioctl/util"
    11  	"github.com/iotexproject/iotex-core/test/mock/mock_ioctlclient"
    12  )
    13  
    14  func TestNewNodeCmd(t *testing.T) {
    15  	require := require.New(t)
    16  	ctrl := gomock.NewController(t)
    17  	defer ctrl.Finish()
    18  	client := mock_ioctlclient.NewMockClient(ctrl)
    19  	client.EXPECT().SelectTranslation(gomock.Any()).Return("node delegate", config.English).AnyTimes()
    20  
    21  	testData := []struct {
    22  		endpoint string
    23  		insecure bool
    24  	}{
    25  		{
    26  			endpoint: "111:222:333:444:5678",
    27  			insecure: false,
    28  		},
    29  		{
    30  			endpoint: "",
    31  			insecure: true,
    32  		},
    33  	}
    34  	for _, test := range testData {
    35  		callbackEndpoint := func(cb func(*string, string, string, string)) {
    36  			cb(&test.endpoint, "endpoint", test.endpoint, "endpoint usage")
    37  		}
    38  		callbackInsecure := func(cb func(*bool, string, bool, string)) {
    39  			cb(&test.insecure, "insecure", !test.insecure, "insecure usage")
    40  		}
    41  		client.EXPECT().SetEndpointWithFlag(gomock.Any()).Do(callbackEndpoint)
    42  		client.EXPECT().SetInsecureWithFlag(gomock.Any()).Do(callbackInsecure)
    43  
    44  		cmd := NewNodeCmd(client)
    45  		result, err := util.ExecuteCmd(cmd)
    46  		require.NoError(err)
    47  		require.Contains(result, "Available Commands")
    48  
    49  		result, err = util.ExecuteCmd(cmd, "--endpoint", "0.0.0.0:1", "--insecure")
    50  		require.NoError(err)
    51  		require.Contains(result, "Available Commands")
    52  		require.Equal("0.0.0.0:1", test.endpoint)
    53  		require.True(test.insecure)
    54  	}
    55  }