Atlas › Test

TestParseDurationDefaultDays

Exact test identity: go.temporal.io/server/common/primitives/timestamp/TestParseDurationSuite/TestParseDurationDefaultDays

Package
go.temporal.io/server/common/primitives/timestamp
Suite / test hierarchy
TestParseDurationSuite/TestParseDurationDefaultDays
Test
TestParseDurationDefaultDays
Introduced at
parse_duration.go ×1 Frontier kind: Joint frontier
Covered ranges
5
Covered lines
11
Covered files
1

Covered source

Expand a file to inspect source; the > gutter marks covered lines.

go.temporal.io/server/common/primitives/timestamp/parse_duration.go 11 covered LOC · 5 ranges

Open complete file

22 // ParseDuration is like time.ParseDuration, but supports unit "d" for days
23 // (always interpreted as exactly 24 hours).
24 > func ParseDuration(s string) (time.Duration, error) { parse_duration.go
25 > s = reDays.ReplaceAllStringFunc(s, func(v string) string {
26 > fv, err := strconv.ParseFloat(strings.TrimSuffix(v, "d"), 64) parse_duration.go
27 > if err != nil {
28 return v // will cause time.ParseDuration to return an error
29 }
30 > return fmt.Sprintf("%fh", 24*fv) parse_duration.go
31 })
32 > return time.ParseDuration(s) parse_duration.go
33 }
34
36 // for days (always interpreted as exactly 24 hours), and also supports
37 // unit-less numbers, which are interpreted as days.
38 > func ParseDurationDefaultDays(s string) (time.Duration, error) { parse_duration.go
39 > if reUnitless.MatchString(s) {
40 > s += "d"
41 > }
42 > return ParseDuration(s)
43 }
44