github.com/KiraCore/sekai@v0.3.43/x/gov/client/cli/cli_permission_test.go (about)

     1  package cli_test
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/KiraCore/sekai/x/gov/client/cli"
     7  	"github.com/KiraCore/sekai/x/gov/types"
     8  	stakingcli "github.com/KiraCore/sekai/x/staking/client/cli"
     9  	"github.com/cosmos/cosmos-sdk/client/flags"
    10  	"github.com/cosmos/cosmos-sdk/crypto/hd"
    11  	"github.com/cosmos/cosmos-sdk/crypto/keyring"
    12  	clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli"
    13  	sdk "github.com/cosmos/cosmos-sdk/types"
    14  )
    15  
    16  func (s IntegrationTestSuite) TestGetTxSetWhitelistPermissions() {
    17  	val := s.network.Validators[0]
    18  	cmd := cli.GetTxSetWhitelistPermissions()
    19  
    20  	// We create some random address where we will give perms.
    21  	addr, err := sdk.AccAddressFromBech32("kira15ky9du8a2wlstz6fpx3p4mqpjyrm5cgqzp4f3d")
    22  	s.Require().NoError(err)
    23  
    24  	clientCtx := val.ClientCtx.WithOutputFormat("json")
    25  	out, err := clitestutil.ExecTestCLICmd(
    26  		clientCtx,
    27  		cmd,
    28  		[]string{
    29  			fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()),
    30  			fmt.Sprintf("--%s=%s", stakingcli.FlagAddr, addr.String()),
    31  			fmt.Sprintf("--%s=%s", cli.FlagPermission, "1"),
    32  			fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
    33  			fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync),
    34  			fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.DefaultDenom, sdk.NewInt(100))).String()),
    35  		},
    36  	)
    37  	s.Require().NoError(err)
    38  
    39  	err = s.network.WaitForNextBlock()
    40  	s.Require().NoError(err)
    41  
    42  	// We check if the user has the permissions
    43  	cmd = cli.GetCmdQueryPermissions()
    44  
    45  	out, err = clitestutil.ExecTestCLICmd(
    46  		clientCtx,
    47  		cmd,
    48  		[]string{
    49  			addr.String(),
    50  		},
    51  	)
    52  	s.Require().NoError(err)
    53  
    54  	var perms types.Permissions
    55  	clientCtx.Codec.MustUnmarshalJSON(out.Bytes(), &perms)
    56  }
    57  
    58  func (s IntegrationTestSuite) TestGetTxSetBlacklistPermissions() {
    59  	val := s.network.Validators[0]
    60  
    61  	// We create some random address where we will give perms.
    62  	addr, err := sdk.AccAddressFromBech32("kira1alzyfq40zjsveat87jlg8jxetwqmr0a29sgd0f")
    63  	s.Require().NoError(err)
    64  
    65  	clientCtx := val.ClientCtx.WithOutputFormat("json")
    66  
    67  	out, err := clitestutil.ExecTestCLICmd(
    68  		clientCtx,
    69  		cli.GetTxSetBlacklistPermissions(),
    70  		[]string{
    71  			fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()),
    72  			fmt.Sprintf("--%s=%s", stakingcli.FlagAddr, addr.String()),
    73  			fmt.Sprintf("--%s=%s", cli.FlagPermission, "1"),
    74  			fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
    75  			fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync),
    76  			fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.DefaultDenom, sdk.NewInt(100))).String()),
    77  		},
    78  	)
    79  	s.Require().NoError(err)
    80  	s.T().Logf("error %s", out.String())
    81  
    82  	err = s.network.WaitForNextBlock()
    83  	s.Require().NoError(err)
    84  
    85  }
    86  
    87  func (s IntegrationTestSuite) TestGetTxSetWhitelistPermissions_WithUserThatDoesNotHaveSetPermissions() {
    88  	val := s.network.Validators[0]
    89  
    90  	// We create some random address where we will give perms.
    91  	newAccount, _, err := val.ClientCtx.Keyring.NewMnemonic("test", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1)
    92  	s.Require().NoError(err)
    93  
    94  	addr, err := newAccount.GetAddress()
    95  	s.Require().NoError(err)
    96  	s.SendValue(val.ClientCtx, val.Address, addr, sdk.NewCoin(s.cfg.DefaultDenom, sdk.NewInt(100)))
    97  
    98  	// Now we try to set permissions with a user that does not have.
    99  	cmd := cli.GetTxSetWhitelistPermissions()
   100  	clientCtx := val.ClientCtx
   101  	_, _ = clitestutil.ExecTestCLICmd(clientCtx, cmd, []string{
   102  		fmt.Sprintf("--%s=%s", flags.FlagFrom, addr.String()),
   103  		fmt.Sprintf("--%s=%s", stakingcli.FlagAddr, val.Address.String()),
   104  		fmt.Sprintf("--%s=%s", cli.FlagPermission, "1"),
   105  		fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
   106  		fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync),
   107  		fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.DefaultDenom, sdk.NewInt(100))).String()),
   108  	})
   109  }