package main_test import ( "os" "testing" proxy "github.com/pusher/oauth2_proxy" "github.com/stretchr/testify/assert" ) type EnvTest struct { TestField string `cfg:"target_field" env:"TEST_ENV_FIELD"` EnvTestEmbed } type EnvTestEmbed struct { TestFieldEmbed string `cfg:"target_field_embed" env:"TEST_ENV_FIELD_EMBED"` } func TestLoadEnvForStruct(t *testing.T) { cfg := make(proxy.EnvOptions) cfg.LoadEnvForStruct(&EnvTest{}) _, ok := cfg["target_field"] assert.Equal(t, ok, false) os.Setenv("TEST_ENV_FIELD", "1234abcd") cfg.LoadEnvForStruct(&EnvTest{}) v := cfg["target_field"] assert.Equal(t, v, "1234abcd") } func TestLoadEnvForStructWithEmbeddedFields(t *testing.T) { cfg := make(proxy.EnvOptions) cfg.LoadEnvForStruct(&EnvTest{}) _, ok := cfg["target_field_embed"] assert.Equal(t, ok, false) os.Setenv("TEST_ENV_FIELD_EMBED", "1234abcd") cfg.LoadEnvForStruct(&EnvTest{}) v := cfg["target_field_embed"] assert.Equal(t, v, "1234abcd") }