diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/base/tool.go | 7 | ||||
-rw-r--r-- | modules/base/tool_test.go | 14 |
2 files changed, 21 insertions, 0 deletions
diff --git a/modules/base/tool.go b/modules/base/tool.go index 32987a0b8b..3fe5a3d84f 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -277,6 +277,13 @@ func computeTimeDiff(diff int64) (int64, string) { return diff, diffStr } +// MinutesToFriendly returns a user friendly string with number of minutes +// converted to hours and minutes. +func MinutesToFriendly(minutes int) string { + duration := time.Duration(minutes) * time.Minute + return TimeSincePro(time.Now().Add(-duration)) +} + // TimeSincePro calculates the time interval and generate full user-friendly string. func TimeSincePro(then time.Time) string { return timeSincePro(then, time.Now()) diff --git a/modules/base/tool_test.go b/modules/base/tool_test.go index 43d4df32f7..bd9c6e276e 100644 --- a/modules/base/tool_test.go +++ b/modules/base/tool_test.go @@ -167,6 +167,20 @@ func TestComputeTimeDiff(t *testing.T) { test(3*Year, "3 years", 0, Year-1) } +func TestMinutesToFriendly(t *testing.T) { + // test that a number of minutes yields the expected string + test := func(expected string, minutes int) { + actual := MinutesToFriendly(minutes) + assert.Equal(t, expected, actual) + } + test("1 minute", 1) + test("2 minutes", 2) + test("1 hour", 60) + test("1 hour, 1 minute", 61) + test("1 hour, 2 minutes", 62) + test("2 hours", 120) +} + func TestTimeSince(t *testing.T) { assert.Equal(t, "now", timeSince(BaseDate, BaseDate, "en")) |