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 }