2023-04-25 22:48:30 +03:00
// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package timeutil
import (
"testing"
"time"
"code.gitea.io/gitea/modules/setting"
2024-01-02 22:09:18 +03:00
"code.gitea.io/gitea/modules/test"
2023-04-25 22:48:30 +03:00
"github.com/stretchr/testify/assert"
)
func TestDateTime ( t * testing . T ) {
2024-01-02 22:09:18 +03:00
testTz , _ := time . LoadLocation ( "America/New_York" )
defer test . MockVariableValue ( & setting . DefaultUILocation , testTz ) ( )
2023-04-25 22:48:30 +03:00
refTimeStr := "2018-01-01T00:00:00Z"
refTime , _ := time . Parse ( time . RFC3339 , refTimeStr )
refTimeStamp := TimeStamp ( refTime . Unix ( ) )
2023-05-02 12:54:29 +03:00
assert . EqualValues ( t , "-" , DateTime ( "short" , nil ) )
assert . EqualValues ( t , "-" , DateTime ( "short" , 0 ) )
assert . EqualValues ( t , "-" , DateTime ( "short" , time . Time { } ) )
assert . EqualValues ( t , "-" , DateTime ( "short" , TimeStamp ( 0 ) ) )
2023-04-25 22:48:30 +03:00
actual := DateTime ( "short" , "invalid" )
2024-01-02 22:09:18 +03:00
assert . EqualValues ( t , ` <relative-time data-tooltip-content data-tooltip-interactive="true" format="datetime" weekday="" year="numeric" month="short" day="numeric" datetime="invalid">invalid</relative-time> ` , actual )
2023-04-25 22:48:30 +03:00
actual = DateTime ( "short" , refTimeStr )
2024-01-02 22:09:18 +03:00
assert . EqualValues ( t , ` <relative-time data-tooltip-content data-tooltip-interactive="true" format="datetime" weekday="" year="numeric" month="short" day="numeric" datetime="2018-01-01T00:00:00Z">2018-01-01T00:00:00Z</relative-time> ` , actual )
2023-04-25 22:48:30 +03:00
actual = DateTime ( "short" , refTime )
2024-01-02 22:09:18 +03:00
assert . EqualValues ( t , ` <relative-time data-tooltip-content data-tooltip-interactive="true" format="datetime" weekday="" year="numeric" month="short" day="numeric" datetime="2018-01-01T00:00:00Z">2018-01-01</relative-time> ` , actual )
2023-04-25 22:48:30 +03:00
actual = DateTime ( "short" , refTimeStamp )
2024-01-02 22:09:18 +03:00
assert . EqualValues ( t , ` <relative-time data-tooltip-content data-tooltip-interactive="true" format="datetime" weekday="" year="numeric" month="short" day="numeric" datetime="2017-12-31T19:00:00-05:00">2017-12-31</relative-time> ` , actual )
2023-04-25 22:48:30 +03:00
actual = DateTime ( "full" , refTimeStamp )
2024-01-02 22:09:18 +03:00
assert . EqualValues ( t , ` <relative-time data-tooltip-content data-tooltip-interactive="true" format="datetime" weekday="" year="numeric" month="short" day="numeric" hour="numeric" minute="numeric" second="numeric" datetime="2017-12-31T19:00:00-05:00">2017-12-31 19:00:00 -05:00</relative-time> ` , actual )
2023-04-25 22:48:30 +03:00
}