Files
mattermost/cmd/platform/cmdtestlib.go
Harrison Healey 461a0b3b7c PLT-6113 Added initial unit tests for cmd package (#6086)
* Fixed app.CreateUser not using the provided locale

* Added initial unit tests for cmd package

* Disabled unit tests while we move to 'go build'
2017-04-15 13:45:22 -04:00

46 lines
1020 B
Go

// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package main
import (
"bytes"
"strings"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
)
func runCommand(argString string) error {
err, _ := runCommandWithOutput(argString)
return err
}
func runCommandWithOutput(argString string) (error, string) {
// Set arguments on the root command
rootCmd.SetArgs(strings.Split(argString, " "))
defer rootCmd.SetArgs([]string{})
output := new(bytes.Buffer)
rootCmd.SetOutput(output)
defer rootCmd.SetOutput(nil)
// Executing the root command will call the necessary subcommand
cmd, err := rootCmd.ExecuteC()
// And clear the arguments on the subcommand that was actually called since they'd otherwise
// be used on the next call to this command
clearArgs(cmd)
return err, output.String()
}
func clearArgs(command *cobra.Command) {
command.Flags().VisitAll(clearFlag)
}
func clearFlag(flag *pflag.Flag) {
flag.Value.Set(flag.DefValue)
}