Module:No globals/testcases

local p = require('Module:ScribuntoUnit'):new

-- Allow test runner to use both the Module:XXX itself and Module:XXX/sandbox with the same testcases function p:module return self.frame and self.frame.args and self.frame.args.module or 'No globals' end

function p:test require('Module:' .. p:module) -- try returning undeclared variable self:assertThrows(function return foo end, "Tried to read nil global foo", 'test1') -- try writing to an undeclared variable self:assertThrows(function bar = 0 end, "Tried to write global bar", 'test2') -- try reading and writing to variable arg -- should be exempt, and cause no errors local tmp = arg arg = arg end

return p