80 lines
2.2 KiB
Lua
80 lines
2.2 KiB
Lua
local helpers = require "spec.helpers"
|
|
local fmt = string.format
|
|
local plugin_name = "http-log"
|
|
|
|
for _, strategy in helpers.all_strategies() do
|
|
describe(fmt("%s - old plugin compatibility [#%s]", plugin_name, strategy), function()
|
|
local bp, proxy_client, yaml_file
|
|
local recover_new_plugin
|
|
|
|
lazy_setup(function()
|
|
-- use the old version plugin
|
|
recover_new_plugin = helpers.use_old_plugin(plugin_name)
|
|
|
|
bp = helpers.get_db_utils(strategy == "off" and "postgres" or strategy, {
|
|
"routes",
|
|
"services",
|
|
"plugins",
|
|
})
|
|
|
|
local route = bp.routes:insert({ paths = { "/test" } })
|
|
|
|
bp.plugins:insert({
|
|
name = plugin_name,
|
|
route = { id = route.id },
|
|
config = {
|
|
http_endpoint = fmt("http://%s:%s/post_log/http", helpers.mock_upstream_host, helpers.mock_upstream_port),
|
|
custom_fields_by_lua = {
|
|
new_field = "return 123",
|
|
route = "return nil", -- unset route field
|
|
},
|
|
},
|
|
})
|
|
|
|
if strategy == "off" then
|
|
yaml_file = helpers.make_yaml_file()
|
|
end
|
|
|
|
assert(helpers.start_kong({
|
|
database = strategy,
|
|
nginx_conf = "spec/fixtures/custom_nginx.template",
|
|
declarative_config = strategy == "off" and yaml_file or nil,
|
|
pg_host = strategy == "off" and "unknownhost.konghq.com" or nil,
|
|
}))
|
|
end)
|
|
|
|
lazy_teardown(function()
|
|
helpers.stop_kong()
|
|
-- recover the new version plugin
|
|
recover_new_plugin()
|
|
end)
|
|
|
|
before_each(function()
|
|
helpers.clean_logfile()
|
|
proxy_client = helpers.proxy_client()
|
|
end)
|
|
|
|
after_each(function()
|
|
if proxy_client then
|
|
proxy_client:close()
|
|
end
|
|
end)
|
|
|
|
it("should not throw exception when using old version plugin together with the new core", function()
|
|
local res = assert(proxy_client:send {
|
|
method = "GET",
|
|
path = "/test",
|
|
})
|
|
assert.not_same(500, res.status)
|
|
|
|
-- wait for the log handler to execute
|
|
ngx.sleep(5)
|
|
|
|
assert.logfile().has.no.line("[error]", true, 0)
|
|
assert.logfile().has.no.line("[alert]", true, 0)
|
|
assert.logfile().has.no.line("[crit]", true, 0)
|
|
assert.logfile().has.no.line("[emerg]", true, 0)
|
|
end)
|
|
end)
|
|
end
|