60 lines
1.7 KiB
Go
60 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"git.frostfs.info/TrueCloudLab/frostfs-http-gw/resolver"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestConfigReload(t *testing.T) {
|
|
f, err := os.CreateTemp("", "conf")
|
|
require.NoError(t, err)
|
|
defer func() {
|
|
require.NoError(t, os.Remove(f.Name()))
|
|
}()
|
|
|
|
confData := `
|
|
pprof:
|
|
enabled: true
|
|
|
|
resolve_bucket:
|
|
default_namespaces: [""]
|
|
|
|
resolve_order:
|
|
- nns
|
|
`
|
|
|
|
_, err = f.WriteString(confData)
|
|
require.NoError(t, err)
|
|
require.NoError(t, f.Close())
|
|
|
|
cfg := settings()
|
|
|
|
require.NoError(t, cfg.flags.Parse([]string{"--config", f.Name(), "--connect_timeout", "15s"}))
|
|
require.NoError(t, cfg.reload())
|
|
|
|
require.True(t, cfg.config().GetBool(cfgPprofEnabled))
|
|
require.Equal(t, []string{""}, cfg.config().GetStringSlice(cfgResolveDefaultNamespaces))
|
|
require.Equal(t, []string{resolver.NNSResolver}, cfg.config().GetStringSlice(cfgResolveOrder))
|
|
require.Equal(t, 15*time.Second, cfg.config().GetDuration(cfgConTimeout))
|
|
|
|
require.NoError(t, os.Truncate(f.Name(), 0))
|
|
require.NoError(t, cfg.reload())
|
|
|
|
require.False(t, cfg.config().GetBool(cfgPprofEnabled))
|
|
require.Equal(t, []string{"", "root"}, cfg.config().GetStringSlice(cfgResolveDefaultNamespaces))
|
|
require.Equal(t, []string{resolver.NNSResolver, resolver.DNSResolver}, cfg.config().GetStringSlice(cfgResolveOrder))
|
|
require.Equal(t, 15*time.Second, cfg.config().GetDuration(cfgConTimeout))
|
|
}
|
|
|
|
func TestSetTLSEnabled(t *testing.T) {
|
|
cfg := settings()
|
|
|
|
require.NoError(t, cfg.flags.Parse([]string{"--" + cfgTLSCertFile, "tls.crt", "--" + cfgTLSKeyFile, "tls.key"}))
|
|
require.NoError(t, cfg.reload())
|
|
|
|
require.True(t, cfg.config().GetBool(cfgServer+".0."+cfgTLSEnabled))
|
|
}
|