mirror of
https://github.com/hanzo-fi/go-libs.git
synced 2026-10-30 20:53:44 +00:00
99 lines
2.2 KiB
Go
99 lines
2.2 KiB
Go
package audit
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/spf13/pflag"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/hanzo-fi/go-libs/v5/pkg/service"
|
|
)
|
|
|
|
func TestConfigFromFlagsDisabledByDefault(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
|
|
AddFlags(flags)
|
|
|
|
cfg, err := ConfigFromFlags(flags)
|
|
|
|
require.NoError(t, err)
|
|
assert.False(t, cfg.Enabled)
|
|
}
|
|
|
|
func TestConfigFromFlagsEnabledFromFlag(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
|
|
AddFlags(flags)
|
|
require.NoError(t, flags.Set(AuditEnabledFlag, "true"))
|
|
|
|
cfg, err := ConfigFromFlags(flags)
|
|
|
|
require.NoError(t, err)
|
|
assert.True(t, cfg.Enabled)
|
|
}
|
|
|
|
func TestConfigFromFlagsEnabledFromEnv(t *testing.T) {
|
|
t.Setenv("AUDIT_ENABLED", "true")
|
|
|
|
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
|
|
AddFlags(flags)
|
|
service.BindEnvToFlagSet(flags)
|
|
|
|
cfg, err := ConfigFromFlags(flags)
|
|
|
|
require.NoError(t, err)
|
|
assert.True(t, cfg.Enabled)
|
|
}
|
|
|
|
func TestConfigFromFlagsHandledHeaderSecretEmptyByDefault(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
|
|
AddFlags(flags)
|
|
|
|
cfg, err := ConfigFromFlags(flags)
|
|
|
|
require.NoError(t, err)
|
|
assert.Empty(t, cfg.HandledHeaderSecret)
|
|
}
|
|
|
|
func TestConfigFromFlagsHandledHeaderSecretFromFlag(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
|
|
AddFlags(flags)
|
|
require.NoError(t, flags.Set(AuditHandledHeaderSecretFlag, "super-secret"))
|
|
|
|
cfg, err := ConfigFromFlags(flags)
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "super-secret", cfg.HandledHeaderSecret)
|
|
}
|
|
|
|
func TestConfigFromFlagsHandledHeaderSecretFromEnv(t *testing.T) {
|
|
t.Setenv("AUDIT_HANDLED_HEADER_SECRET", "env-secret")
|
|
|
|
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
|
|
AddFlags(flags)
|
|
service.BindEnvToFlagSet(flags)
|
|
|
|
cfg, err := ConfigFromFlags(flags)
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "env-secret", cfg.HandledHeaderSecret)
|
|
}
|
|
|
|
func TestConfigFromFlagsReturnsErrorWhenFlagIsMissing(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
|
|
|
|
_, err := ConfigFromFlags(flags)
|
|
|
|
require.Error(t, err)
|
|
assert.Contains(t, err.Error(), AuditEnabledFlag)
|
|
}
|