exception_handling 3.0.pre.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +5 -5
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/workflows/pipeline.yml +36 -0
  4. data/.gitignore +3 -0
  5. data/.rspec +3 -0
  6. data/.ruby-version +1 -1
  7. data/.tool-versions +1 -0
  8. data/Appraisals +13 -0
  9. data/CHANGELOG.md +150 -0
  10. data/Gemfile +10 -16
  11. data/Gemfile.lock +65 -128
  12. data/README.md +51 -19
  13. data/Rakefile +8 -11
  14. data/exception_handling.gemspec +11 -13
  15. data/gemfiles/rails_5.gemfile +16 -0
  16. data/gemfiles/rails_6.gemfile +16 -0
  17. data/gemfiles/rails_7.gemfile +16 -0
  18. data/lib/exception_handling/escalate_callback.rb +19 -0
  19. data/lib/exception_handling/exception_info.rb +15 -11
  20. data/lib/exception_handling/log_stub_error.rb +2 -1
  21. data/lib/exception_handling/logging_methods.rb +21 -0
  22. data/lib/exception_handling/testing.rb +9 -12
  23. data/lib/exception_handling/version.rb +1 -1
  24. data/lib/exception_handling.rb +83 -173
  25. data/{test → spec}/helpers/exception_helpers.rb +2 -2
  26. data/spec/rake_test_warning_false.rb +20 -0
  27. data/{test/test_helper.rb → spec/spec_helper.rb} +63 -66
  28. data/spec/unit/exception_handling/escalate_callback_spec.rb +81 -0
  29. data/spec/unit/exception_handling/exception_catalog_spec.rb +85 -0
  30. data/spec/unit/exception_handling/exception_description_spec.rb +82 -0
  31. data/{test/unit/exception_handling/exception_info_test.rb → spec/unit/exception_handling/exception_info_spec.rb} +170 -114
  32. data/{test/unit/exception_handling/log_error_stub_test.rb → spec/unit/exception_handling/log_error_stub_spec.rb} +38 -22
  33. data/spec/unit/exception_handling/logging_methods_spec.rb +38 -0
  34. data/spec/unit/exception_handling_spec.rb +1063 -0
  35. metadata +62 -91
  36. data/lib/exception_handling/honeybadger_callbacks.rb +0 -59
  37. data/lib/exception_handling/mailer.rb +0 -70
  38. data/lib/exception_handling/methods.rb +0 -101
  39. data/lib/exception_handling/sensu.rb +0 -28
  40. data/semaphore_ci/setup.sh +0 -3
  41. data/test/unit/exception_handling/exception_catalog_test.rb +0 -85
  42. data/test/unit/exception_handling/exception_description_test.rb +0 -82
  43. data/test/unit/exception_handling/honeybadger_callbacks_test.rb +0 -122
  44. data/test/unit/exception_handling/mailer_test.rb +0 -98
  45. data/test/unit/exception_handling/methods_test.rb +0 -84
  46. data/test/unit/exception_handling/sensu_test.rb +0 -52
  47. data/test/unit/exception_handling_test.rb +0 -1109
  48. data/views/exception_handling/mailer/escalate_custom.html.erb +0 -17
  49. data/views/exception_handling/mailer/escalation_notification.html.erb +0 -17
  50. data/views/exception_handling/mailer/log_parser_exception_notification.html.erb +0 -82
  51. /data/{test → spec}/helpers/controller_helpers.rb +0 -0
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require File.expand_path('../../test_helper', __dir__)
3
+ require File.expand_path('../../spec_helper', __dir__)
4
4
 
5
5
  module ExceptionHandling
6
- class LogErrorStubTest < ActiveSupport::TestCase
6
+ describe LogErrorStub do
7
7
 
8
8
  include LogErrorStub
9
9
 
10
10
  context "while running tests" do
11
- setup do
11
+ before do
12
12
  setup_log_error_stub
13
13
  end
14
14
 
15
- teardown do
15
+ after do
16
16
  teardown_log_error_stub
17
17
  end
18
18
 
19
- should "raise an error when log_error and log_warning are called" do
19
+ it "raise an error when log_error and log_warning are called" do
20
20
  begin
21
21
  ExceptionHandling.log_error("Something happened")
22
22
  flunk
23
23
  rescue Exception => ex # LogErrorStub::UnexpectedExceptionLogged => ex
24
- assert ex.to_s.starts_with?("StandardError: Something happened"), ex.to_s
24
+ expect(ex.to_s.starts_with?("StandardError: Something happened")).to be_truthy
25
25
  end
26
26
 
27
27
  begin
@@ -31,16 +31,16 @@ module ExceptionHandling
31
31
  begin
32
32
  ExceptionHandling.log_error(ex)
33
33
  rescue LogErrorStub::UnexpectedExceptionLogged => ex
34
- assert ex.to_s.starts_with?("RaisedError: This should raise"), ex.to_s
34
+ expect(ex.to_s.starts_with?("RaisedError: This should raise")).to be_truthy
35
35
  end
36
36
  end
37
37
  end
38
38
 
39
- should "allow for the regex specification of an expected exception to be ignored" do
39
+ it "allow for the regex specification of an expected exception to be ignored" do
40
40
  exception_pattern = /StandardError: This is a test error/
41
- assert_nil exception_whitelist # test that exception expectations are cleared
41
+ expect(exception_whitelist).to be_nil # test that exception expectations are cleared
42
42
  expects_exception(exception_pattern)
43
- assert_equal exception_pattern, exception_whitelist[0][0]
43
+ expect(exception_whitelist[0][0]).to eq(exception_pattern)
44
44
  begin
45
45
  ExceptionHandling.log_error("This is a test error")
46
46
  rescue StandardError
@@ -48,11 +48,11 @@ module ExceptionHandling
48
48
  end
49
49
  end
50
50
 
51
- should "allow for the string specification of an expected exception to be ignored" do
51
+ it "allow for the string specification of an expected exception to be ignored" do
52
52
  exception_pattern = "StandardError: This is a test error"
53
- assert_nil exception_whitelist # test that exception expectations are cleared
53
+ expect(exception_whitelist).to be_nil # test that exception expectations are cleared
54
54
  expects_exception(exception_pattern)
55
- assert_equal exception_pattern, exception_whitelist[0][0]
55
+ expect(exception_whitelist[0][0]).to eq(exception_pattern)
56
56
  begin
57
57
  ExceptionHandling.log_error("This is a test error")
58
58
  rescue StandardError
@@ -60,9 +60,9 @@ module ExceptionHandling
60
60
  end
61
61
  end
62
62
 
63
- should "allow multiple errors to be ignored" do
63
+ it "allow multiple errors to be ignored" do
64
64
  class IgnoredError < StandardError; end
65
- assert_nil exception_whitelist # test that exception expectations are cleared
65
+ expect(exception_whitelist).to be_nil # test that exception expectations are cleared
66
66
  expects_exception(/StandardError: This is a test error/)
67
67
  expects_exception(/IgnoredError: This should be ignored/)
68
68
  ExceptionHandling.log_error("This is a test error")
@@ -73,7 +73,7 @@ module ExceptionHandling
73
73
  end
74
74
  end
75
75
 
76
- should "expect exception twice if declared twice" do
76
+ it "expect exception twice if declared twice" do
77
77
  expects_exception(/StandardError: ERROR: I love lamp/)
78
78
  expects_exception(/StandardError: ERROR: I love lamp/)
79
79
  ExceptionHandling.log_error("ERROR: I love lamp")
@@ -82,23 +82,39 @@ module ExceptionHandling
82
82
  end
83
83
 
84
84
  context "teardown_log_error_stub" do
85
- should "support MiniTest framework for adding a failure" do
85
+ before do
86
+ RSpec.configure do |config|
87
+ config.mock_with :rspec do |mocks|
88
+ mocks.verify_partial_doubles = false
89
+ end
90
+ end
91
+ end
92
+
93
+ after do
94
+ RSpec.configure do |config|
95
+ config.mock_with :rspec do |mocks|
96
+ mocks.verify_partial_doubles = true
97
+ end
98
+ end
99
+ end
100
+
101
+ it "support MiniTest framework for adding a failure" do
86
102
  expects_exception(/foo/)
87
103
 
88
- mock(self).is_mini_test?.returns { true }
104
+ expect(self).to receive(:is_mini_test?) { true }
89
105
 
90
- mock(self).flunk("log_error expected 1 times with pattern: 'foo' found 0")
106
+ expect(self).to receive(:flunk).with("log_error expected 1 times with pattern: 'foo' found 0")
91
107
  teardown_log_error_stub
92
108
 
93
109
  self.exception_whitelist = nil
94
110
  end
95
111
 
96
- should "support Test::Unit framework for adding a failure" do
112
+ it "support Test::Unit framework for adding a failure" do
97
113
  expects_exception(/foo/)
98
114
 
99
- mock(self).is_mini_test?.returns { false }
115
+ expect(self).to receive(:is_mini_test?) { false }
100
116
 
101
- mock(self).add_failure("log_error expected 1 times with pattern: 'foo' found 0")
117
+ expect(self).to receive(:add_failure).with("log_error expected 1 times with pattern: 'foo' found 0")
102
118
  teardown_log_error_stub
103
119
 
104
120
  self.exception_whitelist = nil
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('../../spec_helper', __dir__)
4
+
5
+ require_relative '../../helpers/exception_helpers'
6
+
7
+ require "exception_handling/testing"
8
+
9
+ module ExceptionHandling
10
+ describe LoggingMethods do
11
+ include ExceptionHelpers
12
+
13
+ def dont_stub_log_error
14
+ true
15
+ end
16
+
17
+ context "ExceptionHandling::LoggingMethods" do
18
+ before do
19
+ @controller = Testing::LoggingMethodsControllerStub.new
20
+ ExceptionHandling.stub_handler = nil
21
+ end
22
+
23
+ context "#log_warning" do
24
+ it "be available to the controller" do
25
+ klass = Class.new
26
+ klass.include ExceptionHandling::LoggingMethods
27
+ instance = klass.new
28
+ expect(instance.methods.include?(:log_warning)).to eq(true)
29
+ end
30
+
31
+ it "call ExceptionHandling#log_warning" do
32
+ expect(ExceptionHandling).to receive(:log_warning).with("Hi mom")
33
+ @controller.send(:log_warning, "Hi mom")
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end