The original approach of running version, but that seems to bypass wrappedMain entirely

This commit is contained in:
Wilken Rivera 2021-04-05 16:06:41 -04:00
parent 708f9cdfbd
commit fd3cc596c7
2 changed files with 28 additions and 0 deletions

View File

@ -95,6 +95,8 @@ func TestHelperProcess(*testing.T) {
os.Exit((&BuildCommand{Meta: commandMeta()}).Run(args))
case "hcl2_upgrade":
os.Exit((&HCL2UpgradeCommand{Meta: commandMeta()}).Run(args))
case "version":
os.Exit((&VersionCommand{Meta: commandMeta()}).Run(args))
default:
fmt.Fprintf(os.Stderr, "Unknown command %q\n", cmd)
os.Exit(2)

View File

@ -1,11 +1,37 @@
package command
import (
"fmt"
"testing"
"github.com/hashicorp/packer/version"
"github.com/mitchellh/cli"
"github.com/stretchr/testify/assert"
)
func TestVersionCommand_implements(t *testing.T) {
var _ cli.Command = &VersionCommand{}
}
func Test_version(t *testing.T) {
tc := []struct {
command []string
env []string
expected string
}{
{[]string{"version"}, nil, fmt.Sprintf("Packer v%s", version.FormattedVersion()) + "\n"},
{[]string{"version", "&"}, nil, fmt.Sprintf("Packer v%s", version.FormattedVersion()) + "\n"},
}
for _, tc := range tc {
t.Run(fmt.Sprintf("packer %s", tc.command), func(t *testing.T) {
p := helperCommand(t, tc.command...)
bs, err := p.Output()
fmt.Println(err)
if err != nil {
t.Fatalf("%v: %s", err, bs)
}
assert.Equal(t, tc.expected, string(bs))
})
}
}