github.com/minio/console@v1.4.1/api/config_test.go (about) 1 // This file is part of MinIO Console Server 2 // Copyright (c) 2023 MinIO, Inc. 3 // 4 // This program is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Affero General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Affero General Public License for more details. 13 // 14 // You should have received a copy of the GNU Affero General Public License 15 // along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17 package api 18 19 import ( 20 "os" 21 "testing" 22 23 "github.com/stretchr/testify/assert" 24 ) 25 26 func TestGetHostname(t *testing.T) { 27 os.Setenv(ConsoleHostname, "x") 28 defer os.Unsetenv(ConsoleHostname) 29 assert.Equalf(t, "x", GetHostname(), "GetHostname()") 30 } 31 32 func TestGetPort(t *testing.T) { 33 type args struct { 34 env string 35 } 36 tests := []struct { 37 name string 38 args args 39 want int 40 }{ 41 { 42 name: "valid port", 43 args: args{ 44 env: "9091", 45 }, 46 want: 9091, 47 }, 48 { 49 name: "invalid port", 50 args: args{ 51 env: "duck", 52 }, 53 want: 9090, 54 }, 55 } 56 for _, tt := range tests { 57 t.Run(tt.name, func(_ *testing.T) { 58 os.Setenv(ConsolePort, tt.args.env) 59 assert.Equalf(t, tt.want, GetPort(), "GetPort()") 60 os.Unsetenv(ConsolePort) 61 }) 62 } 63 } 64 65 func TestGetTLSPort(t *testing.T) { 66 type args struct { 67 env string 68 } 69 tests := []struct { 70 name string 71 args args 72 want int 73 }{ 74 { 75 name: "valid port", 76 args: args{ 77 env: "9444", 78 }, 79 want: 9444, 80 }, 81 { 82 name: "invalid port", 83 args: args{ 84 env: "duck", 85 }, 86 want: 9443, 87 }, 88 } 89 for _, tt := range tests { 90 t.Run(tt.name, func(_ *testing.T) { 91 os.Setenv(ConsoleTLSPort, tt.args.env) 92 assert.Equalf(t, tt.want, GetTLSPort(), "GetTLSPort()") 93 os.Unsetenv(ConsoleTLSPort) 94 }) 95 } 96 } 97 98 func TestGetSecureAllowedHosts(t *testing.T) { 99 type args struct { 100 env string 101 } 102 tests := []struct { 103 name string 104 args args 105 want []string 106 }{ 107 { 108 name: "valid hosts", 109 args: args{ 110 env: "host1,host2", 111 }, 112 want: []string{"host1", "host2"}, 113 }, 114 { 115 name: "empty hosts", 116 args: args{ 117 env: "", 118 }, 119 want: []string{}, 120 }, 121 } 122 for _, tt := range tests { 123 t.Run(tt.name, func(_ *testing.T) { 124 os.Setenv(ConsoleSecureAllowedHosts, tt.args.env) 125 assert.Equalf(t, tt.want, GetSecureAllowedHosts(), "GetSecureAllowedHosts()") 126 os.Unsetenv(ConsoleSecureAllowedHosts) 127 }) 128 } 129 } 130 131 func TestGetSecureHostsProxyHeaders(t *testing.T) { 132 type args struct { 133 env string 134 } 135 tests := []struct { 136 name string 137 args args 138 want []string 139 }{ 140 { 141 name: "valid headers", 142 args: args{ 143 env: "header1,header2", 144 }, 145 want: []string{"header1", "header2"}, 146 }, 147 { 148 name: "empty headers", 149 args: args{ 150 env: "", 151 }, 152 want: []string{}, 153 }, 154 } 155 for _, tt := range tests { 156 t.Run(tt.name, func(_ *testing.T) { 157 os.Setenv(ConsoleSecureHostsProxyHeaders, tt.args.env) 158 assert.Equalf(t, tt.want, GetSecureHostsProxyHeaders(), "GetSecureHostsProxyHeaders()") 159 os.Unsetenv(ConsoleSecureHostsProxyHeaders) 160 }) 161 } 162 } 163 164 func TestGetSecureSTSSeconds(t *testing.T) { 165 type args struct { 166 env string 167 } 168 tests := []struct { 169 name string 170 args args 171 want int64 172 }{ 173 { 174 name: "valid", 175 args: args{ 176 env: "1", 177 }, 178 want: 1, 179 }, 180 { 181 name: "invalid", 182 args: args{ 183 env: "duck", 184 }, 185 want: 0, 186 }, 187 } 188 for _, tt := range tests { 189 t.Run(tt.name, func(_ *testing.T) { 190 os.Setenv(ConsoleSecureSTSSeconds, tt.args.env) 191 assert.Equalf(t, tt.want, GetSecureSTSSeconds(), "GetSecureSTSSeconds()") 192 os.Unsetenv(ConsoleSecureSTSSeconds) 193 }) 194 } 195 } 196 197 func Test_getLogSearchAPIToken(t *testing.T) { 198 type args struct { 199 env string 200 } 201 tests := []struct { 202 name string 203 args args 204 want string 205 }{ 206 { 207 name: "env set", 208 args: args{ 209 env: "value", 210 }, 211 want: "value", 212 }, 213 { 214 name: "env not set", 215 args: args{ 216 env: "", 217 }, 218 want: "", 219 }, 220 } 221 for _, tt := range tests { 222 t.Run(tt.name, func(_ *testing.T) { 223 os.Setenv(ConsoleLogQueryAuthToken, tt.args.env) 224 assert.Equalf(t, tt.want, getLogSearchAPIToken(), "getLogSearchAPIToken()") 225 os.Setenv(ConsoleLogQueryAuthToken, tt.args.env) 226 }) 227 } 228 } 229 230 func Test_getPrometheusURL(t *testing.T) { 231 type args struct { 232 env string 233 } 234 tests := []struct { 235 name string 236 args args 237 want string 238 }{ 239 { 240 name: "env set", 241 args: args{ 242 env: "value", 243 }, 244 want: "value", 245 }, 246 { 247 name: "env not set", 248 args: args{ 249 env: "", 250 }, 251 want: "", 252 }, 253 } 254 for _, tt := range tests { 255 t.Run(tt.name, func(_ *testing.T) { 256 os.Setenv(PrometheusURL, tt.args.env) 257 assert.Equalf(t, tt.want, getPrometheusURL(), "getPrometheusURL()") 258 os.Setenv(PrometheusURL, tt.args.env) 259 }) 260 } 261 } 262 263 func Test_getPrometheusJobID(t *testing.T) { 264 type args struct { 265 env string 266 } 267 tests := []struct { 268 name string 269 args args 270 want string 271 }{ 272 { 273 name: "env set", 274 args: args{ 275 env: "value", 276 }, 277 want: "value", 278 }, 279 { 280 name: "env not set", 281 args: args{ 282 env: "", 283 }, 284 want: "minio-job", 285 }, 286 } 287 for _, tt := range tests { 288 t.Run(tt.name, func(_ *testing.T) { 289 os.Setenv(PrometheusJobID, tt.args.env) 290 assert.Equalf(t, tt.want, getPrometheusJobID(), "getPrometheusJobID()") 291 os.Setenv(PrometheusJobID, tt.args.env) 292 }) 293 } 294 } 295 296 func Test_getMaxConcurrentUploadsLimit(t *testing.T) { 297 type args struct { 298 env string 299 } 300 tests := []struct { 301 name string 302 args args 303 want int64 304 }{ 305 { 306 name: "valid", 307 args: args{ 308 env: "1", 309 }, 310 want: 1, 311 }, 312 { 313 name: "invalid", 314 args: args{ 315 env: "duck", 316 }, 317 want: 10, 318 }, 319 } 320 for _, tt := range tests { 321 t.Run(tt.name, func(_ *testing.T) { 322 os.Setenv(ConsoleMaxConcurrentUploads, tt.args.env) 323 assert.Equalf(t, tt.want, getMaxConcurrentUploadsLimit(), "getMaxConcurrentUploadsLimit()") 324 os.Unsetenv(ConsoleMaxConcurrentUploads) 325 }) 326 } 327 } 328 329 func Test_getMaxConcurrentDownloadsLimit(t *testing.T) { 330 type args struct { 331 env string 332 } 333 tests := []struct { 334 name string 335 args args 336 want int64 337 }{ 338 { 339 name: "valid", 340 args: args{ 341 env: "1", 342 }, 343 want: 1, 344 }, 345 { 346 name: "invalid", 347 args: args{ 348 env: "duck", 349 }, 350 want: 20, 351 }, 352 } 353 for _, tt := range tests { 354 t.Run(tt.name, func(_ *testing.T) { 355 os.Setenv(ConsoleMaxConcurrentDownloads, tt.args.env) 356 assert.Equalf(t, tt.want, getMaxConcurrentDownloadsLimit(), "getMaxConcurrentDownloadsLimit()") 357 os.Unsetenv(ConsoleMaxConcurrentDownloads) 358 }) 359 } 360 } 361 362 func Test_getConsoleDevMode(t *testing.T) { 363 type args struct { 364 env string 365 } 366 tests := []struct { 367 name string 368 args args 369 want bool 370 }{ 371 { 372 name: "value set", 373 args: args{ 374 env: "on", 375 }, 376 want: true, 377 }, 378 { 379 name: "value not set", 380 args: args{ 381 env: "", 382 }, 383 want: false, 384 }, 385 } 386 for _, tt := range tests { 387 t.Run(tt.name, func(_ *testing.T) { 388 os.Setenv(ConsoleDevMode, tt.args.env) 389 assert.Equalf(t, tt.want, getConsoleDevMode(), "getConsoleDevMode()") 390 os.Unsetenv(ConsoleDevMode) 391 }) 392 } 393 }