| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package config
- import (
- "os"
- "testing"
- )
- func TestGetPortOverride(t *testing.T) {
- tests := []struct {
- name string
- value string
- set bool
- wantPort int
- configured bool
- wantErr bool
- }{
- {name: "unset"},
- {name: "empty", value: "", set: true},
- {name: "whitespace", value: " ", set: true},
- {name: "minimum", value: "1", set: true, wantPort: 1, configured: true},
- {name: "default panel port", value: "2053", set: true, wantPort: 2053, configured: true},
- {name: "surrounding whitespace", value: " 8080 ", set: true, wantPort: 8080, configured: true},
- {name: "maximum", value: "65535", set: true, wantPort: 65535, configured: true},
- {name: "zero", value: "0", set: true, configured: true, wantErr: true},
- {name: "above maximum", value: "65536", set: true, configured: true, wantErr: true},
- {name: "negative", value: "-1", set: true, configured: true, wantErr: true},
- {name: "non-numeric", value: "abc", set: true, configured: true, wantErr: true},
- {name: "decimal", value: "8080.0", set: true, configured: true, wantErr: true},
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- if tt.set {
- t.Setenv("XUI_PORT", tt.value)
- } else {
- original, existed := os.LookupEnv("XUI_PORT")
- if err := os.Unsetenv("XUI_PORT"); err != nil {
- t.Fatalf("unset XUI_PORT: %v", err)
- }
- t.Cleanup(func() {
- if existed {
- _ = os.Setenv("XUI_PORT", original)
- } else {
- _ = os.Unsetenv("XUI_PORT")
- }
- })
- }
- port, configured, err := GetPortOverride()
- if port != tt.wantPort {
- t.Errorf("port = %d, want %d", port, tt.wantPort)
- }
- if configured != tt.configured {
- t.Errorf("configured = %t, want %t", configured, tt.configured)
- }
- if (err != nil) != tt.wantErr {
- t.Errorf("error = %v, wantErr %t", err, tt.wantErr)
- }
- })
- }
- }
|