Skip to content

Commit ef9030d

Browse files
committed
add & fix tests
1 parent 3cc2a71 commit ef9030d

File tree

7 files changed

+34
-6
lines changed

7 files changed

+34
-6
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+
}

Diff for: templates/package/shared/versionlist.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<div class="flex-item-main">
2626
<a class="flex-item-title" href="{{.VersionWebLink}}">{{.Version.LowerVersion}}</a>
2727
<div class="flex-item-body">
28-
{{ctx.Locale.Tr "packages.published_by" (TimeSinceUnix .Version.CreatedUnix ctx.Locale) .Creator.HomeLink .Creator.GetDisplayName}}
28+
{{ctx.Locale.Tr "packages.published_by" (DateUtils.TimeSince .Version.CreatedUnix) .Creator.HomeLink .Creator.GetDisplayName}}
2929
</div>
3030
</div>
3131
</div>

Diff for: templates/repo/issue/milestones.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
{{if .UpdatedUnix}}
4848
<div class="flex-text-block">
4949
{{svg "octicon-clock"}}
50-
{{ctx.Locale.Tr "repo.milestones.update_ago" (TimeSinceUnix .UpdatedUnix ctx.Locale)}}
50+
{{ctx.Locale.Tr "repo.milestones.update_ago" (DateUtils.TimeSince .UpdatedUnix)}}
5151
</div>
5252
{{end}}
5353
<div class="flex-text-block">

Diff for: templates/shared/searchbottom.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</div>
88
<div class="tw-mr-4">
99
{{if not .result.UpdatedUnix.IsZero}}
10-
<span class="ui grey text">{{ctx.Locale.Tr "explore.code_last_indexed_at" (TimeSinceUnix .result.UpdatedUnix ctx.Locale)}}</span>
10+
<span class="ui grey text">{{ctx.Locale.Tr "explore.code_last_indexed_at" (DateUtils.TimeSince .result.UpdatedUnix)}}</span>
1111
{{end}}
1212
</div>
1313
</div>

Diff for: templates/user/dashboard/milestones.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
{{if .UpdatedUnix}}
105105
<div class="flex-text-block">
106106
{{svg "octicon-clock"}}
107-
{{ctx.Locale.Tr "repo.milestones.update_ago" (TimeSinceUnix .UpdatedUnix ctx.Locale)}}
107+
{{ctx.Locale.Tr "repo.milestones.update_ago" (DateUtils.TimeSince .UpdatedUnix)}}
108108
</div>
109109
{{end}}
110110
<div class="flex-text-block">

0 commit comments

Comments
 (0)