github.com/Finschia/finschia-sdk@v0.48.1/x/gov/client/cli/parse_test.go (about) 1 package cli 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/Finschia/finschia-sdk/testutil" 9 ) 10 11 func TestParseSubmitProposalFlags(t *testing.T) { 12 okJSON := testutil.WriteToNewTempFile(t, ` 13 { 14 "title": "Test Proposal", 15 "description": "My awesome proposal", 16 "type": "Text", 17 "deposit": "1000test" 18 } 19 `) 20 21 badJSON := testutil.WriteToNewTempFile(t, "bad json") 22 fs := NewCmdSubmitProposal().Flags() 23 24 // nonexistent json 25 fs.Set(FlagProposal, "fileDoesNotExist") 26 _, err := parseSubmitProposalFlags(fs) 27 require.Error(t, err) 28 29 // invalid json 30 fs.Set(FlagProposal, badJSON.Name()) 31 _, err = parseSubmitProposalFlags(fs) 32 require.Error(t, err) 33 34 // ok json 35 fs.Set(FlagProposal, okJSON.Name()) 36 proposal1, err := parseSubmitProposalFlags(fs) 37 require.Nil(t, err, "unexpected error") 38 require.Equal(t, "Test Proposal", proposal1.Title) 39 require.Equal(t, "My awesome proposal", proposal1.Description) 40 require.Equal(t, "Text", proposal1.Type) 41 require.Equal(t, "1000test", proposal1.Deposit) 42 43 // flags that can't be used with --proposal 44 for _, incompatibleFlag := range ProposalFlags { 45 fs.Set(incompatibleFlag, "some value") 46 _, err := parseSubmitProposalFlags(fs) 47 require.Error(t, err) 48 fs.Set(incompatibleFlag, "") 49 } 50 51 // no --proposal, only flags 52 fs.Set(FlagProposal, "") 53 fs.Set(FlagTitle, proposal1.Title) 54 fs.Set(FlagDescription, proposal1.Description) 55 fs.Set(FlagProposalType, proposal1.Type) 56 fs.Set(FlagDeposit, proposal1.Deposit) 57 proposal2, err := parseSubmitProposalFlags(fs) 58 59 require.Nil(t, err, "unexpected error") 60 require.Equal(t, proposal1.Title, proposal2.Title) 61 require.Equal(t, proposal1.Description, proposal2.Description) 62 require.Equal(t, proposal1.Type, proposal2.Type) 63 require.Equal(t, proposal1.Deposit, proposal2.Deposit) 64 65 err = okJSON.Close() 66 require.Nil(t, err, "unexpected error") 67 err = badJSON.Close() 68 require.Nil(t, err, "unexpected error") 69 }