summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorMarc A. Paradise <marc.paradise@gmail.com>2019-06-07 15:39:36 -0400
committerMarc A. Paradise <marc.paradise@gmail.com>2019-06-07 15:39:36 -0400
commit023c89e326251e8c2f063aa6f4ecd787cd35316f (patch)
tree22ad7a01ace4af3146b44223debeeeaa08467950 /spec
parent47eb2730d081be1ef02b81e25a19187a4cd5703d (diff)
downloadmixlib-cli-023c89e326251e8c2f063aa6f4ecd787cd35316f.tar.gz
Don't explode when there are unknown keys in 'config'deprecation-fix-unknown-keys
Update handle_deprecated_options to be graceful when 'config' has been modified externally to contain unknown keys. Signed-off-by: Marc A. Paradise <marc.paradise@gmail.com>
Diffstat (limited to 'spec')
-rw-r--r--spec/mixlib/cli_spec.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/spec/mixlib/cli_spec.rb b/spec/mixlib/cli_spec.rb
index acc10f8..46795aa 100644
--- a/spec/mixlib/cli_spec.rb
+++ b/spec/mixlib/cli_spec.rb
@@ -326,6 +326,18 @@ describe Mixlib::CLI do
TestCLI.option(:option_c, short: "-c ARG")
end
+ context "when someone injects an unexpected value into 'config'" do
+ before do
+ cli.config[:surprise] = true
+ end
+ it "parses and preserves both known and unknown config values" do
+ cli.parse_options(%w{--option-a})
+ expect(cli.config[:surprise]).to eql true
+ expect(cli.config[:option_a]).to eql true
+ end
+
+ end
+
context "when the deprecated option has a replacement" do
context "and a value_mapper is provided" do