78 lines
2.1 KiB
Lua
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)
|