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 move OS commands into their own package 2020-09-29 20:48:49 +10:00
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 chore: use errors.New to replace fmt.Errorf with no parameters. 2024-04-24 16:21:34 +08:00
history_buffer_test.go Add search history 2023-09-20 08:35:41 +03:00
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 add deadlock mutex package 2022-08-07 11:16:14 +10:00
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 add FindNamedMatches function in utils 2021-12-26 16:48:23 +11:00
regexp_test.go add FindNamedMatches function in utils 2021-12-26 16:48:23 +11:00
search.go Enable intrange linter, and fix warnings 2025-06-30 18:30:11 +02:00
search_test.go Rename FuzzySearch to FilterStrings 2024-03-17 11:55:30 +01:00
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 start refactoring gui 2022-03-17 19:13:40 +11:00
template.go Modernize all codes 2025-11-15 10:46:23 +01:00
template_test.go fix: fix ReplacePlaceholderString 2023-01-18 20:56:22 +09:00
thread_safe_map.go use thread safe map 2022-10-02 20:57:44 -07:00
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 Replace min/max helpers with built-in min/max 2024-04-07 23:24:10 +08:00