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 }