Files
2026-07-13 12:32:21 +08:00

78 lines
2.1 KiB
Lua

local helpers = require "spec.helpers" -- initializes 'kong' global for vaults
local conf_loader = require "kong.conf_loader"
describe("Environment Variables Vault", function()
local get
before_each(function()
local conf = assert(conf_loader(nil))
local kong_global = require "kong.global"
_G.kong = kong_global.new()
kong_global.init_pdk(kong, conf)
get = _G.kong.vault.get
end)
it("get undefined", function()
helpers.unsetenv("TEST_ENV_NA")
local res, err = get("{vault://env/test_env_na}")
assert.matches("could not get value from external vault", err)
assert.is_nil(res)
end)
it("get empty value", function()
helpers.setenv("TEST_ENV_EMPTY", "")
finally(function()
helpers.unsetenv("TEST_ENV_EMPTY")
end)
local res, err = get("{vault://env/test_env_empty}")
assert.is_nil(err)
assert.is_equal(res, "")
end)
it("get text", function()
helpers.setenv("TEST_ENV", "test")
finally(function()
helpers.unsetenv("TEST_ENV")
end)
local res, err = get("{vault://env/test_env}")
assert.is_nil(err)
assert.is_equal("test", res)
end)
it("get text with prefix (underscore)", function()
helpers.setenv("TEST_ENV", "test")
finally(function()
helpers.unsetenv("TEST_ENV")
end)
local res, err = get("{vault://env/env?prefix=test_}")
assert.is_nil(err)
assert.is_equal("test", res)
end)
it("get text with prefix (dash)", function()
helpers.setenv("TEST_ENV", "test")
finally(function()
helpers.unsetenv("TEST_ENV")
end)
local res, err = get("{vault://env/env?prefix=test-}")
assert.is_nil(err)
assert.is_equal("test", res)
end)
it("get json", function()
helpers.setenv("TEST_ENV_JSON", '{"username":"user", "password":"pass"}')
finally(function()
helpers.unsetenv("TEST_ENV_JSON")
end)
local res, err = get("{vault://env/test_env_json/username}")
assert.is_nil(err)
assert.is_equal(res, "user")
local pw_res, pw_err = get("{vault://env/test_env_json/password}")
assert.is_nil(pw_err)
assert.is_equal(pw_res, "pass")
end)
end)