mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-11 22:14:02 +01:00
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
// SPDX-FileCopyrightText: 2022 Free Mobile
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
package cmd
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
"testing"
|
|
|
|
"akvorado/common/helpers"
|
|
"akvorado/common/reporter"
|
|
)
|
|
|
|
func TestDemoExporterStart(t *testing.T) {
|
|
r := reporter.NewMock(t)
|
|
config := DemoExporterConfiguration{}
|
|
config.Reset()
|
|
if err := demoExporterStart(r, config, true); err != nil {
|
|
t.Fatalf("demoExporterStart() error:\n%+v", err)
|
|
}
|
|
}
|
|
|
|
func TestDemoExporter(t *testing.T) {
|
|
root := RootCmd
|
|
buf := new(bytes.Buffer)
|
|
root.SetOut(buf)
|
|
root.SetArgs([]string{"demo-exporter", "--check", "/dev/null"})
|
|
t.Setenv("AKVORADO_CFG_DEMOEXPORTER_SNMP_NAME", "test")
|
|
err := root.Execute()
|
|
if err == nil {
|
|
t.Fatal("`demo-exporter` should produce an error")
|
|
}
|
|
|
|
want := []string{
|
|
`invalid configuration:`,
|
|
`Key: 'DemoExporterConfiguration.SNMP.Interfaces' Error:Field validation for 'Interfaces' failed on the 'min' tag`,
|
|
`Key: 'DemoExporterConfiguration.Flows.Flows' Error:Field validation for 'Flows' failed on the 'min' tag`,
|
|
`Key: 'DemoExporterConfiguration.Flows.Target' Error:Field validation for 'Target' failed on the 'required' tag`,
|
|
}
|
|
got := strings.Split(err.Error(), "\n")
|
|
if diff := helpers.Diff(got, want); diff != "" {
|
|
t.Fatalf("`demo-exporter` (-got, +want):\n%s", diff)
|
|
}
|
|
}
|