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 }