test(iot): юнит-тесты валидации идентификаторов и разбора DSN (P1-11)

- handler/devices_test.go: validateIdentifier (charset/лимиты, запрет _ + # /).
- iotpg/dsn_test.go: replaceDSNDatabase (вкл. sslrootcert со слэшем, ошибка для
  key=value) + safeNamespaceRe.
- gofmt для затронутых файлов. go test ./... зелёный.
This commit is contained in:
2026-10-10 19:23:09 +03:00
parent 3a73207abd
commit 7c80c7b7f8
4 changed files with 146 additions and 13 deletions
@@ -43,7 +43,7 @@ type IoTPostgresStore struct {
log *slog.Logger
// батчинг вставок (фикс MEDIUM ревью 2026-08-16: 1000 msg/s = 1000 INSERT)
mu sync.Mutex
mu sync.Mutex
// flushMu сериализует фактическую запись (grab буфера + INSERT) между
// фоновым flusher'ом, Flush() из consumer и синхронной записью полного
// батча в InsertTelemetry. Без него Flush видел бы пустой буфер и возвращал