From db80fb3243e75df6b90888e8bc2c2d1aacf3f3b2 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann Date: Sat, 26 Feb 2022 15:26:39 +0100 Subject: [PATCH] Treat durations without unit as hours --- luxwslang/terminology.go | 1 + luxwslang/terminology_test.go | 2 ++ 2 files changed, 3 insertions(+) diff --git a/luxwslang/terminology.go b/luxwslang/terminology.go index 280100b..806d7b6 100644 --- a/luxwslang/terminology.go +++ b/luxwslang/terminology.go @@ -59,6 +59,7 @@ func (*Terminology) ParseDuration(v string) (time.Duration, error) { if n, err := fmt.Sscanf(v, "%d:%d:%d\n", &hours, &minutes, &seconds); err == nil && n == 3 { } else if n, err := fmt.Sscanf(v, "%d:%d\n", &hours, &minutes); err == nil && n == 2 { } else if n, err := fmt.Sscanf(v, "%dh\n", &hours); err == nil && n == 1 { + } else if n, err := fmt.Sscanf(v, "%d\n", &hours); err == nil && n == 1 { } else { return math.MinInt64, fmt.Errorf("unrecognized duration format %q: %w", v, err) } diff --git a/luxwslang/terminology_test.go b/luxwslang/terminology_test.go index 61060ec..0cda881 100644 --- a/luxwslang/terminology_test.go +++ b/luxwslang/terminology_test.go @@ -90,6 +90,8 @@ func TestParseDuration(t *testing.T) { {terms: German, input: "-100h", want: "-100h"}, {terms: German, input: " -23:1:2\n", want: "-23h1m2s"}, {terms: German, input: "-1:0:0", want: "-1h"}, + {terms: German, input: "-100", want: "-100h"}, + {terms: German, input: "123", want: "123h"}, {terms: German, input: "0:-1:0", wantErr: true}, {terms: German, input: "0:0:-1", wantErr: true}, } {