func newHealthCheckCmd(dbCreateCb DbCreateCb) *cobra.Command {
cmd := &cobra.Command{
Use: "healthcheck",
- Short: "healthcheck - validates database healthiness",
- Long: `healthcheck - validates database healthiness`,
+ Short: "Validate database healthiness",
+ Long: `Validate database healthiness`,
+ Args: cobra.ExactArgs(0),
RunE: func(cmd *cobra.Command, args []string) error {
out, err := runHealthCheck(dbCreateCb)
cmd.Println(out)
for _, dbInst := range dbCreateCb().Instances {
info, err := dbInst.State()
if err != nil {
- anyErr = fmt.Errorf("SDL CLI error: %v", err)
+ anyErr = err
}
states = append(states, *info)
}
var expOkErr error
expHelp := "Usage:\n " + "healthcheck [flags]"
expNokErr := errors.New("unknown flag: --some-unknown-flag")
+ expArgCntErr := errors.New("accepts 0 arg(s), received 1")
tests := []struct {
args string
expErr error
{args: "-h", expErr: expOkErr, expOutput: expHelp},
{args: "--help", expErr: expOkErr, expOutput: expHelp},
{args: "--some-unknown-flag", expErr: expNokErr, expOutput: expHelp},
+ {args: "some-extra-argument", expErr: expArgCntErr, expOutput: expHelp},
}
for _, test := range tests {
func TestCliHealthCheckCanShowHaDeploymentStatusCorrectlyWhenDbStateQueryFails(t *testing.T) {
setupHcMockMasterDb("10.20.30.40", "6379")
hcMocks.dbErr = errors.New("Some error")
- expCliErr := errors.New("SDL CLI error: Some error")
buf := new(bytes.Buffer)
cmd := cli.NewHealthCheckCmd(newMockDatabase)
err := cmd.Execute()
stderr := buf.String()
- assert.Equal(t, expCliErr, err)
- assert.Contains(t, stderr, "Error: "+expCliErr.Error())
+ assert.Equal(t, hcMocks.dbErr, err)
+ assert.Contains(t, stderr, "Error: "+hcMocks.dbErr.Error())
}
func TestCliHealthCheckCanShowHaDeploymentOkStatusCorrectlyWhenDbStateIsFromReplicaOnly(t *testing.T) {