39 lines
1.0 KiB
Go
39 lines
1.0 KiB
Go
package app
|
|
|
|
import (
|
|
"bytes"
|
|
"io"
|
|
"strings"
|
|
"testing"
|
|
|
|
"gitea.maximumdirect.net/eric/narratio/internal/buildinfo"
|
|
)
|
|
|
|
func TestExecuteVersionReportsEmbeddedBuildVersion(t *testing.T) {
|
|
original := buildinfo.Version
|
|
buildinfo.Version = "v1.5.0-test"
|
|
t.Cleanup(func() { buildinfo.Version = original })
|
|
|
|
var stdout bytes.Buffer
|
|
var stderr bytes.Buffer
|
|
if code := Execute([]string{"version"}, &stdout, &stderr); code != 0 {
|
|
t.Fatalf("Execute() code = %d, stderr = %q", code, stderr.String())
|
|
}
|
|
if got, want := stdout.String(), "narratio v1.5.0-test\n"; got != want {
|
|
t.Fatalf("stdout = %q, want %q", got, want)
|
|
}
|
|
if stderr.Len() != 0 {
|
|
t.Fatalf("stderr = %q, want empty", stderr.String())
|
|
}
|
|
}
|
|
|
|
func TestExecuteVersionRejectsArguments(t *testing.T) {
|
|
var stderr bytes.Buffer
|
|
if code := Execute([]string{"version", "extra"}, io.Discard, &stderr); code == 0 {
|
|
t.Fatal("Execute() code = 0, want failure")
|
|
}
|
|
if !strings.Contains(stderr.String(), "version: unexpected arguments") {
|
|
t.Fatalf("stderr = %q, want argument error", stderr.String())
|
|
}
|
|
}
|