Test config

This commit is contained in:
Dan Jones 2024-09-13 13:38:30 -05:00
commit e441e541c7
5 changed files with 101 additions and 0 deletions

View file

@ -4,3 +4,7 @@ type Config struct {
Env Env
BaseURL string
}
func (c Config) Environment() Env {
return ValidEnvOrDev(c.Env)
}

26
config/config_test.go Normal file
View file

@ -0,0 +1,26 @@
package config
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestEnvDefaultsToDev(t *testing.T) {
c := Config{}
assert.Equal(t, DEV, c.Environment())
}
func TestInvalidEnvReturnsDev(t *testing.T) {
c := Config{Env: Env("foobar")}
assert.Equal(t, DEV, c.Environment())
}
func TestValidEnvReturnsCorrect(t *testing.T) {
for _, e := range Envs {
t.Run(string(e), func(t *testing.T) {
c := Config{Env: e}
assert.Equal(t, e, c.Environment())
})
}
}

59
config/env_test.go Normal file
View file

@ -0,0 +1,59 @@
package config
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestEnvString(t *testing.T) {
cases := Envs[:]
cases = append(cases, Env("foobar"), Env(""), Env("42"), Env("✨"))
for _, e := range cases {
t.Run(string(e), func(t *testing.T) {
assert.Equal(t, string(e), e.String())
})
}
}
func TestValidEnv(t *testing.T) {
cases := [...]struct {
e Env
exp bool
}{
{DEV, true},
{PROD, true},
{QA, true},
{TEST, true},
{Env("foobar"), false},
{Env(""), false},
{Env("✨"), false},
}
for _, c := range cases {
t.Run(string(c.e), func(t *testing.T) {
assert.Equal(t, c.exp, ValidEnv(c.e))
})
}
}
func TestValidEnvOrDev(t *testing.T) {
cases := [...]struct {
give Env
exp Env
}{
{DEV, DEV},
{PROD, PROD},
{QA, QA},
{TEST, TEST},
{Env("foobar"), DEV},
{Env(""), DEV},
{Env("✨"), DEV},
}
for _, c := range cases {
t.Run(string(c.give), func(t *testing.T) {
assert.Equal(t, c.exp, ValidEnvOrDev(c.give))
})
}
}