yanic/cmd/config_test.go

51 lines
1.5 KiB
Go
Raw Normal View History

2018-01-13 14:41:49 +01:00
package cmd
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
2022-03-28 04:41:32 +02:00
"github.com/stretchr/testify/require"
)
func TestReadConfig(t *testing.T) {
assert := assert.New(t)
2022-03-28 04:41:32 +02:00
require := require.New(t)
2018-01-13 14:41:49 +01:00
config, err := ReadConfigFile("../config_example.toml")
2022-03-28 04:41:32 +02:00
require.NoError(err)
require.NotNil(config)
assert.True(config.Respondd.Enable)
assert.Equal("br-ffhb", config.Respondd.Interfaces[0].InterfaceName)
assert.Equal(time.Minute, config.Respondd.CollectInterval.Duration)
assert.Equal(time.Hour*24*7, config.Nodes.PruneAfter.Duration)
assert.Equal(time.Hour*24*7, config.Database.DeleteAfter.Duration)
assert.Len(config.Respondd.Sites, 1)
assert.Contains(config.Respondd.Sites, "ffhb")
assert.Contains(config.Respondd.Sites["ffhb"].Domains, "city")
2018-01-13 15:15:50 +01:00
// Test output plugins
2020-01-05 16:56:01 +01:00
assert.Len(config.Nodes.Output, 5)
2022-03-28 04:41:32 +02:00
outputs := config.Nodes.Output["meshviewer"].([]map[string]interface{})
2018-01-13 15:15:50 +01:00
assert.Len(outputs, 1)
meshviewer := outputs[0]
assert.EqualValues(map[string]interface{}{
"version": int64(2),
"enable": false,
"nodes_path": "/var/www/html/meshviewer/data/nodes.json",
"graph_path": "/var/www/html/meshviewer/data/graph.json",
2018-01-13 19:08:46 +01:00
"filter": map[string]interface{}{
"no_owner": true,
},
2018-01-13 15:15:50 +01:00
}, meshviewer)
2018-01-13 14:41:49 +01:00
_, err = ReadConfigFile("testdata/config_invalid.toml")
2022-03-28 04:41:32 +02:00
assert.EqualError(err, "toml: line 2: expected '.' or '=', but got '\\n' instead")
_, err = ReadConfigFile("testdata/adsa.toml")
2022-03-28 04:41:32 +02:00
assert.EqualError(err, "open testdata/adsa.toml: no such file or directory")
}