diff options
author | Jordan Running <jr@getchef.com> | 2016-03-17 16:10:57 -0500 |
---|---|---|
committer | Jordan Running <jr@getchef.com> | 2016-03-18 12:27:08 -0500 |
commit | 74a3e638780a6f569fbfd1179cd3242dd21383cb (patch) | |
tree | 0f7fbe8b9595eacddff11309fe7baa50519fcf60 | |
parent | b5aad13f499dafb4a8bf98e91293f2812d1a039d (diff) | |
download | chef-74a3e638780a6f569fbfd1179cd3242dd21383cb.tar.gz |
Log platform in pretty error outputcd/log-platform
-rw-r--r-- | lib/chef/formatters/base.rb | 2 | ||||
-rw-r--r-- | lib/chef/formatters/error_description.rb (renamed from lib/chef/formatters/error_descriptor.rb) | 2 | ||||
-rw-r--r-- | spec/unit/formatters/error_description_spec.rb | 96 |
3 files changed, 99 insertions, 1 deletions
diff --git a/lib/chef/formatters/base.rb b/lib/chef/formatters/base.rb index 90925ffdb4..3641e619e9 100644 --- a/lib/chef/formatters/base.rb +++ b/lib/chef/formatters/base.rb @@ -19,7 +19,7 @@ require "chef/event_dispatch/base" require "chef/formatters/error_inspectors" -require "chef/formatters/error_descriptor" +require "chef/formatters/error_description" require "chef/formatters/error_mapper" require "chef/formatters/indentable_output_stream" diff --git a/lib/chef/formatters/error_descriptor.rb b/lib/chef/formatters/error_description.rb index 1a40f785cb..8d7f940181 100644 --- a/lib/chef/formatters/error_descriptor.rb +++ b/lib/chef/formatters/error_description.rb @@ -39,11 +39,13 @@ class Chef out.puts @title, :red out.puts "=" * 80 out.puts "\n" + sections.each do |section| section.each do |heading, text| display_section(heading, text, out) end end + display_section("Platform:", RUBY_PLATFORM, out) end def for_json() diff --git a/spec/unit/formatters/error_description_spec.rb b/spec/unit/formatters/error_description_spec.rb new file mode 100644 index 0000000000..8b088308fa --- /dev/null +++ b/spec/unit/formatters/error_description_spec.rb @@ -0,0 +1,96 @@ +# +# Author:: Jordan Running (<jr@chef.io>) +# +# Copyright:: Copyright 2015-2016, Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require "spec_helper" + +describe Chef::Formatters::ErrorDescription do + let(:title) { "test title" } + + let(:out) { Chef::Formatters::IndentableOutputStream.new(StringIO.new, STDERR) } + + let(:section_heading) { "test heading" } + let(:section_text) { "test text" } + + subject { Chef::Formatters::ErrorDescription.new(title) } + + describe "#sections" do + context "when no sections have been added" do + it "should return an empty array" do + expect(subject.sections).to eq [] + end + end + + context "when a section has been added" do + before do + subject.section(section_heading, section_text) + end + + it "should return an array with the added section as a hash" do + expect(subject.sections).to eq [ { section_heading => section_text } ] + end + end + end + + describe "#display" do + before do + stub_const("RUBY_PLATFORM", "ruby-foo-9000") + end + + context "when no sections have been added" do + it "should output only the title and the Platform section" do + subject.display(out) + expect(out.out.string).to eq <<-END +================================================================================ +test title +================================================================================ + +Platform: +--------- +ruby-foo-9000 + + END + end + end + + context "when a section has been added" do + before do + subject.section(section_heading, section_text) + end + + it "should output the expected sections" do + subject.display(out) + expect(out.out.string).to eq <<-END +================================================================================ +test title +================================================================================ + +test heading +------------ +test text + +Platform: +--------- +ruby-foo-9000 + + END + end + + end + end +end |