-- lib-core.api-discovery-test — Test-lib for lib-core.api-discovery local api = require("lib-core.api-discovery") local M = {} function M.run_tests(ctx) -- Assertions added in plan tasks 2-7. -- ===== parse_lua_surface ===== do local src = [[ local M = {} M.foo = function(x) return x end M.bar = function() end M._private = function() end local function not_in_M() end return M ]] local surface = api.parse_lua_surface(src) engine.test.equals(#surface.public, 2, "parse_lua_surface: 2 public functions") engine.test.equals(surface.public[1], "foo", "parse_lua_surface: first public is foo") engine.test.equals(surface.public[2], "bar", "parse_lua_surface: second public is bar") engine.test.equals(#surface.private, 1, "parse_lua_surface: 1 private function") engine.test.equals(surface.private[1], "_private", "parse_lua_surface: private name = _private") -- Edge: empty source 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") end engine.exit(engine.test.failures()) end return M