From ede2f40ea840cf0c5dcd4eb5f1394688ada8bfad Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Wed, 10 Mar 2021 14:44:44 -0800 Subject: [PATCH] Provide more helpful error messages when you need to provide more details There isn't a help command for this CLI so this message in its current form is pretty useless. Signed-off-by: Tim Smith Signed-off-by: Tom Duffield --- lib/mixlib/install/options.rb | 2 +- spec/functional/mixlib/install/cli_spec.rb | 2 +- spec/unit/mixlib/install/options_spec.rb | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/mixlib/install/options.rb b/lib/mixlib/install/options.rb index 5b6a6af2..bfccf2bc 100644 --- a/lib/mixlib/install/options.rb +++ b/lib/mixlib/install/options.rb @@ -233,7 +233,7 @@ def validate_user_agent_headers def validate_platform_options unless all_or_none?(platform_info.values) errors << <<-EOS -Must provide platform, platform version and architecture when specifying any platform details +Must provide platform (-p), platform version (-l) and architecture (-a) when specifying any platform details EOS end end diff --git a/spec/functional/mixlib/install/cli_spec.rb b/spec/functional/mixlib/install/cli_spec.rb index d57910d2..67753a7a 100644 --- a/spec/functional/mixlib/install/cli_spec.rb +++ b/spec/functional/mixlib/install/cli_spec.rb @@ -179,7 +179,7 @@ let(:architecture) { nil } it "fails with missing args error" do - expect(last_command_started).to have_output /Must provide platform, platform version and architecture when specifying any platform details/ + expect(last_command_started).to have_output "Must provide platform (-p), platform version (-l) and architecture (-a) when specifying any platform details" end end diff --git a/spec/unit/mixlib/install/options_spec.rb b/spec/unit/mixlib/install/options_spec.rb index 112ab3ca..d0631dbe 100644 --- a/spec/unit/mixlib/install/options_spec.rb +++ b/spec/unit/mixlib/install/options_spec.rb @@ -91,14 +91,14 @@ let(:platform) { "ubuntu" } it "raises platform options error" do - expect { Mixlib::Install.new(product_name: product_name, channel: channel, platform: platform) }.to raise_error(Mixlib::Install::Options::InvalidOptions, /Must provide platform, platform version and architecture/) + expect { Mixlib::Install.new(product_name: product_name, channel: channel, platform: platform) }.to raise_error(Mixlib::Install::Options::InvalidOptions, /Must provide platform \(-p\), platform version \(-l\) and architecture \(-a\) when specifying any platform details/) end context "and with platform version" do let(:platform_version) { "14.04" } it "raises platform options error" do - expect { Mixlib::Install.new(product_name: product_name, channel: channel, platform: platform, platform_version: platform_version) }.to raise_error(Mixlib::Install::Options::InvalidOptions, /Must provide platform, platform version and architecture/) + expect { Mixlib::Install.new(product_name: product_name, channel: channel, platform: platform, platform_version: platform_version) }.to raise_error(Mixlib::Install::Options::InvalidOptions, /Must provide platform \(-p\), platform version \(-l\) and architecture \(-a\) when specifying any platform details/) end end end @@ -107,7 +107,7 @@ let(:architecture) { "i386" } it "raises platform options error" do - expect { Mixlib::Install.new(product_name: product_name, channel: channel, architecture: architecture) }.to raise_error(Mixlib::Install::Options::InvalidOptions, /Must provide platform, platform version and architecture/) + expect { Mixlib::Install.new(product_name: product_name, channel: channel, architecture: architecture) }.to raise_error(Mixlib::Install::Options::InvalidOptions, /Must provide platform \(-p\), platform version \(-l\) and architecture \(-a\) when specifying any platform details/) end end end