diff --git a/src/mods/Loader.lua b/src/mods/Loader.lua index aaa2b7b7..5a060b4f 100644 --- a/src/mods/Loader.lua +++ b/src/mods/Loader.lua @@ -270,7 +270,7 @@ function Loader.new(opts) modSave = {}, modOptions = {}, optionSchemas = {}, imageCache = {}, modInput = {}, modEnv = {}, stepsQueues = {}, fs = (opts and opts.fs) or (love and love.filesystem), - dev = dev, + dev = dev == true, safeMode = false, -- Which generation this boot is (1 or 2). Fixed at construction: the -- active version is set once in main.lua's bootGame before anything diff --git a/tests/engine/mod_developer_mode_test.lua b/tests/engine/mod_developer_mode_test.lua index 638d0771..982f9237 100644 --- a/tests/engine/mod_developer_mode_test.lua +++ b/tests/engine/mod_developer_mode_test.lua @@ -60,6 +60,22 @@ do run.release() end +for _, provided in ipairs({ "yes", 1 }) do + local run = load(provided) + T.eq(#run.errors, 0, + "non-boolean developer-mode probe loads clean: " .. tostring(provided)) + local out = run.loader.exports.dev_probe + T.eq(out.seenAtLoad, false, + "non-boolean opts.dev is false in mod.developer: " .. tostring(provided)) + T.eq(out.kind, "boolean", + "non-boolean opts.dev stays a strict public boolean: " .. tostring(provided)) + T.eq(run.loader.dev, false, + "non-boolean opts.dev is false in loader.dev: " .. tostring(provided)) + T.eq(run.loader.content.commands:get("dev_probe:diagnostics"), nil, + "non-boolean opts.dev cannot register developer diagnostics: " .. tostring(provided)) + run.release() +end + do local run = load(true, 2) T.eq(#run.errors, 0, "Gen 2 developer-mode public probe loads clean")