Files
PTah 088be32ec5 feat: отмена скана на сервере, стабильнее scan_id, упрощённый UI
- Runner: context, POST /api/scans/{id}/cancel, частичный canceled; Start до ответа createScan

- API: scanPathID (PathUnescape), лог при 404; Postgres GetScan логирует ошибки чтения

- newScanID: суффикс 8 hex; тест обновлён

- Web UI: убраны строки scan_id/from-to; скрытое поле scanId; cancel при таймауте/новом скане

Made-with: Cursor
2026-04-13 15:26:23 +10:00

30 lines
619 B
Go

package scans
import (
"strings"
"testing"
)
func TestNewScanIDShape(t *testing.T) {
id, err := newScanID([]string{"192.168.160.0/24"})
if err != nil {
t.Fatal(err)
}
parts := strings.Split(id, "_")
if len(parts) < 3 {
t.Fatalf("expected at least time_slug_suffix, got %q", id)
}
if len(parts[len(parts)-1]) != 8 {
t.Fatalf("expected 8-hex suffix, got %q", id)
}
if !strings.Contains(id, "192.168.160.0_24") {
t.Fatalf("expected sanitized cidr in id: %q", id)
}
}
func TestSanitizeScanSlug(t *testing.T) {
if g := sanitizeScanSlug("10.0.0.0/8"); g != "10.0.0.0_8" {
t.Fatalf("got %q", g)
}
}