apisix/t/example-plugin.t
YuanSheng Wang b7694e0701
feature: mini example to load plugin. (#4)
* feature: mini example to load plugin.
2019-05-06 16:02:28 +08:00

74 lines
1.9 KiB
Raku

use t::APIMeta 'no_plan';
repeat_each(2);
no_long_string();
log_level('info');
run_tests;
__DATA__
=== TEST 1: check arguments
--- config
location /t {
content_by_lua_block {
local plugin = require("apimeta.plugins.example_plugin")
local ok, err = plugin.check_args({i = 1, s = "s", t = {}})
if not ok then
ngx.say("failed to check args: ", err)
end
ok, err = plugin.check_args({s = "s", t = {}})
if not ok then
ngx.say("failed to check args: ", err)
end
ok, err = plugin.check_args({i = 1, s = 3, t = {}})
if not ok then
ngx.say("failed to check args: ", err)
end
ok, err = plugin.check_args({i = 1, s = "s", t = ""})
if not ok then
ngx.say("failed to check args: ", err)
end
ngx.say("done")
}
}
--- request
GET /t
--- response_body
failed to check args: args.i expect int value but got: [nil]
failed to check args: args.s expect string value but got: [3]
failed to check args: args.t expect table value but got: []
done
=== TEST 2: load plugins
--- config
location /t {
content_by_lua_block {
local plugins, err = require("apimeta.plugin").load()
if not plugins then
ngx.say("failed to load plugins: ", err)
end
local encode_json = require "cjson.safe" .encode
for _, plugin in ipairs(plugins) do
ngx.say("plugin name: ", plugin.name,
" priority: ", plugin.priority)
plugin.rewrite()
end
}
}
--- request
GET /t
--- response_body
plugin name: example_plugin priority: 1000
--- error_log
failed to load plugin not_exist_plugin err: module 'apimeta.plugins.not_exist_plugin' not found
rewrite(): plugin rewrite phase