jesseduffield.lazygit/pkg/utils
stk 5761f92e16 Make UnixToDateSmart timezone-deterministic
The "custom time format" test case of TestGetCommitListDisplayStrings failed on
Windows. Root cause: UnixToDateSmart used time.Unix(timestamp, 0), which formats
in process-local time. In tests we pass an explicit 'now' (often UTC), but the
timestamp was rendered in Local, causing one-hour drift on non-UTC machines.

The test tried to work around this by doing os.Setenv("TZ", "UTC"); however,
this only worked on Mac and Linux. On Windows, it has no effect because Windows
uses registry-based timezone configuration, not TZ environment variables.

Change: convert the timestamp into now.Location() before both the same-day
comparison and formatting.

Why this is safe: callers already define the presentation timezone via the 'now'
argument (typically time.Now() in app code, controlled time in tests). This
aligns timestamp rendering with that caller intent and removes dependence on
global TZ state or OS-specific environment variable behavior.

Added regression tests for UTC and UTC+1 to ensure deterministic behavior across
all platforms.
2026-05-02 17:59:27 +02:00
..
yaml_utils Enable revive linter, and fix a bunch of warnings 2025-06-30 19:13:20 +02:00
color.go Store TextStyle in Pipe struct as pointer 2025-04-29 14:57:15 +02:00
color_test.go Fix Decolorise to also strip hyperlinks 2024-08-24 10:36:01 +02:00
date.go Make UnixToDateSmart timezone-deterministic 2026-05-02 17:59:27 +02:00
date_test.go Make UnixToDateSmart timezone-deterministic 2026-05-02 17:59:27 +02:00
dummies.go Move NewDummyCommon to pkg/common 2025-05-06 09:43:26 +02:00
errors.go
formatting.go Replace go-runewidth with uniseg 2025-12-23 16:49:16 +01:00
formatting_test.go Replace go-runewidth with uniseg 2025-12-23 16:49:16 +01:00
history_buffer.go
history_buffer_test.go
io.go Fix ForEachLineInFile to not lose the last line if it doesn't end with a LF 2024-10-09 15:37:08 +02:00
io_test.go Fix ForEachLineInFile to not lose the last line if it doesn't end with a LF 2024-10-09 15:37:08 +02:00
lines.go Replace go-runewidth with uniseg 2025-12-23 16:49:16 +01:00
lines_test.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
once_writer.go
once_writer_test.go Enable revive linter, and fix a bunch of warnings 2025-06-30 19:13:20 +02:00
rebase_todo.go Pass todo flag to EditRebaseTodo 2026-01-28 10:15:51 +01:00
rebase_todo_test.go Fix moving a commit across a branch boundary in a stack 2024-12-23 12:18:48 +01:00
regexp.go
regexp_test.go
search.go Enable intrange linter, and fix warnings 2025-06-30 18:30:11 +02:00
search_test.go
slice.go Modernize all codes 2025-11-15 10:46:23 +01:00
slice_test.go Remove redundant variable dedeclarations 2024-05-19 16:38:21 +10:00
string_pool.go Store Commit.Hash by pointer (kept in a pool of hashes) 2025-04-29 14:57:15 +02:00
string_stack.go
template.go Modernize all codes 2025-11-15 10:46:23 +01:00
template_test.go
thread_safe_map.go
thread_safe_map_test.go Enable intrange linter, and fix warnings 2025-06-30 18:30:11 +02:00
utils.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
utils_test.go