From 2de5250486d6338ed06abd9658ca53d03275887e Mon Sep 17 00:00:00 2001 From: Samuel Sieg Date: Fri, 17 Mar 2023 16:29:25 +0100 Subject: [PATCH 1/2] Add tests for `Mrsk::Utils` --- test/utils_test.rb | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 test/utils_test.rb diff --git a/test/utils_test.rb b/test/utils_test.rb new file mode 100644 index 00000000..0588ecb9 --- /dev/null +++ b/test/utils_test.rb @@ -0,0 +1,38 @@ +require "test_helper" + +class UtilsTest < ActiveSupport::TestCase + test "argumentize" do + assert_equal [ "--label", "foo=\"\\`bar\\`\"", "--label", "baz=\"qux\"", "--label", :quux ], \ + Mrsk::Utils.argumentize("--label", { foo: "`bar`", baz: "qux", quux: nil }) + end + + test "argumentize with redacted" do + assert_kind_of SSHKit::Redaction, \ + Mrsk::Utils.argumentize("--label", { foo: "bar" }, redacted: true).last + end + + test "argumentize_env_with_secrets" do + ENV.expects(:fetch).with("FOO").returns("secret") + assert_equal [ "-e", "FOO=\"secret\"", "-e", "BAZ=\"qux\"" ], \ + Mrsk::Utils.argumentize_env_with_secrets({ "secret" => [ "FOO" ], "clear" => { BAZ: "qux" } }) + end + + test "optionize" do + assert_equal [ "--foo", "\"bar\"", "--baz", "\"qux\"", "--quux" ], \ + Mrsk::Utils.optionize({ foo: "bar", baz: "qux", quux: true }) + end + + test "optionize with" do + assert_equal [ "--foo=\"bar\"", "--baz=\"qux\"", "--quux" ], \ + Mrsk::Utils.optionize({ foo: "bar", baz: "qux", quux: true }, with: "=") + end + + test "redact" do + assert_kind_of SSHKit::Redaction, Mrsk::Utils.redact("secret") + assert_equal "secret", Mrsk::Utils.redact("secret") + end + + test "escape_shell_value" do + assert_equal "\"\\`foo\\`\"", Mrsk::Utils.escape_shell_value("`foo`") + end +end From c3d0382935bbceb6f1d171d58c3de82ed6f7ce64 Mon Sep 17 00:00:00 2001 From: Samuel Sieg Date: Fri, 17 Mar 2023 16:31:10 +0100 Subject: [PATCH 2/2] Add another assertion for `escape_shell_value` --- test/utils_test.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/test/utils_test.rb b/test/utils_test.rb index 0588ecb9..f2af428b 100644 --- a/test/utils_test.rb +++ b/test/utils_test.rb @@ -33,6 +33,7 @@ class UtilsTest < ActiveSupport::TestCase end test "escape_shell_value" do + assert_equal "\"foo\"", Mrsk::Utils.escape_shell_value("foo") assert_equal "\"\\`foo\\`\"", Mrsk::Utils.escape_shell_value("`foo`") end end