Files
ReSkate/contrib/plugins/reskate-test/plugin/checks/level.lua
T
AyeZeeBB a3e75ba10e Plugins: the reskate-test and reskate-hostile plugins, and trick reading and a facing teleport in the core
- contrib/plugins/reskate-test calls every plugin API and says what worked: ptest all, ptest
  <module>, ptest list. Its 45 checks cover the base set, timers, the level, package files, JSON,
  require, the console, storage and the sandbox. It is the example to copy for a plugin.
- contrib/plugins/reskate-hostile attacks the sandbox, one attack per command (hostile list):
  loops, memory and buffer bombs, caught errors, error and log floods, timers, recursion, an
  unload that never ends, and 17 ways out. Each must end stopped or refused.
- dingosdk_plugin_tests runs both from the repository: every reskate-test check passes, and every
  hostile attack is stopped or refused with nothing escaping.
- Taken from Domination (PR 279) for the plugin API to use: the trick watch (when a trick starts,
  lands and what it scored, or a slam breaks it; Domination's spots left out) in
  Extension/Skater/trick_watch.h with its tests, the score HUD reader in score_hud.h, and
  teleport_local_skater_heading, whose hunks are the PR's own. Neither is wired to anything yet.
2026-10-19 12:08:26 -05:00

16 lines
627 B
Lua

local t = require("harness").module("level")
local heard = {}
reskate.on("level_loaded", function(name) table.insert(heard, "loaded " .. name) end)
reskate.on("level_unloading", function(name) table.insert(heard, "leaving " .. name) end)
t.check("current is nil, or a table with the level's name", function()
local level = reskate.level.current()
assert(level == nil or (type(level) == "table" and type(level.name) == "string" and #level.name > 0))
end)
t.check("level events name the level", function()
for _, line in heard do
assert(#line > #"loaded ", "an event without a name: " .. line)
end
end)