Files
akvorado/cmd/version_test.go
2025-09-14 20:49:38 +02:00

62 lines
1.4 KiB
Go

// SPDX-FileCopyrightText: 2022 Free Mobile
// SPDX-License-Identifier: AGPL-3.0-only
package cmd_test
import (
"bytes"
"fmt"
"runtime"
"slices"
"strings"
"testing"
"akvorado/cmd"
"akvorado/common/helpers"
)
func TestVersion(t *testing.T) {
root := cmd.RootCmd
buf := new(bytes.Buffer)
root.SetOut(buf)
root.SetArgs([]string{"version"})
err := root.Execute()
if err != nil {
t.Errorf("`version` error:\n%+v", err)
}
want := []string{
"akvorado dev",
fmt.Sprintf(" Built with: %s", runtime.Version()),
fmt.Sprintf(" Build setting GOARCH=%s", runtime.GOARCH),
fmt.Sprintf(" Build setting GOOS=%s", runtime.GOOS),
"",
}
got := strings.Split(buf.String(), "\n")
got = slices.DeleteFunc(got, func(s string) bool {
return strings.HasPrefix(s, " Build setting") &&
!strings.HasPrefix(s, " Build setting GOOS") &&
!strings.HasPrefix(s, " Build setting GOARCH")
})
if diff := helpers.Diff(got[:len(want)], want); diff != "" {
t.Errorf("`version` (-got, +want):\n%s", diff)
}
if strings.Contains(buf.String(), "\n- SrcNetName\n") {
t.Errorf("`version` contains %q", "SrcNetName")
}
}
func TestVersionDebug(t *testing.T) {
root := cmd.RootCmd
buf := new(bytes.Buffer)
root.SetOut(buf)
root.SetArgs([]string{"version", "-d"})
err := root.Execute()
if err != nil {
t.Errorf("`version` error:\n%+v", err)
}
if !strings.Contains(buf.String(), "\n- SrcNetName\n") {
t.Errorf("`version` does NOT contain %q", "SrcNetName")
}
}