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")
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user