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  }