jlelse
/
kis3
Archived
1
Fork 0
This repository has been archived on 2021-01-04. You can view files and clone it, but cannot push or open issues or pull requests.
kis3/config_test.go

133 lines
3.2 KiB
Go

package main
import (
"os"
"testing"
)
func Test_port(t *testing.T) {
tests := []struct {
name string
envVar string
want string
}{
{name: "default", envVar: "", want: "8080"},
{name: "custom", envVar: "1234", want: "1234"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_ = os.Setenv("PORT", tt.envVar)
if got := port(); got != tt.want {
t.Errorf("port() = %v, want %v", got, tt.want)
}
})
}
}
func Test_dnt(t *testing.T) {
tests := []struct {
name string
envVar string
want bool
}{
{name: "default", envVar: "", want: true},
{envVar: "true", want: true},
{envVar: "t", want: true},
{envVar: "TRUE", want: true},
{envVar: "1", want: true},
{envVar: "false", want: false},
{envVar: "f", want: false},
{envVar: "0", want: false},
{envVar: "abc", want: true},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_ = os.Setenv("DNT", tt.envVar)
if got := dnt(); got != tt.want {
t.Errorf("dnt() = %v, want %v", got, tt.want)
}
})
}
}
func Test_dbPath(t *testing.T) {
tests := []struct {
name string
envVar string
wantDbPath string
}{
{name: "default", envVar: "", wantDbPath: "data/kis3.db"},
{envVar: "kis3.db", wantDbPath: "kis3.db"},
{envVar: "data.db", wantDbPath: "data.db"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_ = os.Setenv("DB_PATH", tt.envVar)
if gotDbPath := dbPath(); gotDbPath != tt.wantDbPath {
t.Errorf("dbPath() = %v, want %v", gotDbPath, tt.wantDbPath)
}
})
}
}
func Test_statsUsername(t *testing.T) {
tests := []struct {
name string
envVar string
wantUsername string
}{
{name: "default", envVar: "", wantUsername: ""},
{envVar: "abc", wantUsername: "abc"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_ = os.Setenv("STATS_USERNAME", tt.envVar)
if gotUsername := statsUsername(); gotUsername != tt.wantUsername {
t.Errorf("statsUsername() = %v, want %v", gotUsername, tt.wantUsername)
}
})
}
}
func Test_statsPassword(t *testing.T) {
tests := []struct {
name string
envVar string
wantPassword string
}{
{name: "default", envVar: "", wantPassword: ""},
{envVar: "def", wantPassword: "def"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_ = os.Setenv("STATS_PASSWORD", tt.envVar)
if gotPassword := statsPassword(); gotPassword != tt.wantPassword {
t.Errorf("statsPassword() = %v, want %v", gotPassword, tt.wantPassword)
}
})
}
}
func Test_statsAuth(t *testing.T) {
type args struct {
ac *config
}
tests := []struct {
name string
args args
want bool
}{
{name: "default", args: struct{ ac *config }{ac: &config{}}, want: false},
{name: "only username set", args: struct{ ac *config }{ac: &config{statsUsername: "abc"}}, want: false},
{name: "only password set", args: struct{ ac *config }{ac: &config{statsPassword: "def"}}, want: false},
{name: "username and password set", args: struct{ ac *config }{ac: &config{statsUsername: "abc", statsPassword: "def"}}, want: true},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := statsAuth(tt.args.ac); got != tt.want {
t.Errorf("statsAuth() = %v, want %v", got, tt.want)
}
})
}
}