package cmd

import (
	"bytes"
	"testing"
)

func TestVersionCommandPrintsVersion(t *testing.T) {
	setTestConfigHome(t)

	var stdout bytes.Buffer
	if err := RunWithIO([]string{"version"}, &stdout); err != nil {
		t.Fatalf("RunWithIO(version) error = %v", err)
	}

	if got, want := stdout.String(), "dev\n"; got != want {
		t.Fatalf("RunWithIO(version) output = %q, want %q", got, want)
	}
}

func TestVersionCommandRejectsArguments(t *testing.T) {
	setTestConfigHome(t)

	var stdout bytes.Buffer
	err := RunWithIO([]string{"version", "extra"}, &stdout)
	if err == nil {
		t.Fatal("RunWithIO(version extra) error = nil, want argument validation error")
	}
	if got, want := err.Error(), "version does not accept arguments"; got != want {
		t.Fatalf("RunWithIO(version extra) error = %q, want %q", got, want)
	}
}
