sync file-type support across upload/convert and fix collected_at timezone handling
This commit is contained in:
@@ -2,6 +2,7 @@ package parser
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.mchus.pro/mchus/logpile/internal/models"
|
||||
)
|
||||
@@ -32,3 +33,30 @@ func TestAppendExtractionWarnings(t *testing.T) {
|
||||
t.Fatalf("expected warning details in RawData")
|
||||
}
|
||||
}
|
||||
|
||||
func TestInferCollectedAtFromExtractedFiles_PrefersReliableMTime(t *testing.T) {
|
||||
files := []ExtractedFile{
|
||||
{Path: "a.log", ModTime: time.Date(1980, 1, 1, 0, 0, 0, 0, time.UTC)},
|
||||
{Path: "b.log", ModTime: time.Date(2025, 12, 12, 10, 14, 49, 0, time.FixedZone("EST", -5*3600))},
|
||||
{Path: "c.log", ModTime: time.Date(2026, 2, 28, 4, 18, 18, 0, time.FixedZone("UTC+8", 8*3600))},
|
||||
}
|
||||
|
||||
got := inferCollectedAtFromExtractedFiles(files)
|
||||
want := files[2].ModTime
|
||||
if !got.Equal(want) {
|
||||
t.Fatalf("expected %s, got %s", want, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInferCollectedAtFromExtractedFiles_FallsBackToAnyMTime(t *testing.T) {
|
||||
files := []ExtractedFile{
|
||||
{Path: "a.log", ModTime: time.Date(1980, 1, 1, 0, 0, 0, 0, time.UTC)},
|
||||
{Path: "b.log", ModTime: time.Date(1970, 1, 2, 0, 0, 0, 0, time.UTC)},
|
||||
}
|
||||
|
||||
got := inferCollectedAtFromExtractedFiles(files)
|
||||
want := files[0].ModTime
|
||||
if !got.Equal(want) {
|
||||
t.Fatalf("expected fallback %s, got %s", want, got)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user