github.com/ppphp/yayagf@v0.0.1/pkg/config/config_test.go (about) 1 package config 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestLoadTomlFile(t *testing.T) { 11 var k struct { 12 Key int 13 } 14 require.NoError(t, LoadTomlFile("./testdata/conf.toml", &k)) 15 var k1 struct { 16 Key string 17 } 18 require.Error(t, LoadTomlFile("./testdata/conf.toml", &k1)) 19 } 20 21 func TestLoadEnv(t *testing.T) { 22 var k struct { 23 Key int 24 Value string 25 } 26 require.NoError(t, os.Setenv("KEY", "1")) 27 require.NoError(t, os.Setenv("VALUE", "1")) 28 LoadEnv(&k) 29 30 func() { 31 defer func() { 32 require.NotNil(t, recover()) 33 }() 34 35 var k struct { 36 Key struct{} 37 } 38 39 LoadEnv(&k) 40 41 }() 42 require.NoError(t, os.Unsetenv("KEY")) 43 require.NoError(t, os.Unsetenv("VALUE")) 44 45 } 46 47 func TestLoadConfig(t *testing.T) { 48 var k struct { 49 Key int 50 } 51 require.Error(t, LoadConfig(&k)) 52 53 require.NoError(t, os.Chdir("testdata")) 54 55 require.NoError(t, LoadConfig(&k)) 56 }