test: assertions for validate_readme_structure (S2 Phase 1)

5 assertions: complete-README clean, missing-API detected, missing-list
contains 'API', community-tier skips enforcement.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Axel Meyer
2026-05-16 13:37:39 +02:00
parent d4af05b879
commit 897468132e

View File

@@ -127,6 +127,54 @@ end
engine.test.assert(not string.find(asset_mermaid, "engine%.%*", 1, false), "generate_topology_block: asset-lib has no engine-node")
end
-- ===== validate_readme_structure =====
do
local complete = [[
# lib-core.foo
Abstract.
| Field | Value |
|---|---|
| Version | 0.1.0 |
<!-- topology:start -->
<!-- topology:end -->
## API
### `foo.bar()`
Sig.
## References
- spec
]]
local r = api.validate_readme_structure(complete, "core")
engine.test.equals(#r.missing_sections, 0, "validate: complete README -> no missing")
engine.test.assert(r.section_order_ok, "validate: complete README -> order ok")
local missing_api = [[
# lib-core.foo
Abstract.
| F | V |
<!-- topology:start -->
<!-- topology:end -->
## References
- spec
]]
local r2 = api.validate_readme_structure(missing_api, "core")
engine.test.assert(#r2.missing_sections > 0, "validate: missing API -> reports missing")
local has_api_missing = false
for _, s in ipairs(r2.missing_sections) do
if s == "API" then has_api_missing = true end
end
engine.test.assert(has_api_missing, "validate: missing-sections list contains 'API'")
-- Tier community: lockerer
local r3 = api.validate_readme_structure(missing_api, "community")
engine.test.equals(#r3.missing_sections, 0, "validate: tier=community -> no enforcement")
end
engine.exit(engine.test.failures())
end