Skip to content

Commit

Permalink
Merge pull request #1160 from vschettino/flag-timestamp-value
Browse files Browse the repository at this point in the history
Allow using Value with TimestampFlag
  • Loading branch information
rliebz committed Jul 12, 2020
2 parents 8e16b98 + 54fbe0a commit d2d2098
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
11 changes: 11 additions & 0 deletions flag_test.go
Expand Up @@ -1836,6 +1836,17 @@ func TestTimestampFlagApply(t *testing.T) {
expect(t, *fl.Value.timestamp, expectedResult)
}

func TestTimestampFlagApplyValue(t *testing.T) {
expectedResult, _ := time.Parse(time.RFC3339, "2006-01-02T15:04:05Z")
fl := TimestampFlag{Name: "time", Aliases: []string{"t"}, Layout: time.RFC3339, Value: NewTimestamp(expectedResult)}
set := flag.NewFlagSet("test", 0)
_ = fl.Apply(set)

err := set.Parse([]string{""})
expect(t, err, nil)
expect(t, *fl.Value.timestamp, expectedResult)
}

func TestTimestampFlagApply_Fail_Parse_Wrong_Layout(t *testing.T) {
fl := TimestampFlag{Name: "time", Aliases: []string{"t"}, Layout: "randomlayout"}
set := flag.NewFlagSet("test", 0)
Expand Down
4 changes: 3 additions & 1 deletion flag_timestamp.go
Expand Up @@ -118,7 +118,9 @@ func (f *TimestampFlag) Apply(set *flag.FlagSet) error {
if f.Layout == "" {
return fmt.Errorf("timestamp Layout is required")
}
f.Value = &Timestamp{}
if f.Value == nil {
f.Value = &Timestamp{}
}
f.Value.SetLayout(f.Layout)

if val, ok := flagFromEnvOrFile(f.EnvVars, f.FilePath); ok {
Expand Down

0 comments on commit d2d2098

Please sign in to comment.