github.com/Finschia/finschia-sdk@v0.49.1/x/auth/ante/ext_test.go (about)

     1  package ante_test
     2  
     3  import (
     4  	"github.com/Finschia/finschia-sdk/codec/types"
     5  	"github.com/Finschia/finschia-sdk/testutil/testdata"
     6  	sdk "github.com/Finschia/finschia-sdk/types"
     7  	"github.com/Finschia/finschia-sdk/x/auth/ante"
     8  	"github.com/Finschia/finschia-sdk/x/auth/tx"
     9  )
    10  
    11  func (suite *AnteTestSuite) TestRejectExtensionOptionsDecorator() {
    12  	suite.SetupTest(true) // setup
    13  	suite.txBuilder = suite.clientCtx.TxConfig.NewTxBuilder()
    14  
    15  	reod := ante.NewRejectExtensionOptionsDecorator()
    16  	antehandler := sdk.ChainAnteDecorators(reod)
    17  
    18  	// no extension options should not trigger an error
    19  	theTx := suite.txBuilder.GetTx()
    20  	_, err := antehandler(suite.ctx, theTx, false)
    21  	suite.Require().NoError(err)
    22  
    23  	extOptsTxBldr, ok := suite.txBuilder.(tx.ExtensionOptionsTxBuilder)
    24  	if !ok {
    25  		// if we can't set extension options, this decorator doesn't apply and we're done
    26  		return
    27  	}
    28  
    29  	// setting any extension option should cause an error
    30  	any, err := types.NewAnyWithValue(testdata.NewTestMsg())
    31  	suite.Require().NoError(err)
    32  	extOptsTxBldr.SetExtensionOptions(any)
    33  	theTx = suite.txBuilder.GetTx()
    34  	_, err = antehandler(suite.ctx, theTx, false)
    35  	suite.Require().EqualError(err, "unknown extension options")
    36  }