github.com/Finschia/finschia-sdk@v0.48.1/x/foundation/keeper/internal/exec_test.go (about)

     1  package internal_test
     2  
     3  func (s *KeeperTestSuite) TestExec() {
     4  	testCases := map[string]struct {
     5  		proposalID uint64
     6  		valid      bool
     7  	}{
     8  		"valid exec": {
     9  			proposalID: s.votedProposal,
    10  			valid:      true,
    11  		},
    12  		"not enough votes": {
    13  			proposalID: s.activeProposal,
    14  			valid:      true,
    15  		},
    16  		"invalid msg in proposal": {
    17  			proposalID: s.invalidProposal,
    18  			valid:      true,
    19  		},
    20  		"no handler msg in proposal": {
    21  			proposalID: s.noHandlerProposal,
    22  			valid:      true,
    23  		},
    24  		"no such proposal": {
    25  			proposalID: s.nextProposal,
    26  		},
    27  		"withdrawn proposal": {
    28  			proposalID: s.withdrawnProposal,
    29  		},
    30  	}
    31  
    32  	for name, tc := range testCases {
    33  		s.Run(name, func() {
    34  			ctx, _ := s.ctx.CacheContext()
    35  
    36  			err := s.impl.Exec(ctx, tc.proposalID)
    37  			if tc.valid {
    38  				s.Require().NoError(err)
    39  			} else {
    40  				s.Require().Error(err)
    41  			}
    42  		})
    43  	}
    44  }