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'
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
24667e3e54
Коммит
461a0b3b7c
45
cmd/platform/cmdtestlib.go
Обычный файл
45
cmd/platform/cmdtestlib.go
Обычный файл
@@ -0,0 +1,45 @@
|
||||
// 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)
|
||||
}
|
||||
Ссылка в новой задаче
Block a user