test: sugar-form + mixed-form assertions for parse_lua_surface (S2 follow-up)
8 new assertions (sugar-form: 5, mixed-form: 3). Total 35 -> 43. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,13 +8,13 @@ Per Fault-Injection-Audit-Convention (2026-05-16):
|
|||||||
|
|
||||||
| Function | Assertion-Count | Coverage |
|
| Function | Assertion-Count | Coverage |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `parse_lua_surface` | 7 | Happy-path (2 public + 1 private), empty-source edge |
|
| `parse_lua_surface` | 15 | Happy-path (2 public + 1 private), empty-source edge, sugar-form (`function M.foo`), mixed-form (sugar + explicit) |
|
||||||
| `parse_readme_api` | 4 | Standard H3-pattern, no-API-section edge |
|
| `parse_readme_api` | 4 | Standard H3-pattern, no-API-section edge |
|
||||||
| `diff_surface` | 5 | Equal (no diff), surface-superset (missing), doc-superset (stale) |
|
| `diff_surface` | 5 | Equal (no diff), surface-superset (missing), doc-superset (stale) |
|
||||||
| `grep_engine_calls` | 5 | 3 unique calls, no-calls edge |
|
| `grep_engine_calls` | 5 | 3 unique calls, no-calls edge |
|
||||||
| `generate_topology_block` | 6 | Lib-with-deps+engine, asset-lib (no deps, no engine) |
|
| `generate_topology_block` | 6 | Lib-with-deps+engine, asset-lib (no deps, no engine) |
|
||||||
| `validate_readme_structure` | 8 | Complete core, missing-API core, missing-Topology, missing-Badges, community-tier-no-enforcement |
|
| `validate_readme_structure` | 8 | Complete core, missing-API core, missing-Topology, missing-Badges, community-tier-no-enforcement |
|
||||||
| **TOTAL** | **35** | |
|
| **TOTAL** | **43** | |
|
||||||
|
|
||||||
### Tested-Surface
|
### Tested-Surface
|
||||||
- All 6 public functions of `lib-core.api-discovery` v0.1.0.
|
- All 6 public functions of `lib-core.api-discovery` v0.1.0.
|
||||||
|
|||||||
31
init.lua
31
init.lua
@@ -27,6 +27,37 @@ return M
|
|||||||
local empty = api.parse_lua_surface("local M = {}\nreturn M")
|
local empty = api.parse_lua_surface("local M = {}\nreturn M")
|
||||||
engine.test.equals(#empty.public, 0, "parse_lua_surface: empty source = no public")
|
engine.test.equals(#empty.public, 0, "parse_lua_surface: empty source = no public")
|
||||||
engine.test.equals(#empty.private, 0, "parse_lua_surface: empty source = no private")
|
engine.test.equals(#empty.private, 0, "parse_lua_surface: empty source = no private")
|
||||||
|
|
||||||
|
-- Sugar-form: function M.foo(...) end
|
||||||
|
local sugar_src = [[
|
||||||
|
local M = {}
|
||||||
|
function M.alpha(x) return x end
|
||||||
|
function M.beta() end
|
||||||
|
function M._sugar_private() end
|
||||||
|
function not_in_M() end
|
||||||
|
return M
|
||||||
|
]]
|
||||||
|
local sugar_surface = api.parse_lua_surface(sugar_src)
|
||||||
|
engine.test.equals(#sugar_surface.public, 2, "parse_lua_surface: sugar-form 2 public")
|
||||||
|
engine.test.equals(sugar_surface.public[1], "alpha", "parse_lua_surface: sugar-form first = alpha")
|
||||||
|
engine.test.equals(sugar_surface.public[2], "beta", "parse_lua_surface: sugar-form second = beta")
|
||||||
|
engine.test.equals(#sugar_surface.private, 1, "parse_lua_surface: sugar-form 1 private")
|
||||||
|
engine.test.equals(sugar_surface.private[1], "_sugar_private", "parse_lua_surface: sugar-form private = _sugar_private")
|
||||||
|
|
||||||
|
-- Mixed form (sugar + explicit in same source)
|
||||||
|
local mixed_src = [[
|
||||||
|
local M = {}
|
||||||
|
function M.gamma() end
|
||||||
|
M.delta = function() end
|
||||||
|
return M
|
||||||
|
]]
|
||||||
|
local mixed_surface = api.parse_lua_surface(mixed_src)
|
||||||
|
engine.test.equals(#mixed_surface.public, 2, "parse_lua_surface: mixed-form 2 public")
|
||||||
|
-- Order: sugar-form parsed before explicit (per impl order)? Either is acceptable; use set-check:
|
||||||
|
local mixed_set = {}
|
||||||
|
for _, n in ipairs(mixed_surface.public) do mixed_set[n] = true end
|
||||||
|
engine.test.assert(mixed_set["gamma"], "parse_lua_surface: mixed-form gamma present")
|
||||||
|
engine.test.assert(mixed_set["delta"], "parse_lua_surface: mixed-form delta present")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ===== parse_readme_api =====
|
-- ===== parse_readme_api =====
|
||||||
|
|||||||
Reference in New Issue
Block a user