From 487dc3b93c8c96f8f5f186746f8f3876bcbf5ec5 Mon Sep 17 00:00:00 2001 From: Julian Strobl Date: Fri, 15 Dec 2023 11:32:29 +0100 Subject: [PATCH] [test] Check `TxResponse` on every `ExecTestCLICmd()` (#235) Just a small improvement to not forget to check the error code of the transaction and not only from the command itself. Signed-off-by: Julian Strobl --- tests/e2e/asset/suite.go | 12 +++--------- tests/e2e/dao/suite.go | 6 ++---- tests/e2e/machine/suite.go | 23 +++++------------------ testutil/cli/cmd.go | 24 ++++++++++++++++++++---- 4 files changed, 30 insertions(+), 35 deletions(-) diff --git a/tests/e2e/asset/suite.go b/tests/e2e/asset/suite.go index de0a513..017b08b 100644 --- a/tests/e2e/asset/suite.go +++ b/tests/e2e/asset/suite.go @@ -62,11 +62,8 @@ func (s *E2ETestSuite) SetupSuite() { out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, bank.NewSendTxCmd(), args) s.Require().NoError(err) - txResponse, err := clitestutil.GetTxResponseFromOut(out) - s.Require().NoError(err) - s.Require().NoError(s.network.WaitForNextBlock()) - rawLog, err := clitestutil.GetRawLogFromTxResponse(val, txResponse) + rawLog, err := clitestutil.GetRawLogFromTxOut(val, out) s.Require().NoError(err) assert.Contains(s.T(), rawLog, "cosmos.bank.v1beta1.MsgSend") @@ -104,11 +101,8 @@ func (s *E2ETestSuite) SetupSuite() { out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, machinecli.CmdAttestMachine(), args) s.Require().NoError(err) - txResponse, err = clitestutil.GetTxResponseFromOut(out) - s.Require().NoError(err) - s.Require().NoError(s.network.WaitForNextBlock()) - rawLog, err = clitestutil.GetRawLogFromTxResponse(val, txResponse) + rawLog, err = clitestutil.GetRawLogFromTxOut(val, out) s.Require().NoError(err) assert.Contains(s.T(), rawLog, "planetmintgo.machine.MsgAttestMachine") @@ -155,7 +149,7 @@ func (s *E2ETestSuite) TestNotarizeAsset() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) - rawLog, err := clitestutil.GetRawLogFromTxResponse(val, txResponse) + rawLog, err := clitestutil.GetRawLogFromTxOut(val, out) if !tc.expectCheckTxErr { s.Require().NoError(err) diff --git a/tests/e2e/dao/suite.go b/tests/e2e/dao/suite.go index 8911f3f..581808a 100644 --- a/tests/e2e/dao/suite.go +++ b/tests/e2e/dao/suite.go @@ -182,7 +182,7 @@ func (s *E2ETestSuite) TestMintToken() { s.Require().Equal(int(0), int(txResponse.Code)) s.Require().NoError(s.network.WaitForNextBlock()) - rawLog, err := clitestutil.GetRawLogFromTxResponse(val, txResponse) + rawLog, err := clitestutil.GetRawLogFromTxOut(val, out) s.Require().NoError(err) assert.Contains(s.T(), rawLog, "planetmintgo.dao.MsgMintToken") @@ -222,9 +222,7 @@ func (s *E2ETestSuite) TestMintToken() { string(mrJSON), } - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, daocli.CmdMintToken(), args) - s.Require().NoError(err) - + out, _ = clitestutil.ExecTestCLICmd(val.ClientCtx, daocli.CmdMintToken(), args) txResponse, err = clitestutil.GetTxResponseFromOut(out) s.Require().NoError(err) s.Require().Equal(int(2), int(txResponse.Code)) diff --git a/tests/e2e/machine/suite.go b/tests/e2e/machine/suite.go index 337997b..d557297 100644 --- a/tests/e2e/machine/suite.go +++ b/tests/e2e/machine/suite.go @@ -55,11 +55,8 @@ func (s *E2ETestSuite) SetupSuite() { out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, bank.NewSendTxCmd(), args) s.Require().NoError(err) - txResponse, err := clitestutil.GetTxResponseFromOut(out) - s.Require().NoError(err) - s.Require().NoError(s.network.WaitForNextBlock()) - rawLog, err := clitestutil.GetRawLogFromTxResponse(val, txResponse) + rawLog, err := clitestutil.GetRawLogFromTxOut(val, out) s.Require().NoError(err) assert.Contains(s.T(), rawLog, "cosmos.bank.v1beta1.MsgSend") @@ -90,11 +87,8 @@ func (s *E2ETestSuite) TestAttestMachine() { out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, machinecli.CmdRegisterTrustAnchor(), args) s.Require().NoError(err) - txResponse, err := clitestutil.GetTxResponseFromOut(out) - s.Require().NoError(err) - s.Require().NoError(s.network.WaitForNextBlock()) - rawLog, err := clitestutil.GetRawLogFromTxResponse(val, txResponse) + rawLog, err := clitestutil.GetRawLogFromTxOut(val, out) s.Require().NoError(err) assert.Contains(s.T(), rawLog, "planetmintgo.machine.MsgRegisterTrustAnchor") @@ -118,11 +112,8 @@ func (s *E2ETestSuite) TestAttestMachine() { out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, machinecli.CmdAttestMachine(), args) s.Require().NoError(err) - txResponse, err = clitestutil.GetTxResponseFromOut(out) - s.Require().NoError(err) - s.Require().NoError(s.network.WaitForNextBlock()) - rawLog, err = clitestutil.GetRawLogFromTxResponse(val, txResponse) + rawLog, err = clitestutil.GetRawLogFromTxOut(val, out) s.Require().NoError(err) assert.Contains(s.T(), rawLog, "planetmintgo.machine.MsgAttestMachine") @@ -157,9 +148,7 @@ func (s *E2ETestSuite) TestInvalidAttestMachine() { string(machineJSON), } - out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, machinecli.CmdAttestMachine(), args) - s.Require().NoError(err) - + out, _ := clitestutil.ExecTestCLICmd(val.ClientCtx, machinecli.CmdAttestMachine(), args) txResponse, err := clitestutil.GetTxResponseFromOut(out) s.Require().NoError(err) s.Require().Equal(int(txResponse.Code), int(4)) @@ -177,9 +166,7 @@ func (s *E2ETestSuite) TestInvalidAttestMachine() { string(machineJSON), } - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, machinecli.CmdAttestMachine(), args) - s.Require().NoError(err) - + out, _ = clitestutil.ExecTestCLICmd(val.ClientCtx, machinecli.CmdAttestMachine(), args) txResponse, err = clitestutil.GetTxResponseFromOut(out) s.Require().NoError(err) s.Require().Equal(int(txResponse.Code), int(3)) diff --git a/testutil/cli/cmd.go b/testutil/cli/cmd.go index a49d0fa..a5de848 100644 --- a/testutil/cli/cmd.go +++ b/testutil/cli/cmd.go @@ -3,9 +3,11 @@ package cli import ( "context" "encoding/json" - "github.com/planetmint/planetmint-go/testutil" + "errors" "regexp" + "github.com/planetmint/planetmint-go/testutil" + "github.com/cosmos/cosmos-sdk/testutil/network" sdk "github.com/cosmos/cosmos-sdk/types" authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" @@ -29,6 +31,16 @@ func ExecTestCLICmd(clientCtx client.Context, cmd *cobra.Command, extraArgs []st return out, err } + txResponse, err := GetTxResponseFromOut(out) + if err != nil { + return out, err + } + + if txResponse.Code != 0 { + err = errors.New(txResponse.RawLog) + return out, err + } + return out, nil } @@ -54,13 +66,17 @@ func GetTxResponseFromOut(out testutil.BufferWriter) (sdk.TxResponse, error) { return txResponse, nil } -// GetRawLogFromTxResponse queries the TxHash of txResponse from the chain and returns the RawLog from the answer. -func GetRawLogFromTxResponse(val *network.Validator, txResponse sdk.TxResponse) (string, error) { +// GetRawLogFromTxOut queries the TxHash of out from the chain and returns the RawLog from the answer. +func GetRawLogFromTxOut(val *network.Validator, out testutil.BufferWriter) (string, error) { + txResponse, err := GetTxResponseFromOut(out) + if err != nil { + return "", err + } args := []string{ txResponse.TxHash, } - out, err := ExecTestCLICmd(val.ClientCtx, authcmd.QueryTxCmd(), args) + out, err = ExecTestCLICmd(val.ClientCtx, authcmd.QueryTxCmd(), args) if err != nil { return "", err }