kong/t/01-pdk/09-service/03-set-tls-cert-key.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_tls_cert_key() errors if cert is not cdata --- 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_tls_cert_key, "foo", "bar") ngx.say(err) } } --- request GET /t --- response_body chain must be a parsed cdata object --- no_error_log [error] === TEST 2: service.set_tls_cert_key() errors if key is not cdata --- http_config eval: $t::Util::HttpConfig --- config location = /t { content_by_lua_block { local PDK = require("kong.pdk") local ffi = require("ffi") local pdk = PDK.new() local pok, err = pcall(pdk.service.set_tls_cert_key, ffi.new("void *"), "bar") ngx.say(err) } } --- request GET /t --- response_body key must be a parsed cdata object --- no_error_log [error] === TEST 3: service.set_tls_cert_key() works with valid cert and key --- http_config eval: $t::Util::HttpConfig --- config location = /t { access_by_lua_block { local PDK = require("kong.pdk") local ssl = require("ngx.ssl") local pdk = PDK.new() local f = assert(io.open("t/certs/test.crt")) local cert_data = f:read("*a") f:close() local chain = assert(ssl.parse_pem_cert(cert_data)) f = assert(io.open("t/certs/test.key")) local key_data = f:read("*a") f:close() local key = assert(ssl.parse_pem_priv_key(key_data)) local ok, err = pdk.service.set_tls_cert_key(chain, key) ngx.say(ok, ", ", err) } } --- request GET /t --- response_body true, nil --- no_error_log [error]