2024-09-13 13:38:30 -05:00
package config
import (
"testing"
2025-01-27 11:41:32 -06:00
"github.com/BurntSushi/toml"
2024-09-13 13:38:30 -05:00
"github.com/stretchr/testify/assert"
)
func TestEnvDefaultsToDev ( t * testing . T ) {
2025-01-26 20:07:45 -06:00
c := config { }
assert . Equal ( t , Dev , c . Env ( ) )
2024-09-13 13:38:30 -05:00
}
func TestInvalidEnvReturnsDev ( t * testing . T ) {
2025-01-26 20:07:45 -06:00
c := config { env : Env ( "foobar" ) }
assert . Equal ( t , Dev , c . Env ( ) )
2024-09-13 13:38:30 -05:00
}
func TestValidEnvReturnsCorrect ( t * testing . T ) {
for _ , e := range Envs {
t . Run ( string ( e ) , func ( t * testing . T ) {
2025-01-26 20:07:45 -06:00
c := config { env : e }
assert . Equal ( t , e , c . Env ( ) )
2024-09-13 13:38:30 -05:00
} )
}
}
2025-01-27 11:41:32 -06:00
func TestConfigBaseURL ( t * testing . T ) {
c := config { baseURL : "https://me.goodevilgenius.org" }
assert . Equal ( t , c . baseURL , c . BaseURL ( ) )
}
func TestConfigStoreName ( t * testing . T ) {
c := config { stores : stores { store : "cockroachdb" } }
assert . Equal ( t , c . stores . store , c . StoreName ( ) )
}
func TestStoresMissingStore ( t * testing . T ) {
ss := stores { }
st , er := ss . GetStore ( "cockroachdb" )
assert . Nil ( t , st )
assert . ErrorIs ( t , er , ErrMissingStore )
}
var mockToml = `
[ cockroachdb ]
dsn = "cockroachdb://user:pass@127.0.0.1:26257/combluotion"
`
type mockConn struct {
CockroachDB toml . Primitive
}
func TestStoreMap ( t * testing . T ) {
var conn mockConn
md , _ := toml . Decode ( mockToml , & conn )
st := store { "cockroachdb" , conn . CockroachDB , md }
m , er := st . Map ( )
assert . NoError ( t , er )
assert . Equal ( t , "cockroachdb://user:pass@127.0.0.1:26257/combluotion" , m [ "dsn" ] )
}