Files
kong--kong/spec/03-plugins/03-http-log/05-old-plugin-compatibility_spec.lua
2026-07-13 12:32:21 +08:00

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