47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package server
|
||
|
||
import (
|
||
"strings"
|
||
"testing"
|
||
)
|
||
|
||
func TestCollectLogTimeBounds(t *testing.T) {
|
||
lines := []string{
|
||
"2026-02-28T13:10:13.7442032Z Задача поставлена в очередь",
|
||
"not-a-timestamp line",
|
||
"2026-02-28T13:31:00.5077486Z Сбор завершен",
|
||
}
|
||
|
||
startedAt, finishedAt, ok := collectLogTimeBounds(lines)
|
||
if !ok {
|
||
t.Fatalf("expected bounds to be parsed")
|
||
}
|
||
if got := formatRawExportDuration(finishedAt.Sub(startedAt)); got != "20m47s" {
|
||
t.Fatalf("unexpected duration: %s", got)
|
||
}
|
||
}
|
||
|
||
func TestBuildHumanReadableCollectionLog_IncludesDurationHeader(t *testing.T) {
|
||
pkg := &RawExportPackage{
|
||
Format: rawExportFormatV1,
|
||
Source: RawExportSource{
|
||
Kind: "live_redfish",
|
||
CollectLogs: []string{
|
||
"2026-02-28T13:10:13.7442032Z Redfish: подключение к BMC...",
|
||
"2026-02-28T13:31:00.5077486Z Сбор завершен",
|
||
},
|
||
},
|
||
}
|
||
|
||
logText := buildHumanReadableCollectionLog(pkg, nil, "LOGPile test")
|
||
for _, token := range []string{
|
||
"Collection Started:",
|
||
"Collection Finished:",
|
||
"Collection Duration:",
|
||
} {
|
||
if !strings.Contains(logText, token) {
|
||
t.Fatalf("expected %q in log header", token)
|
||
}
|
||
}
|
||
}
|