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