summaryrefslogtreecommitdiff
path: root/spec/unit
diff options
context:
space:
mode:
authorJordan Running <jrunning@gmail.com>2016-03-18 13:38:43 -0500
committerJordan Running <jrunning@gmail.com>2016-03-18 13:38:43 -0500
commit93dc2cb77c40f82238b962c1d371618a5fb1fffa (patch)
tree54f1f038a2c910104728b68b4655d92163b5fec2 /spec/unit
parent559ce1da6ce142ebfb553f1124ab9e86a68709a8 (diff)
parent74a3e638780a6f569fbfd1179cd3242dd21383cb (diff)
downloadchef-93dc2cb77c40f82238b962c1d371618a5fb1fffa.tar.gz
Merge pull request #4714 from chef/cd/log-platform
Log platform along with client version and pid.
Diffstat (limited to 'spec/unit')
-rw-r--r--spec/unit/formatters/error_description_spec.rb96
1 files changed, 96 insertions, 0 deletions
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