54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"os/exec"
|
|
"testing"
|
|
|
|
"git.hrafn.xyz/aether/gosick/internal/homesick/version"
|
|
)
|
|
|
|
func TestRunVersionCommand(t *testing.T) {
|
|
stdout := &bytes.Buffer{}
|
|
stderr := &bytes.Buffer{}
|
|
|
|
exitCode := run([]string{"version"}, stdout, stderr)
|
|
if exitCode != 0 {
|
|
t.Fatalf("run(version) exit code = %d, want 0", exitCode)
|
|
}
|
|
if got := stdout.String(); got != version.String+"\n" {
|
|
t.Fatalf("stdout = %q, want %q", got, version.String+"\n")
|
|
}
|
|
if got := stderr.String(); got != "" {
|
|
t.Fatalf("stderr = %q, want empty", got)
|
|
}
|
|
|
|
}
|
|
|
|
func TestMainVersionCommand(t *testing.T) {
|
|
if os.Getenv("GO_WANT_HELPER_PROCESS") == "1" {
|
|
os.Args = []string{"gosick", "version"}
|
|
main()
|
|
return
|
|
}
|
|
|
|
cmd := exec.Command(os.Args[0], "-test.run=TestMainVersionCommand")
|
|
cmd.Env = append(os.Environ(), "GO_WANT_HELPER_PROCESS=1")
|
|
|
|
stdout := &bytes.Buffer{}
|
|
stderr := &bytes.Buffer{}
|
|
cmd.Stdout = stdout
|
|
cmd.Stderr = stderr
|
|
|
|
if err := cmd.Run(); err != nil {
|
|
t.Fatalf("helper process failed: %v, stderr: %s", err, stderr.String())
|
|
}
|
|
if got := stdout.String(); got != version.String+"\n" {
|
|
t.Fatalf("stdout = %q, want %q", got, version.String+"\n")
|
|
}
|
|
if got := stderr.String(); got != "" {
|
|
t.Fatalf("stderr = %q, want empty", got)
|
|
}
|
|
}
|