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  }