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  }