103 lines
1.9 KiB
Ruby
103 lines
1.9 KiB
Ruby
require "test_helper"
|
|
|
|
class EnvFileTest < ActiveSupport::TestCase
|
|
test "env file simple" do
|
|
env = {
|
|
"foo" => "bar",
|
|
"baz" => "haz"
|
|
}
|
|
|
|
assert_equal "foo=bar\nbaz=haz\n", \
|
|
Kamal::EnvFile.new(env).to_s
|
|
end
|
|
|
|
test "env file clear" do
|
|
env = {
|
|
"clear" => {
|
|
"foo" => "bar",
|
|
"baz" => "haz"
|
|
}
|
|
}
|
|
|
|
assert_equal "foo=bar\nbaz=haz\n", \
|
|
Kamal::EnvFile.new(env).to_s
|
|
end
|
|
|
|
test "env file empty" do
|
|
assert_equal "\n", Kamal::EnvFile.new({}).to_s
|
|
end
|
|
|
|
test "env file secret" do
|
|
ENV["PASSWORD"] = "hello"
|
|
env = {
|
|
"secret" => [ "PASSWORD" ]
|
|
}
|
|
|
|
assert_equal "PASSWORD=hello\n", \
|
|
Kamal::EnvFile.new(env).to_s
|
|
ensure
|
|
ENV.delete "PASSWORD"
|
|
end
|
|
|
|
test "env file secret escaped newline" do
|
|
ENV["PASSWORD"] = "hello\\nthere"
|
|
env = {
|
|
"secret" => [ "PASSWORD" ]
|
|
}
|
|
|
|
assert_equal "PASSWORD=hello\\\\nthere\n", \
|
|
Kamal::EnvFile.new(env).to_s
|
|
ensure
|
|
ENV.delete "PASSWORD"
|
|
end
|
|
|
|
test "env file secret newline" do
|
|
ENV["PASSWORD"] = "hello\nthere"
|
|
env = {
|
|
"secret" => [ "PASSWORD" ]
|
|
}
|
|
|
|
assert_equal "PASSWORD=hello\\nthere\n", \
|
|
Kamal::EnvFile.new(env).to_s
|
|
ensure
|
|
ENV.delete "PASSWORD"
|
|
end
|
|
|
|
test "env file missing secret" do
|
|
env = {
|
|
"secret" => [ "PASSWORD" ]
|
|
}
|
|
|
|
assert_raises(KeyError) { Kamal::EnvFile.new(env).to_s }
|
|
|
|
ensure
|
|
ENV.delete "PASSWORD"
|
|
end
|
|
|
|
test "env file secret and clear" do
|
|
ENV["PASSWORD"] = "hello"
|
|
env = {
|
|
"secret" => [ "PASSWORD" ],
|
|
"clear" => {
|
|
"foo" => "bar",
|
|
"baz" => "haz"
|
|
}
|
|
}
|
|
|
|
assert_equal "PASSWORD=hello\nfoo=bar\nbaz=haz\n", \
|
|
Kamal::EnvFile.new(env).to_s
|
|
ensure
|
|
ENV.delete "PASSWORD"
|
|
end
|
|
|
|
test "stringIO conversion" do
|
|
env = {
|
|
"foo" => "bar",
|
|
"baz" => "haz"
|
|
}
|
|
|
|
assert_equal "foo=bar\nbaz=haz\n", \
|
|
StringIO.new(Kamal::EnvFile.new(env)).read
|
|
end
|
|
end
|