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