github.com/vseinstrumentiru/lego@v1.0.2/internal/lego/config/provider_test.go (about) 1 package config 2 3 import ( 4 "github.com/spf13/pflag" 5 "github.com/spf13/viper" 6 "github.com/stretchr/testify/assert" 7 "testing" 8 ) 9 10 type appConfig struct { 11 Some struct { 12 Name string 13 Any string 14 } 15 } 16 17 func (a appConfig) Validate() error { 18 return nil 19 } 20 21 func (a appConfig) SetDefaults(env *viper.Viper, flag *pflag.FlagSet) { 22 env.Set("app.some.name", "Asd") 23 env.Set("app.some.any", "Test") 24 env.Set("app.some.name", "Test") 25 env.SetDefault("srv.name", "TestSrv") 26 } 27 28 func Test_Provider(t *testing.T) { 29 ass := assert.New(t) 30 31 var cfg appConfig 32 srv, err := Provide(cfg) 33 34 ass.IsType(err, viper.ConfigFileNotFoundError{}) 35 36 cfg = srv.Custom.(appConfig) 37 38 ass.Equal("TestSrv", srv.Name) 39 ass.Equal("Test", cfg.Some.Name) 40 }