github.com/celestiaorg/celestia-node@v0.15.0-beta.1/nodebuilder/rpc/flags_test.go (about) 1 package rpc 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/spf13/cobra" 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestFlags(t *testing.T) { 13 flags := Flags() 14 15 // Test addrFlag 16 addr := flags.Lookup(addrFlag) 17 require.NotNil(t, addr) 18 assert.Equal(t, "", addr.Value.String()) 19 assert.Equal(t, fmt.Sprintf("Set a custom RPC listen address (default: %s)", defaultBindAddress), addr.Usage) 20 21 // Test portFlag 22 port := flags.Lookup(portFlag) 23 require.NotNil(t, port) 24 assert.Equal(t, "", port.Value.String()) 25 assert.Equal(t, fmt.Sprintf("Set a custom RPC port (default: %s)", defaultPort), port.Usage) 26 } 27 28 // TestParseFlags tests the ParseFlags function in rpc/flags.go 29 func TestParseFlags(t *testing.T) { 30 tests := []struct { 31 name string 32 addrFlag string 33 portFlag string 34 expected *Config 35 }{ 36 { 37 name: "addrFlag is set", 38 addrFlag: "127.0.0.1:8080", 39 portFlag: "", 40 expected: &Config{ 41 Address: "127.0.0.1:8080", 42 Port: "", 43 }, 44 }, 45 { 46 name: "portFlag is set", 47 addrFlag: "", 48 portFlag: "9090", 49 expected: &Config{ 50 Address: "", 51 Port: "9090", 52 }, 53 }, 54 { 55 name: "both addrFlag and portFlag are set", 56 addrFlag: "192.168.0.1:1234", 57 portFlag: "5678", 58 expected: &Config{ 59 Address: "192.168.0.1:1234", 60 Port: "5678", 61 }, 62 }, 63 { 64 name: "neither addrFlag nor portFlag are set", 65 addrFlag: "", 66 portFlag: "", 67 expected: &Config{ 68 Address: "", 69 Port: "", 70 }, 71 }, 72 } 73 74 for _, test := range tests { 75 t.Run(test.name, func(t *testing.T) { 76 cmd := &cobra.Command{} 77 cfg := &Config{} 78 79 cmd.Flags().AddFlagSet(Flags()) 80 81 err := cmd.Flags().Set(addrFlag, test.addrFlag) 82 if err != nil { 83 t.Errorf(err.Error()) 84 } 85 err = cmd.Flags().Set(portFlag, test.portFlag) 86 if err != nil { 87 t.Errorf(err.Error()) 88 } 89 90 ParseFlags(cmd, cfg) 91 assert.Equal(t, test.expected.Address, cfg.Address) 92 assert.Equal(t, test.expected.Port, cfg.Port) 93 }) 94 } 95 }