You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

datetime_test.go 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2023 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package timeutil
  4. import (
  5. "testing"
  6. "time"
  7. "code.gitea.io/gitea/modules/setting"
  8. "code.gitea.io/gitea/modules/test"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestDateTime(t *testing.T) {
  12. testTz, _ := time.LoadLocation("America/New_York")
  13. defer test.MockVariableValue(&setting.DefaultUILocation, testTz)()
  14. refTimeStr := "2018-01-01T00:00:00Z"
  15. refTime, _ := time.Parse(time.RFC3339, refTimeStr)
  16. refTimeStamp := TimeStamp(refTime.Unix())
  17. assert.EqualValues(t, "-", DateTime("short", nil))
  18. assert.EqualValues(t, "-", DateTime("short", 0))
  19. assert.EqualValues(t, "-", DateTime("short", time.Time{}))
  20. assert.EqualValues(t, "-", DateTime("short", TimeStamp(0)))
  21. actual := DateTime("short", "invalid")
  22. 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)
  23. actual = DateTime("short", refTimeStr)
  24. 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)
  25. actual = DateTime("short", refTime)
  26. 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)
  27. actual = DateTime("short", refTimeStamp)
  28. 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)
  29. actual = DateTime("full", refTimeStamp)
  30. 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)
  31. }