summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-08-12 10:27:48 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2015-08-12 10:27:48 -0700
commit190aecd09e93f105521b9aaf066699fca3412999 (patch)
tree15da3b78ec8ee33a84f931b32ce113d5ca52f9da /spec
parent84fb5f3ad8942b2b45ca48ff75621916e00342a0 (diff)
parent3060794742d90b0d8cef8f21bddce4a330b97153 (diff)
downloadchef-190aecd09e93f105521b9aaf066699fca3412999.tar.gz
Merge pull request #3757 from martinb3/frozen_error_inspector
Add additional helpful section for frozen objects
Diffstat (limited to 'spec')
-rw-r--r--spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb b/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb
index 5f95beb259..3c8d5dfa29 100644
--- a/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb
+++ b/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb
@@ -110,6 +110,32 @@ describe Chef::Formatters::ErrorInspectors::CompileErrorInspector do
end
end
+ context "when the error is a RuntimeError about frozen object" do
+ let(:exception) do
+ e = RuntimeError.new("can't modify frozen Array")
+ e.set_backtrace(trace)
+ e
+ end
+
+ let(:path_to_failed_file) { "/tmp/kitchen/cache/cookbooks/foo/recipes/default.rb" }
+
+ let(:trace) do
+ [
+ "/tmp/kitchen/cache/cookbooks/foo/recipes/default.rb:2:in `block in from_file'",
+ "/tmp/kitchen/cache/cookbooks/foo/recipes/default.rb:1:in `from_file'"
+ ]
+ end
+
+ describe "when explaining a runtime error in the compile phase" do
+ it "correctly detects RuntimeError for frozen objects" do
+ expect(inspector.exception_message_modifying_frozen?).to be(true)
+ end
+
+ # could also test for description.section to be called, but would have
+ # to adjust every other test to begin using a test double for description
+ end
+ end
+
context "when the error does not contain any lines from cookbooks" do
let(:trace) do