Skip to content

Commit 096f257

Browse files
committed
add tests
1 parent 3cc2a71 commit 096f257

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

Diff for: modules/templates/helper.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func NewFuncMap() template.FuncMap {
7373
return fmt.Sprint(time.Since(startTime).Nanoseconds()/1e6) + "ms"
7474
},
7575

76-
// for backward compatibility only, do not use it anymore
76+
// for backward compatibility only, do not use them anymore
7777
"TimeSince": timeSinceLegacy,
7878
"TimeSinceUnix": timeSinceLegacy,
7979
"DateTime": dateTimeLegacy,

Diff for: modules/templates/util_date.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212

1313
"code.gitea.io/gitea/modules/setting"
1414
"code.gitea.io/gitea/modules/timeutil"
15+
"code.gitea.io/gitea/modules/translation"
1516
)
1617

1718
type DateUtils struct{}
@@ -63,7 +64,7 @@ func dateTimeLegacy(format string, datetime any, _ ...string) template.HTML {
6364
return dateTimeFormat(format, datetime)
6465
}
6566

66-
func timeSinceLegacy(time any, _ ...any) template.HTML {
67+
func timeSinceLegacy(time any, _ translation.Locale) template.HTML {
6768
if !setting.IsProd || setting.IsInTesting {
6869
panic("timeSinceLegacy is for backward compatibility only, do not use it in new code")
6970
}
@@ -74,10 +75,16 @@ func anyToTime(any any) (t time.Time, isZero bool) {
7475
switch v := any.(type) {
7576
case nil:
7677
// it is zero
78+
case *time.Time:
79+
if v != nil {
80+
t = *v
81+
}
7782
case time.Time:
7883
t = v
7984
case timeutil.TimeStamp:
8085
t = v.AsTime()
86+
case timeutil.TimeStampNano:
87+
t = v.AsTime()
8188
case int:
8289
t = timeutil.TimeStamp(v).AsTime()
8390
case int64:

Diff for: modules/templates/util_date_test.go

+21
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,24 @@ func TestDateTime(t *testing.T) {
4949
actual = du.FullTime(refTimeStamp)
5050
assert.EqualValues(t, `<relative-time weekday="" year="numeric" format="datetime" month="short" day="numeric" hour="numeric" minute="numeric" second="numeric" data-tooltip-content data-tooltip-interactive="true" datetime="2017-12-31T19:00:00-05:00">2017-12-31 19:00:00 -05:00</relative-time>`, actual)
5151
}
52+
53+
func TestTimeSince(t *testing.T) {
54+
testTz, _ := time.LoadLocation("America/New_York")
55+
defer test.MockVariableValue(&setting.DefaultUILocation, testTz)()
56+
defer test.MockVariableValue(&setting.IsInTesting, false)()
57+
58+
du := NewDateUtils()
59+
assert.EqualValues(t, "-", du.TimeSince(nil))
60+
61+
refTimeStr := "2018-01-01T00:00:00Z"
62+
refTime, _ := time.Parse(time.RFC3339, refTimeStr)
63+
64+
actual := du.TimeSince(refTime)
65+
assert.EqualValues(t, `<relative-time prefix="" tense="past" datetime="2018-01-01T00:00:00Z" data-tooltip-content data-tooltip-interactive="true">2018-01-01 00:00:00 +00:00</relative-time>`, actual)
66+
67+
actual = timeSinceTo(&refTime, time.Time{})
68+
assert.EqualValues(t, `<relative-time prefix="" tense="future" datetime="2018-01-01T00:00:00Z" data-tooltip-content data-tooltip-interactive="true">2018-01-01 00:00:00 +00:00</relative-time>`, actual)
69+
70+
actual = timeSinceLegacy(timeutil.TimeStampNano(refTime.UnixNano()), nil)
71+
assert.EqualValues(t, `<relative-time prefix="" tense="past" datetime="2017-12-31T19:00:00-05:00" data-tooltip-content data-tooltip-interactive="true">2017-12-31 19:00:00 -05:00</relative-time>`, actual)
72+
}

0 commit comments

Comments
 (0)