✅ Test config
This commit is contained in:
parent
2b888f203d
commit
e441e541c7
5 changed files with 101 additions and 0 deletions
|
|
@ -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
26
config/config_test.go
Normal 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
59
config/env_test.go
Normal 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))
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in a new issue