x/auth/signing/direct: increase test coverage to 100% from 83.3% (#6731)

Ensure that all known routes for GetSignBytes are explored for
DirectHandler.
This commit is contained in:
Emmanuel T Odeke 2020-07-16 00:48:36 -07:00 committed by GitHub
parent a65bcdd7e5
commit 1d711f537c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 36 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package direct_test
import (
"fmt"
"testing"
"github.com/cosmos/cosmos-sdk/x/auth/tx"
@ -137,3 +138,38 @@ func TestDirectModeHandler(t *testing.T) {
require.NoError(t, err)
require.NotEqual(t, expectedSignBytes, signBytes)
}
func TestDirectModeHandler_nonDIRECT_MODE(t *testing.T) {
invalidModes := []signingtypes.SignMode{
signingtypes.SignMode_SIGN_MODE_TEXTUAL,
signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON,
signingtypes.SignMode_SIGN_MODE_UNSPECIFIED,
}
for _, invalidMode := range invalidModes {
t.Run(invalidMode.String(), func(t *testing.T) {
var dh direct.ModeHandler
var signingData signing.SignerData
_, err := dh.GetSignBytes(invalidMode, signingData, nil)
require.Error(t, err)
wantErr := fmt.Errorf("expected %s, got %s", signingtypes.SignMode_SIGN_MODE_DIRECT, invalidMode)
require.Equal(t, err, wantErr)
})
}
}
type nonProtoTx int
func (npt *nonProtoTx) GetMsgs() []sdk.Msg { return nil }
func (npt *nonProtoTx) ValidateBasic() error { return nil }
var _ sdk.Tx = (*nonProtoTx)(nil)
func TestDirectModeHandler_nonProtoTx(t *testing.T) {
var dh direct.ModeHandler
var signingData signing.SignerData
tx := new(nonProtoTx)
_, err := dh.GetSignBytes(signingtypes.SignMode_SIGN_MODE_DIRECT, signingData, tx)
require.Error(t, err)
wantErr := fmt.Errorf("can only get direct sign bytes for a ProtoTx, got %T", tx)
require.Equal(t, err, wantErr)
}