package node import ( "strconv" "testing" "github.com/spf13/cobra" ) func TestEvacuateFlags(t *testing.T) { defaults := NewEvacuateOptions(nil) tests := map[string]struct { flagName string defaultVal string }{ "dry run": { flagName: flagDryRun, defaultVal: strconv.FormatBool(defaults.DryRun), }, "force": { flagName: flagForce, defaultVal: strconv.FormatBool(defaults.Force), }, "grace period": { flagName: flagGracePeriod, defaultVal: strconv.FormatInt(defaults.GracePeriod, 10), }, } cmd := NewCommandManageNode(nil, ManageNodeCommandName, ManageNodeCommandName, nil, nil) for _, v := range tests { testFlag(cmd, v.flagName, v.defaultVal, t) } } func testFlag(cmd *cobra.Command, flagName string, defaultVal string, t *testing.T) { f := cmd.Flag(flagName) if f == nil { t.Fatalf("expected flag %s to be registered but found none", flagName) } if f.DefValue != defaultVal { t.Errorf("expected default value of %s for %s but found %s", defaultVal, flagName, f.DefValue) } } func TestEvacOptionsGracePeriod(t *testing.T) { opts := &EvacuateOptions{ GracePeriod: 999, } // ensure delete options are created correctly deleteOptions := opts.makeDeleteOptions() if deleteOptions == nil { t.Fatalf("nil delete options were created") } if deleteOptions.GracePeriodSeconds == nil { t.Fatalf("delete options did not contain grace period %v", deleteOptions) } if *deleteOptions.GracePeriodSeconds != opts.GracePeriod { t.Errorf("expected %d grace period but found %d", opts.GracePeriod, *deleteOptions.GracePeriodSeconds) } }