kong/t/01-pdk/09-service/02-set-target.t (7 lines of code) (raw):
use strict;
use warnings FATAL => 'all';
use Test::Nginx::Socket::Lua;
do "./t/Util.pm";
plan tests => repeat_each() * (blocks() * 3);
run_tests();
__DATA__
=== TEST 1: service.set_target() errors if host is not a string
--- http_config eval: $t::Util::HttpConfig
--- config
location = /t {
content_by_lua_block {
local PDK = require "kong.pdk"
local pdk = PDK.new()
local pok, err = pcall(pdk.service.set_target, 127001, 123)
ngx.say(err)
}
}
--- request
GET /t
--- response_body
host must be a string
--- no_error_log
[error]
=== TEST 2: service.set_target() sets ngx.ctx.balancer_data.host
--- http_config eval: $t::Util::HttpConfig
--- config
location = /t {
set $upstream_host '';
content_by_lua_block {
local PDK = require "kong.pdk"
local pdk = PDK.new()
ngx.ctx.balancer_data = {
host = "foo.xyz"
}
local ok = pdk.service.set_target("example.com", 123)
ngx.say(tostring(ok))
ngx.say("host: ", ngx.ctx.balancer_data.host)
}
}
--- request
GET /t
--- response_body
nil
host: example.com
--- no_error_log
[error]
=== TEST 3: service.set_target() errors if port is not a number
--- http_config eval: $t::Util::HttpConfig
--- config
location = /t {
content_by_lua_block {
local PDK = require "kong.pdk"
local pdk = PDK.new()
local pok, err = pcall(pdk.service.set_target, "example.com", "foo")
ngx.say(err)
}
}
--- request
GET /t
--- response_body
port must be an integer
--- no_error_log
[error]
=== TEST 4: service.set_target() errors if port is not an integer
--- http_config eval: $t::Util::HttpConfig
--- config
location = /t {
content_by_lua_block {
local PDK = require "kong.pdk"
local pdk = PDK.new()
local pok, err = pcall(pdk.service.set_target, "example.com", 123.4)
ngx.say(err)
}
}
--- request
GET /t
--- response_body
port must be an integer
--- no_error_log
[error]
=== TEST 5: service.set_target() errors if port is out of range
--- http_config eval: $t::Util::HttpConfig
--- config
location = /t {
content_by_lua_block {
local PDK = require "kong.pdk"
local pdk = PDK.new()
local pok, err = pcall(pdk.service.set_target, "example.com", -1)
ngx.say(err)
local pok, err = pcall(pdk.service.set_target, "example.com", 70000)
ngx.say(err)
}
}
--- request
GET /t
--- response_body
port must be an integer between 0 and 65535: given -1
port must be an integer between 0 and 65535: given 70000
--- no_error_log
[error]
=== TEST 6: service.set_target() sets the balancer port
--- http_config eval: $t::Util::HttpConfig
--- config
location = /t {
set $upstream_host '';
content_by_lua_block {
local PDK = require "kong.pdk"
local pdk = PDK.new()
ngx.ctx.balancer_data = {
port = 8000
}
local ok = pdk.service.set_target("example.com", 1234)
ngx.say(tostring(ok))
ngx.say("port: ", ngx.ctx.balancer_data.port)
}
}
--- request
GET /t
--- response_body
nil
port: 1234
--- no_error_log
[error]