package lkgateway import "testing" func TestNsdLastPolls(t *testing.T) { log := `PID_1 2026-09-25 12:00:01.1 T16 DEBUG [WSL] WSL TEST3 GOST: GetPackageListFull (GET) -> OK (HTTP 200) PID_1 2026-09-25 15:00:02.1 T16 DEBUG [WSL] WSL TEST3 GOST: GetPackageListFull (GET) -> #404 (HTTP Error 404: NotFound) PID_1 2026-09-25 15:00:02.1 T16 ERROR [GATE] WSL TEST3 GOST: Failure while fetching packages for MC0413600000 GetPackageListFull (GET): REST call resulted in error #404 "HTTP Error 404: NotFound". REST endpoint: "https://gost-t3.nsd.ru/onyx-ms" PID_1 2026-09-25 15:40:00.1 T16 DEBUG [WSL] WSL TEST3 GOST: GetPackageListFull (GET) -> #500 (HTTP Error 500: InternalServerError) ` last, ff := nsdLastPolls([]byte(log)) if last == nil || last.OK || last.Contour != "TEST3 GOST" || ff == nil || ff.At.Format("15:04") != "15:00" { t.Fatalf("сбой: last=%+v first=%+v", last, ff) } last, ff = nsdLastPolls([]byte(log + "PID_1 2026-09-25 16:00:00.1 T16 DEBUG [WSL] WSL TEST3 GOST: GetPackageListFull (GET) -> OK (HTTP 200)\n")) if !last.OK || ff != nil { t.Fatalf("восстановление: %+v %+v", last, ff) } } // ИШ выравнивает номер процесса пробелами: короткий номер — несколько пробелов (07.10.2026, серый индикатор). func TestNsdLastPollsPaddedPID(t *testing.T) { log := "PID_36882 2026-10-07 00:02:13.4942 T16 DEBUG [WSL] WSL TEST3 GOST: GetPackageListFull (GET) -> OK (HTTP 200)\n" + "PID_1050 2026-10-07 00:02:23.4942 T16 DEBUG [WSL] WSL TEST3 GOST: GetPackageListFull (GET) -> OK (HTTP 200)\n" last, ff := nsdLastPolls([]byte(log)) if last == nil || !last.OK || ff != nil || last.At.Second() != 23 { t.Fatalf("опрос с выровненным номером процесса не распознан: %+v", last) } }