Merge "Fix flag loading order"
This commit is contained in:
commit
e2297e429d
@ -38,14 +38,15 @@ func NewRootCmd(out io.Writer) (*cobra.Command, *environment.AirshipCTLSettings,
|
||||
SilenceUsage: true,
|
||||
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
||||
log.Init(settings.Debug, cmd.OutOrStderr())
|
||||
|
||||
// Load or Initialize airship Config
|
||||
settings.InitConfig()
|
||||
},
|
||||
}
|
||||
rootCmd.SetOutput(out)
|
||||
rootCmd.AddCommand(NewVersionCommand())
|
||||
|
||||
settings.InitFlags(rootCmd)
|
||||
// Load or Initialize airship Config
|
||||
settings.InitConfig()
|
||||
|
||||
return rootCmd, settings, nil
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
package cmd_test
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"opendev.org/airship/airshipctl/cmd"
|
||||
@ -36,6 +38,41 @@ func TestRoot(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestFlagLoading(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
args []string
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
name: "default, no flags",
|
||||
args: []string{},
|
||||
expected: "$HOME/.airship/config",
|
||||
},
|
||||
{
|
||||
name: "alternate airshipconfig",
|
||||
args: []string{"--airshipconf", "/custom/path/to/airshipconfig"},
|
||||
expected: "/custom/path/to/airshipconfig",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(subTest *testing.T) {
|
||||
// We don't care about the output of this test, so toss
|
||||
// it into a thowaway &bytes.buffer{}
|
||||
rootCmd, settings, err := cmd.NewRootCmd(&bytes.Buffer{})
|
||||
require.NoError(t, err)
|
||||
rootCmd.SetArgs(tt.args)
|
||||
|
||||
err = rootCmd.Execute()
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, settings.AirshipConfigPath(), tt.expected)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func getVanillaRootCmd(t *testing.T) *cobra.Command {
|
||||
t.Helper()
|
||||
rootCmd, _, err := cmd.NewRootCmd(nil)
|
||||
|
Loading…
x
Reference in New Issue
Block a user