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:
48
init.lua
48
init.lua
@@ -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")
|
engine.test.assert(not string.find(asset_mermaid, "engine%.%*", 1, false), "generate_topology_block: asset-lib has no engine-node")
|
||||||
end
|
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())
|
engine.exit(engine.test.failures())
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user