99 lines
2.8 KiB
Lua
99 lines
2.8 KiB
Lua
local helpers = require "spec.helpers"
|
|
|
|
for _, strategy in helpers.each_strategy() do
|
|
|
|
-- TODO: replace these test cases with ones that assert the proper behavior
|
|
-- after the feature is removed
|
|
pending("external plugins and #wasm #" .. strategy, function()
|
|
describe("wasm enabled in conjunction with unused pluginservers", function()
|
|
it("does not prevent kong from starting", function()
|
|
require("kong.runloop.wasm").enable({
|
|
{ name = "tests",
|
|
path = helpers.test_conf.wasm_filters_path .. "/tests.wasm",
|
|
},
|
|
})
|
|
|
|
local bp = assert(helpers.get_db_utils(strategy, {
|
|
"services",
|
|
"routes",
|
|
"plugins",
|
|
"filter_chains",
|
|
}, { "response-transformer", "tests" }))
|
|
|
|
local route = assert(bp.routes:insert({
|
|
protocols = { "http" },
|
|
paths = { "/" },
|
|
service = assert(bp.services:insert({})),
|
|
}))
|
|
|
|
-- configure a wasm filter plugin
|
|
assert(bp.plugins:insert({
|
|
name = "tests",
|
|
route = route,
|
|
config = "",
|
|
}))
|
|
|
|
-- configure a lua plugin
|
|
assert(bp.plugins:insert({
|
|
name = "response-transformer",
|
|
route = route,
|
|
config = {
|
|
add = {
|
|
headers = {
|
|
"X-Lua-Plugin:hello from response-transformer",
|
|
},
|
|
},
|
|
},
|
|
}))
|
|
|
|
assert(helpers.start_kong({
|
|
nginx_conf = "spec/fixtures/custom_nginx.template",
|
|
database = strategy,
|
|
|
|
wasm = true,
|
|
wasm_filters = "tests",
|
|
|
|
plugins = "response-transformer",
|
|
|
|
-- this pluginserver does not exist, but we will validate that kong can
|
|
-- start so long as there are no configured/enabled plugins that will
|
|
-- require us to invoke it in any way
|
|
--
|
|
-- XXX: this configuration could be considered invalid, and future changes
|
|
-- to plugin resolution/pluginserver code MAY opt to change this behavior
|
|
pluginserver_names = "not-exists",
|
|
pluginserver_not_exists_start_cmd = "/i/do/not/exist",
|
|
pluginserver_not_exists_query_cmd = "/i/do/not/exist",
|
|
}))
|
|
|
|
local client
|
|
|
|
finally(function()
|
|
if client then
|
|
client:close()
|
|
end
|
|
|
|
helpers.stop_kong()
|
|
end)
|
|
|
|
client = helpers.proxy_client()
|
|
local res = client:get("/", {
|
|
headers = {
|
|
["X-PW-Test"] = "local_response",
|
|
["X-PW-Input"] = "hello from wasm",
|
|
},
|
|
})
|
|
|
|
-- verify that our wasm filter ran
|
|
local body = assert.res_status(200, res)
|
|
assert.equals("hello from wasm", body)
|
|
|
|
-- verify that our lua plugin (response-transformer) ran
|
|
local header = assert.response(res).has.header("X-Lua-Plugin")
|
|
assert.equals("hello from response-transformer", header)
|
|
end)
|
|
end)
|
|
end)
|
|
|
|
end -- each strategy
|