58 lines
1.8 KiB
Go
58 lines
1.8 KiB
Go
package morphconfig_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-node/config"
|
|
morphconfig "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-node/config/morph"
|
|
configtest "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-node/config/test"
|
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/client"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMorphSection(t *testing.T) {
|
|
t.Run("defaults", func(t *testing.T) {
|
|
empty := configtest.EmptyConfig()
|
|
|
|
require.Panics(t, func() { morphconfig.RPCEndpoint(empty) })
|
|
require.Equal(t, morphconfig.DialTimeoutDefault, morphconfig.DialTimeout(empty))
|
|
require.Equal(t, morphconfig.CacheTTLDefault, morphconfig.CacheTTL(empty))
|
|
require.Equal(t, morphconfig.SwitchIntervalDefault, morphconfig.SwitchInterval(empty))
|
|
require.Equal(t, uint32(morphconfig.APEChainCacheSizeDefault), morphconfig.APEChainCacheSize(empty))
|
|
})
|
|
|
|
const path = "../../../../config/example/node"
|
|
|
|
rpcs := []client.Endpoint{
|
|
{
|
|
Address: "wss://rpc1.morph.frostfs.info:40341/ws",
|
|
Priority: 1,
|
|
MTLSConfig: &client.MTLSConfig{
|
|
TrustedCAList: []string{
|
|
"/path/to/ca.pem",
|
|
},
|
|
KeyFile: "/path/to/key",
|
|
CertFile: "/path/to/cert",
|
|
},
|
|
},
|
|
{
|
|
Address: "wss://rpc2.morph.frostfs.info:40341/ws",
|
|
Priority: 2,
|
|
},
|
|
}
|
|
|
|
fileConfigTest := func(c *config.Config) {
|
|
require.Equal(t, rpcs, morphconfig.RPCEndpoint(c))
|
|
require.Equal(t, 30*time.Second, morphconfig.DialTimeout(c))
|
|
require.Equal(t, 15*time.Second, morphconfig.CacheTTL(c))
|
|
require.Equal(t, 3*time.Minute, morphconfig.SwitchInterval(c))
|
|
require.Equal(t, uint32(100000), morphconfig.APEChainCacheSize(c))
|
|
}
|
|
|
|
configtest.ForEachFileType(path, fileConfigTest)
|
|
|
|
t.Run("ENV", func(t *testing.T) {
|
|
configtest.ForEnvFileType(t, path, fileConfigTest)
|
|
})
|
|
}
|