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:
Axel Meyer
2026-05-16 16:07:15 +02:00
parent 44314774ee
commit efa1a5ebcc
2 changed files with 33 additions and 2 deletions

View File

@@ -27,6 +27,37 @@ return 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.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
-- ===== parse_readme_api =====