github.com/argoproj/argo-cd/v3@v3.2.1/util/config/env_test.go (about)

     1  package config
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func loadOpts(t *testing.T, opts string) {
    10  	t.Helper()
    11  	t.Setenv("ARGOCD_OPTS", opts)
    12  	assert.NoError(t, LoadFlags())
    13  }
    14  
    15  func loadInvalidOpts(t *testing.T, opts string) {
    16  	t.Helper()
    17  	t.Setenv("ARGOCD_OPTS", opts)
    18  	assert.Error(t, LoadFlags())
    19  }
    20  
    21  func TestNilOpts(t *testing.T) {
    22  	assert.Equal(t, "foo", GetFlag("foo", "foo"))
    23  }
    24  
    25  func TestEmptyOpts(t *testing.T) {
    26  	loadOpts(t, "")
    27  
    28  	assert.Equal(t, "foo", GetFlag("foo", "foo"))
    29  }
    30  
    31  func TestRubbishOpts(t *testing.T) {
    32  	loadInvalidOpts(t, "rubbish")
    33  }
    34  
    35  func TestBoolFlag(t *testing.T) {
    36  	loadOpts(t, "--foo")
    37  
    38  	assert.True(t, GetBoolFlag("foo"))
    39  }
    40  
    41  func TestBoolFlagAtStart(t *testing.T) {
    42  	loadOpts(t, "--foo --bar baz")
    43  
    44  	assert.True(t, GetBoolFlag("foo"))
    45  }
    46  
    47  func TestBoolFlagInMiddle(t *testing.T) {
    48  	loadOpts(t, "--bar baz --foo --qux")
    49  
    50  	assert.True(t, GetBoolFlag("foo"))
    51  }
    52  
    53  func TestBooleanFlagAtEnd(t *testing.T) {
    54  	loadOpts(t, "--bar baz --foo")
    55  
    56  	assert.True(t, GetBoolFlag("foo"))
    57  }
    58  
    59  func TestIntFlag(t *testing.T) {
    60  	loadOpts(t, "--foo 2")
    61  
    62  	assert.Equal(t, 2, GetIntFlag("foo", 0))
    63  }
    64  
    65  func TestIntFlagAtStart(t *testing.T) {
    66  	loadOpts(t, "--foo 2 --bar baz")
    67  
    68  	assert.Equal(t, 2, GetIntFlag("foo", 0))
    69  }
    70  
    71  func TestIntFlagInMiddle(t *testing.T) {
    72  	loadOpts(t, "--bar baz --foo 2 --qux")
    73  
    74  	assert.Equal(t, 2, GetIntFlag("foo", 0))
    75  }
    76  
    77  func TestIntFlagAtEnd(t *testing.T) {
    78  	loadOpts(t, "--bar baz --foo 2")
    79  
    80  	assert.Equal(t, 2, GetIntFlag("foo", 0))
    81  }
    82  
    83  func TestStringSliceFlag(t *testing.T) {
    84  	loadOpts(t, "--header='Content-Type: application/json; charset=utf-8,Strict-Transport-Security: max-age=31536000'")
    85  	strings := GetStringSliceFlag("header", []string{})
    86  
    87  	assert.Len(t, strings, 2)
    88  	assert.Equal(t, "Content-Type: application/json; charset=utf-8", strings[0])
    89  	assert.Equal(t, "Strict-Transport-Security: max-age=31536000", strings[1])
    90  }
    91  
    92  func TestStringSliceFlagAtStart(t *testing.T) {
    93  	loadOpts(t, "--header='Strict-Transport-Security: max-age=31536000' --bar baz")
    94  	strings := GetStringSliceFlag("header", []string{})
    95  
    96  	assert.Len(t, strings, 1)
    97  	assert.Equal(t, "Strict-Transport-Security: max-age=31536000", strings[0])
    98  }
    99  
   100  func TestStringSliceFlagInMiddle(t *testing.T) {
   101  	loadOpts(t, "--bar baz --header='Strict-Transport-Security: max-age=31536000' --qux")
   102  	strings := GetStringSliceFlag("header", []string{})
   103  
   104  	assert.Len(t, strings, 1)
   105  	assert.Equal(t, "Strict-Transport-Security: max-age=31536000", strings[0])
   106  }
   107  
   108  func TestStringSliceFlagAtEnd(t *testing.T) {
   109  	loadOpts(t, "--bar baz --header='Strict-Transport-Security: max-age=31536000'")
   110  	strings := GetStringSliceFlag("header", []string{})
   111  
   112  	assert.Len(t, strings, 1)
   113  	assert.Equal(t, "Strict-Transport-Security: max-age=31536000", strings[0])
   114  }
   115  
   116  func TestFlagAtStart(t *testing.T) {
   117  	loadOpts(t, "--foo bar")
   118  
   119  	assert.Equal(t, "bar", GetFlag("foo", ""))
   120  }
   121  
   122  func TestFlagInTheMiddle(t *testing.T) {
   123  	loadOpts(t, "--baz --foo bar --qux")
   124  
   125  	assert.Equal(t, "bar", GetFlag("foo", ""))
   126  }
   127  
   128  func TestFlagAtTheEnd(t *testing.T) {
   129  	loadOpts(t, "--baz --foo bar")
   130  
   131  	assert.Equal(t, "bar", GetFlag("foo", ""))
   132  }
   133  
   134  func TestFlagWithSingleQuotes(t *testing.T) {
   135  	loadOpts(t, "--foo 'bar baz'")
   136  
   137  	assert.Equal(t, "bar baz", GetFlag("foo", ""))
   138  }
   139  
   140  func TestFlagWithDoubleQuotes(t *testing.T) {
   141  	loadOpts(t, "--foo \"bar baz\"")
   142  
   143  	assert.Equal(t, "bar baz", GetFlag("foo", ""))
   144  }
   145  
   146  func TestFlagWithEqualSign(t *testing.T) {
   147  	loadOpts(t, "--foo=bar")
   148  
   149  	assert.Equal(t, "bar", GetFlag("foo", ""))
   150  }