From ec00fcaf08eddaf9b53ece755c04125e6c31f715 Mon Sep 17 00:00:00 2001 From: Robin Malley Date: Wed, 3 Feb 2021 04:30:27 +0000 Subject: [PATCH] Fix unit tests Fix sanity unit tests, and do a lot more random testing --- spec/pages_sanity_spec.lua | 41 ++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/spec/pages_sanity_spec.lua b/spec/pages_sanity_spec.lua index 9bdd09b..c4d5e1e 100644 --- a/spec/pages_sanity_spec.lua +++ b/spec/pages_sanity_spec.lua @@ -27,10 +27,10 @@ local function maybe(input,chance) return input end end -local rng_any = generate_str(10,characters(".")) +local rng_any = generate_str(1024,characters(".")) local rng_subdomain = generate_str(30,characters("[0-9a-z]")) local rng_storyname = generate_str(10,"[a-zA-Z0-9$+!*'(),-]") -local rng_storyid = function() return tostring(math.random(0,10)) end +local rng_storyid = function() return tostring(math.random(1,10)) end local rng_tags = function() local tag_gen = generate_str(10,"[%w%d ]") local t = {} @@ -188,6 +188,7 @@ local smr_mock_env = { http_request_cookie = spy.new(function(req,cookie_name) end), + http_response_cookie = spy.new(function(req,name,value) req.cookies = {[name] = value} end), log = spy.new(function(priority, message) end), sha3 = spy.new(function(message) return "digest" end), } @@ -212,7 +213,20 @@ local smr_override_env = { string = string_fmt_override } local smr_mock_env_m = { - __index = smr_mock_env + __index = smr_mock_env, + __newindex = function(self,key,value) + local setter = debug.getinfo(2) + if setter.source ~= "=[C]" and key ~= "configure" then + error(string.format( + "Tried to create a global %q with value %s\n%s", + key, + tostring(value), + debug.traceback() + ),2) + else + rawset(self,key,value) + end + end } describe("smr",function() @@ -250,18 +264,19 @@ describe("smr",function() assert(type(pagefunc) == "function") end) it("should call http_response() at some point",function() - function http_request_get_host(...) end local pagefunc = require("endpoints." .. fname) - local req = {} - req.method = method - req.path = obj.route - req.args = {} - for param_name,param_rng_func in pairs(parameters) do - local param = param_rng_func() - req.args[param_name] = param + for i = 1,1000 do + local req = {} + req.method = method + req.path = obj.route + req.args = {} + for param_name,param_rng_func in pairs(parameters) do + local param = param_rng_func() + req.args[param_name] = param + end + pagefunc(req) + assert.spy(smr_mock_env.http_response).was_called() end - pagefunc(req) - assert.spy(smr_mock_env.http_response).was_called() end) end)