code.gitea.io/gitea@v1.22.3/modules/timeutil/datetime_test.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package timeutil 5 6 import ( 7 "testing" 8 "time" 9 10 "code.gitea.io/gitea/modules/setting" 11 "code.gitea.io/gitea/modules/test" 12 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestDateTime(t *testing.T) { 17 testTz, _ := time.LoadLocation("America/New_York") 18 defer test.MockVariableValue(&setting.DefaultUILocation, testTz)() 19 20 refTimeStr := "2018-01-01T00:00:00Z" 21 refDateStr := "2018-01-01" 22 refTime, _ := time.Parse(time.RFC3339, refTimeStr) 23 refTimeStamp := TimeStamp(refTime.Unix()) 24 25 assert.EqualValues(t, "-", DateTime("short", nil)) 26 assert.EqualValues(t, "-", DateTime("short", 0)) 27 assert.EqualValues(t, "-", DateTime("short", time.Time{})) 28 assert.EqualValues(t, "-", DateTime("short", TimeStamp(0))) 29 30 actual := DateTime("short", "invalid") 31 assert.EqualValues(t, `<absolute-date weekday="" year="numeric" month="short" day="numeric" date="invalid">invalid</absolute-date>`, actual) 32 33 actual = DateTime("short", refTimeStr) 34 assert.EqualValues(t, `<absolute-date weekday="" year="numeric" month="short" day="numeric" date="2018-01-01T00:00:00Z">2018-01-01T00:00:00Z</absolute-date>`, actual) 35 36 actual = DateTime("short", refTime) 37 assert.EqualValues(t, `<absolute-date weekday="" year="numeric" month="short" day="numeric" date="2018-01-01T00:00:00Z">2018-01-01</absolute-date>`, actual) 38 39 actual = DateTime("short", refDateStr) 40 assert.EqualValues(t, `<absolute-date weekday="" year="numeric" month="short" day="numeric" date="2018-01-01">2018-01-01</absolute-date>`, actual) 41 42 actual = DateTime("short", refTimeStamp) 43 assert.EqualValues(t, `<absolute-date weekday="" year="numeric" month="short" day="numeric" date="2017-12-31T19:00:00-05:00">2017-12-31</absolute-date>`, actual) 44 45 actual = DateTime("full", refTimeStamp) 46 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) 47 }