resetFlagsFromMap resets each key or flag name from a flags map to it's default value. This can be used for test teardown to ensure that the used flag goes back to its default value.
(cmd *cobra.Command, flagsMap map[string]string)
| 79 | // default value. This can be used for test teardown to ensure that the used |
| 80 | // flag goes back to its default value. |
| 81 | func resetFlagsFromMap(cmd *cobra.Command, flagsMap map[string]string) error { |
| 82 | for k := range flagsMap { |
| 83 | if err := checkFlagExistsInCmd(cmd, k); err != nil { |
| 84 | return err |
| 85 | } |
| 86 | defValue := cmd.Flag(k).DefValue |
| 87 | if err := cmd.Flags().Set(k, defValue); err != nil { |
| 88 | return err |
| 89 | } |
| 90 | // NOTE(@bzon): force the Changed state of the flag to be false. |
| 91 | // Because even if the flag is set to its default value, |
| 92 | // it is still technically "Changed". |
| 93 | cmd.Flag(k).Changed = false |
| 94 | } |
| 95 | return nil |
| 96 | } |
| 97 | |
| 98 | type execTestCmdFlags struct { |
| 99 | t *testing.T |
no test coverage detected