feat(validator): manifest-validator (F02) + bad-manifest фикстуры (F04)

Правила: id не ru.shturman.*, shturman_api поддержан, len(tiles)<=ui_tiles, vehicle_read из каталога.
Фикстуры good + bad-{id-reserved,api,tiles-quota,vehicle-read}; 6 тестов.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alexander <akotenev2003@gmail.com>
This commit is contained in:
2026-06-24 13:20:26 +03:00
parent 20ee069059
commit 69e4e06940
10 changed files with 215 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
# Неподдерживаемая мажорная версия API (plugin-sdk §7).
plugin:
id: dev.example.future
name: "Из будущего"
version: 0.1.0
shturman_api: "99"
+6
View File
@@ -0,0 +1,6 @@
# id в зарезервированном префиксе ru.shturman.* — закрыт за first-party (F §3).
plugin:
id: ru.shturman.evil
name: "Подделка"
version: 0.1.0
shturman_api: "1"
+14
View File
@@ -0,0 +1,14 @@
# Тайлов больше, чем квота ui_tiles (plugin-sdk §2).
plugin:
id: dev.example.greedy
name: "Жадный"
version: 0.1.0
shturman_api: "1"
capabilities:
ui_tiles: 1
extension_points:
tiles:
- id: a
title: "A"
- id: b
title: "B"
+8
View File
@@ -0,0 +1,8 @@
# vehicle_read с сигналом вне каталога data-model.
plugin:
id: dev.example.bogus
name: "Выдумщик"
version: 0.1.0
shturman_api: "1"
capabilities:
vehicle_read: [rocket_boost]
+12
View File
@@ -0,0 +1,12 @@
plugin:
id: dev.example.fuel-tracker
name: "Учёт расхода"
version: 0.1.0
shturman_api: "1"
capabilities:
vehicle_read: [speed, maf, fuel_level, fuel_rate]
ui_tiles: 1
extension_points:
tiles:
- id: consumption
title: "Расход"