kong/spec/03-plugins/30-session/03-session_spec.lua (71 lines of code) (raw):

local function mock(method) _G.kong = { request = { get_method = function() return method end, get_query_arg = function() return true end, get_body = function() return { session_logout = true } end, }, log = { debug = function() end } } return require "kong.plugins.session.session" end describe("Plugin: Session - session.lua", function() local old_kong before_each(function() old_kong = _G.kong end) after_each(function() _G.kong = old_kong package.loaded["kong.plugins.session.session"] = nil end) it("logs out with GET request", function() local session = mock("GET") local conf = { logout_methods = { "GET", "POST" }, logout_query_arg = "session_logout" } assert.truthy(session.logout(conf)) end) it("logs out with POST request with body", function() local session = mock("POST") local conf = { logout_methods = { "POST" }, logout_post_arg = "session_logout" } assert.truthy(session.logout(conf)) end) it("logs out with DELETE request with body", function() local session = mock("DELETE") local conf = { logout_methods = { "DELETE" }, logout_post_arg = "session_logout" } assert.truthy(session.logout(conf)) end) it("logs out with DELETE request with query params", function() local session = mock("DELETE") local conf = { logout_methods = { "DELETE" }, logout_query_arg = "session_logout" } assert.truthy(session.logout(conf)) end) it("does not logout with GET requests when method is not allowed", function() local session = mock("GET") local conf = { logout_methods = { "DELETE" }, logout_query_arg = "session_logout" } assert.falsy(session.logout(conf)) end) it("does not logout with POST requests when method is not allowed", function() local session = mock("POST") local conf = { logout_methods = { "DELETE" }, logout_post_arg = "session_logout" } assert.falsy(session.logout(conf)) end) end)