The original approach of running version, but that seems to bypass wrappedMain entirely
This commit is contained in:
parent
708f9cdfbd
commit
fd3cc596c7
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue