exception_handling 2.7.0.pre.1 → 2.7.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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.jenkins/Jenkinsfile +24 -8
  4. data/.rspec +3 -0
  5. data/CHANGELOG.md +2 -2
  6. data/Gemfile +4 -4
  7. data/Gemfile.lock +65 -56
  8. data/Rakefile +7 -6
  9. data/gemfiles/rails_4.gemfile +4 -4
  10. data/gemfiles/rails_5.gemfile +4 -4
  11. data/gemfiles/rails_6.gemfile +4 -4
  12. data/lib/exception_handling/log_stub_error.rb +2 -1
  13. data/lib/exception_handling/logging_methods.rb +1 -7
  14. data/lib/exception_handling/version.rb +1 -1
  15. data/{test → spec}/helpers/controller_helpers.rb +0 -0
  16. data/{test → spec}/helpers/exception_helpers.rb +2 -2
  17. data/{test → spec}/rake_test_warning_false.rb +0 -0
  18. data/{test/test_helper.rb → spec/spec_helper.rb} +50 -39
  19. data/spec/unit/exception_handling/exception_catalog_spec.rb +85 -0
  20. data/spec/unit/exception_handling/exception_description_spec.rb +82 -0
  21. data/{test/unit/exception_handling/exception_info_test.rb → spec/unit/exception_handling/exception_info_spec.rb} +105 -107
  22. data/{test/unit/exception_handling/honeybadger_callbacks_test.rb → spec/unit/exception_handling/honeybadger_callbacks_spec.rb} +20 -20
  23. data/{test/unit/exception_handling/log_error_stub_test.rb → spec/unit/exception_handling/log_error_stub_spec.rb} +38 -22
  24. data/{test/unit/exception_handling/logging_methods_test.rb → spec/unit/exception_handling/logging_methods_spec.rb} +8 -7
  25. data/{test/unit/exception_handling/mailer_test.rb → spec/unit/exception_handling/mailer_spec.rb} +17 -17
  26. data/spec/unit/exception_handling/methods_spec.rb +105 -0
  27. data/spec/unit/exception_handling/sensu_spec.rb +51 -0
  28. data/{test/unit/exception_handling_test.rb → spec/unit/exception_handling_spec.rb} +325 -329
  29. metadata +36 -35
  30. data/test/unit/exception_handling/exception_catalog_test.rb +0 -85
  31. data/test/unit/exception_handling/exception_description_test.rb +0 -82
  32. data/test/unit/exception_handling/methods_test.rb +0 -105
  33. data/test/unit/exception_handling/sensu_test.rb +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3794611262e09346bab80e7a683f4ce1d78d6ba04b46fa15fa4bc84ac087e41e
4
- data.tar.gz: 36f96bed7f2b3375df4730d35ee5ec96cdf70e7c07f4ba589e187c75275c1736
3
+ metadata.gz: afa095c443e845d5430949250d3322dd48aaecafe82fe4c9c2d5ccc7f5564152
4
+ data.tar.gz: '084ccae5591206c295baada42941ec9c30e27f251de8a5c92724508f0cceda54'
5
5
  SHA512:
6
- metadata.gz: 2d1dad10749b867696c0f4dcacedcfb4af466ba792fa0c98ae307ee4bbeda10657f172fc95ff3c9b0162d1787d39c3c2a15a220fa6c6f4a7f7b10d857dad5eec
7
- data.tar.gz: 8b28f2829a1e34787d7de51fdee4d0fe5a39356584d6d910c106edac2fe5d8ebcf0f3f5f1e9e1b7e4e7b0c36dd62035885214248072e47a7fdec7d1e4a854f94
6
+ metadata.gz: 4818cdf704d8fc2c002fbb7d5d0bfa5a5b8ffeeaef5d75304b6bf383ef59b7249894232ba6ea85abb6e0baa84bf758e18cf4415ead62c9e570685825215ec616
7
+ data.tar.gz: 32b87f2c3ef26d7c7ac830ae7368337141336acdf7e6885df0ab8eb8b9796a1c4ba7c8398947b7f5dcb0d7ea3b4d21878ff11c4484cd9f67aaf85dd4b045bf23
data/.gitignore CHANGED
@@ -1,6 +1,6 @@
1
1
  .idea
2
2
  .DS_Store
3
3
  .rubocop-http*
4
- test/reports/*
4
+ spec/reports/*
5
5
  gemfiles/*.lock
6
6
  pkg/
@@ -36,42 +36,58 @@ pipeline {
36
36
  stage('Appraisals') {
37
37
  parallel {
38
38
  stage('Current') {
39
+ environment {
40
+ JUNIT_OUTPUT = 'spec/reports/current'
41
+ }
42
+
39
43
  steps {
40
- sh 'JUNIT_OUTPUT_DIR=test/reports/current bundle exec rake'
44
+ sh "bundle exec rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
41
45
  }
42
46
 
43
47
  post {
44
- always { junit '*/reports/current/*.xml' }
48
+ always { junit "${JUNIT_OUTPUT}/*.xml" }
45
49
  }
46
50
  }
47
51
 
48
52
  stage('Rails 4') {
53
+ environment {
54
+ JUNIT_OUTPUT = 'spec/reports/rails-4'
55
+ }
56
+
49
57
  steps {
50
- sh 'JUNIT_OUTPUT_DIR=test/reports/rails-4 bundle exec appraisal rails-4 rake'
58
+ sh "bundle exec appraisal rails-4 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
51
59
  }
52
60
 
53
61
  post {
54
- always { junit '*/reports/rails-4/*.xml' }
62
+ always { junit "${JUNIT_OUTPUT}/*.xml" }
55
63
  }
56
64
  }
57
65
 
58
66
  stage('Rails 5') {
67
+ environment {
68
+ JUNIT_OUTPUT = 'spec/reports/rails-5'
69
+ }
70
+
59
71
  steps {
60
- sh 'JUNIT_OUTPUT_DIR=test/reports/rails-5 bundle exec appraisal rails-5 rake'
72
+ sh "bundle exec appraisal rails-5 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
61
73
  }
62
74
 
63
75
  post {
64
- always { junit '*/reports/rails-5/*.xml' }
76
+ always { junit "${JUNIT_OUTPUT}/*.xml" }
65
77
  }
66
78
  }
67
79
 
68
80
  stage('Rails 6') {
81
+ environment {
82
+ JUNIT_OUTPUT = 'spec/reports/rails-6'
83
+ }
84
+
69
85
  steps {
70
- sh 'JUNIT_OUTPUT_DIR=test/reports/rails-6 bundle exec appraisal rails-6 rake'
86
+ sh "bundle exec appraisal rails-6 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
71
87
  }
72
88
 
73
89
  post {
74
- always { junit '*/reports/rails-6/*.xml' }
90
+ always { junit "${JUNIT_OUTPUT}/*.xml" }
75
91
  }
76
92
  }
77
93
  }
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --format progress
3
+ --color
@@ -4,13 +4,13 @@ Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
5
  Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [2.7.0] - Unreleased
7
+ ## [2.7.0] - 2020-10-14
8
8
  ### Added
9
9
  - Added `LoggingMethods` as a replacement for `Methods` without setting controller or checking for long controller action.
10
10
  ### Deprecated
11
11
  - Deprecated `Methods` in favor of `LoggingMethods`.
12
12
 
13
- ## [2.6.1] - Unreleased
13
+ ## [2.6.1] - 2020-10-14
14
14
  ### Fixed
15
15
  - Fixed honeybadger_context_data to always merge `current_context_for_thread`, even if `log_context:` is passed as `nil`.
16
16
 
data/Gemfile CHANGED
@@ -6,10 +6,10 @@ gemspec
6
6
 
7
7
  gem 'appraisal', '~> 2.2'
8
8
  gem 'honeybadger', '3.3.1-1', git: 'git@github.com:Invoca/honeybadger-ruby', ref: 'bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6'
9
- gem "minitest"
10
- gem "minitest-reporters"
11
9
  gem 'pry'
10
+ gem 'pry-byebug'
12
11
  gem 'rake'
13
- gem 'rr'
12
+ gem 'rspec'
13
+ gem 'rspec_junit_formatter'
14
14
  gem 'rubocop'
15
- gem 'shoulda'
15
+ gem 'test-unit'
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- exception_handling (2.7.0.pre.1)
11
+ exception_handling (2.7.0)
12
12
  actionmailer (>= 4.2, < 7.0)
13
13
  actionpack (>= 4.2, < 7.0)
14
14
  activesupport (>= 4.2, < 7.0)
@@ -19,51 +19,53 @@ PATH
19
19
  GEM
20
20
  remote: https://rubygems.org/
21
21
  specs:
22
- actionmailer (4.2.11.1)
23
- actionpack (= 4.2.11.1)
24
- actionview (= 4.2.11.1)
25
- activejob (= 4.2.11.1)
22
+ actionmailer (6.0.3.4)
23
+ actionpack (= 6.0.3.4)
24
+ actionview (= 6.0.3.4)
25
+ activejob (= 6.0.3.4)
26
26
  mail (~> 2.5, >= 2.5.4)
27
- rails-dom-testing (~> 1.0, >= 1.0.5)
28
- actionpack (4.2.11.1)
29
- actionview (= 4.2.11.1)
30
- activesupport (= 4.2.11.1)
31
- rack (~> 1.6)
32
- rack-test (~> 0.6.2)
33
- rails-dom-testing (~> 1.0, >= 1.0.5)
34
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
35
- actionview (4.2.11.1)
36
- activesupport (= 4.2.11.1)
27
+ rails-dom-testing (~> 2.0)
28
+ actionpack (6.0.3.4)
29
+ actionview (= 6.0.3.4)
30
+ activesupport (= 6.0.3.4)
31
+ rack (~> 2.0, >= 2.0.8)
32
+ rack-test (>= 0.6.3)
33
+ rails-dom-testing (~> 2.0)
34
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
35
+ actionview (6.0.3.4)
36
+ activesupport (= 6.0.3.4)
37
37
  builder (~> 3.1)
38
- erubis (~> 2.7.0)
39
- rails-dom-testing (~> 1.0, >= 1.0.5)
40
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
41
- activejob (4.2.11.1)
42
- activesupport (= 4.2.11.1)
43
- globalid (>= 0.3.0)
44
- activesupport (4.2.11.1)
45
- i18n (~> 0.7)
38
+ erubi (~> 1.4)
39
+ rails-dom-testing (~> 2.0)
40
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
41
+ activejob (6.0.3.4)
42
+ activesupport (= 6.0.3.4)
43
+ globalid (>= 0.3.6)
44
+ activesupport (6.0.3.4)
45
+ concurrent-ruby (~> 1.0, >= 1.0.2)
46
+ i18n (>= 0.7, < 2)
46
47
  minitest (~> 5.1)
47
- thread_safe (~> 0.3, >= 0.3.4)
48
48
  tzinfo (~> 1.1)
49
- ansi (1.5.0)
49
+ zeitwerk (~> 2.2, >= 2.2.2)
50
50
  appraisal (2.2.0)
51
51
  bundler
52
52
  rake
53
53
  thor (>= 0.14.0)
54
54
  ast (2.4.0)
55
- builder (3.2.3)
55
+ builder (3.2.4)
56
+ byebug (11.1.3)
56
57
  coderay (1.1.2)
57
- concurrent-ruby (1.1.5)
58
+ concurrent-ruby (1.1.7)
58
59
  contextual_logger (0.11.0)
59
60
  activesupport
60
61
  json
61
62
  crass (1.0.6)
62
- erubis (2.7.0)
63
+ diff-lcs (1.4.4)
64
+ erubi (1.9.0)
63
65
  eventmachine (1.2.7)
64
66
  globalid (0.4.2)
65
67
  activesupport (>= 4.2.0)
66
- i18n (0.9.5)
68
+ i18n (1.8.5)
67
69
  concurrent-ruby (~> 1.0)
68
70
  invoca-utils (0.4.1)
69
71
  jaro_winkler (1.5.3)
@@ -76,34 +78,44 @@ GEM
76
78
  method_source (0.9.2)
77
79
  mini_mime (1.0.2)
78
80
  mini_portile2 (2.4.0)
79
- minitest (5.11.3)
80
- minitest-reporters (1.0.20)
81
- ansi
82
- builder
83
- minitest (>= 5.0)
84
- ruby-progressbar
81
+ minitest (5.14.2)
85
82
  nokogiri (1.10.10)
86
83
  mini_portile2 (~> 2.4.0)
87
84
  parallel (1.17.0)
88
85
  parser (2.6.3.0)
89
86
  ast (~> 2.4.0)
87
+ power_assert (1.2.0)
90
88
  pry (0.12.2)
91
89
  coderay (~> 1.1.0)
92
90
  method_source (~> 0.9.0)
93
- rack (1.6.13)
94
- rack-test (0.6.3)
95
- rack (>= 1.0)
96
- rails-deprecated_sanitizer (1.0.3)
97
- activesupport (>= 4.2.0.alpha)
98
- rails-dom-testing (1.0.9)
99
- activesupport (>= 4.2.0, < 5.0)
100
- nokogiri (~> 1.6)
101
- rails-deprecated_sanitizer (>= 1.0.1)
91
+ pry-byebug (3.8.0)
92
+ byebug (~> 11.0)
93
+ pry (~> 0.10)
94
+ rack (2.2.3)
95
+ rack-test (1.1.0)
96
+ rack (>= 1.0, < 3)
97
+ rails-dom-testing (2.0.3)
98
+ activesupport (>= 4.2.0)
99
+ nokogiri (>= 1.6)
102
100
  rails-html-sanitizer (1.3.0)
103
101
  loofah (~> 2.3)
104
102
  rainbow (3.0.0)
105
103
  rake (13.0.1)
106
- rr (1.2.1)
104
+ rspec (3.9.0)
105
+ rspec-core (~> 3.9.0)
106
+ rspec-expectations (~> 3.9.0)
107
+ rspec-mocks (~> 3.9.0)
108
+ rspec-core (3.9.2)
109
+ rspec-support (~> 3.9.3)
110
+ rspec-expectations (3.9.2)
111
+ diff-lcs (>= 1.2.0, < 2.0)
112
+ rspec-support (~> 3.9.0)
113
+ rspec-mocks (3.9.1)
114
+ diff-lcs (>= 1.2.0, < 2.0)
115
+ rspec-support (~> 3.9.0)
116
+ rspec-support (3.9.3)
117
+ rspec_junit_formatter (0.4.1)
118
+ rspec-core (>= 2, < 4, != 2.12.0)
107
119
  rubocop (0.74.0)
108
120
  jaro_winkler (~> 1.5.1)
109
121
  parallel (~> 1.10)
@@ -112,17 +124,14 @@ GEM
112
124
  ruby-progressbar (~> 1.7)
113
125
  unicode-display_width (>= 1.4.0, < 1.7)
114
126
  ruby-progressbar (1.10.1)
115
- shoulda (3.6.0)
116
- shoulda-context (~> 1.0, >= 1.0.1)
117
- shoulda-matchers (~> 3.0)
118
- shoulda-context (1.2.2)
119
- shoulda-matchers (3.1.3)
120
- activesupport (>= 4.0.0)
127
+ test-unit (3.3.6)
128
+ power_assert
121
129
  thor (1.0.1)
122
130
  thread_safe (0.3.6)
123
- tzinfo (1.2.5)
131
+ tzinfo (1.2.7)
124
132
  thread_safe (~> 0.1)
125
133
  unicode-display_width (1.6.0)
134
+ zeitwerk (2.4.0)
126
135
 
127
136
  PLATFORMS
128
137
  ruby
@@ -131,13 +140,13 @@ DEPENDENCIES
131
140
  appraisal (~> 2.2)
132
141
  exception_handling!
133
142
  honeybadger (= 3.3.1.pre.1)!
134
- minitest
135
- minitest-reporters
136
143
  pry
144
+ pry-byebug
137
145
  rake
138
- rr
146
+ rspec
147
+ rspec_junit_formatter
139
148
  rubocop
140
- shoulda
149
+ test-unit
141
150
 
142
151
  BUNDLED WITH
143
152
  1.17.3
data/Rakefile CHANGED
@@ -1,14 +1,15 @@
1
1
  #!/usr/bin/env rake
2
2
  # frozen_string_literal: true
3
3
 
4
- require "bundler/gem_tasks"
5
4
  require 'rake/testtask'
5
+ require "bundler/gem_tasks"
6
6
 
7
- require_relative 'test/rake_test_warning_false'
8
-
9
- task default: :test
7
+ require_relative 'spec/rake_test_warning_false'
10
8
 
11
- Rake::TestTask.new do |t|
12
- t.pattern = "test/**/*_test.rb"
9
+ desc "run rspec unit tests"
10
+ begin
11
+ require 'rspec/core/rake_task'
12
+ RSpec::Core::RakeTask.new(:rspec)
13
13
  end
14
14
 
15
+ task default: :rspec
@@ -4,13 +4,13 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.2"
6
6
  gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
7
- gem "minitest"
8
- gem "minitest-reporters"
9
7
  gem "pry"
8
+ gem "pry-byebug"
10
9
  gem "rake"
11
- gem "rr"
10
+ gem "rspec"
11
+ gem "rspec_junit_formatter"
12
12
  gem "rubocop"
13
- gem "shoulda"
13
+ gem "test-unit"
14
14
  gem "actionmailer", "~> 4.2"
15
15
  gem "actionpack", "~> 4.2"
16
16
  gem "activesupport", "~> 4.2"
@@ -4,13 +4,13 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.2"
6
6
  gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
7
- gem "minitest"
8
- gem "minitest-reporters"
9
7
  gem "pry"
8
+ gem "pry-byebug"
10
9
  gem "rake"
11
- gem "rr"
10
+ gem "rspec"
11
+ gem "rspec_junit_formatter"
12
12
  gem "rubocop"
13
- gem "shoulda"
13
+ gem "test-unit"
14
14
  gem "actionmailer", "~> 5.2"
15
15
  gem "actionpack", "~> 5.2"
16
16
  gem "activesupport", "~> 5.2"
@@ -4,13 +4,13 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.2"
6
6
  gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
7
- gem "minitest"
8
- gem "minitest-reporters"
9
7
  gem "pry"
8
+ gem "pry-byebug"
10
9
  gem "rake"
11
- gem "rr"
10
+ gem "rspec"
11
+ gem "rspec_junit_formatter"
12
12
  gem "rubocop"
13
- gem "shoulda"
13
+ gem "test-unit"
14
14
  gem "actionmailer", "~> 6.0"
15
15
  gem "actionpack", "~> 6.0"
16
16
  gem "activesupport", "~> 6.0"
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  #
4
- # Used by functional tests to track exceptions.
4
+ # Test Helper that supports Minitest::Test and Test::Unit
5
+ # Used by tests in the consumers of this gem to track exceptions.
5
6
  #
6
7
 
7
8
  module LogErrorStub
@@ -9,13 +9,7 @@ module ExceptionHandling
9
9
 
10
10
  protected
11
11
 
12
- delegate :log_error_rack, :log_warning, :log_info, :log_debug, :escalate_error, :escalate_warning, :ensure_escalation, :alert_warning, to: ExceptionHandling
13
-
14
- # TODO: delegate log_error as well
15
- def log_error(exception_or_string, exception_context = '')
16
- controller = self if respond_to?(:request) && respond_to?(:session)
17
- ExceptionHandling.log_error(exception_or_string, exception_context, controller)
18
- end
12
+ delegate :log_error_rack, :log_warning, :log_info, :log_debug, :escalate_error, :escalate_warning, :ensure_escalation, :alert_warning, :log_error, to: ExceptionHandling
19
13
 
20
14
  def ensure_safe(exception_context = "")
21
15
  yield
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExceptionHandling
4
- VERSION = '2.7.0.pre.1'
4
+ VERSION = '2.7.0'
5
5
  end
@@ -7,7 +7,7 @@ module ExceptionHelpers
7
7
 
8
8
  def exception_with_nil_message
9
9
  exception_with_nil_message = RuntimeError.new(nil)
10
- stub(exception_with_nil_message).message { nil }
10
+ allow(exception_with_nil_message).to receive(:message).and_return(nil)
11
11
  exception_with_nil_message
12
12
  end
13
13
 
@@ -15,6 +15,6 @@ module ExceptionHelpers
15
15
 
16
16
  def capture_notifications
17
17
  @sent_notifications = []
18
- stub(ExceptionHandling).send_exception_to_honeybadger(anything) { |exception_info| @sent_notifications << exception_info }
18
+ allow(ExceptionHandling).to receive(:send_exception_to_honeybadger).with(anything) { |exception_info| @sent_notifications << exception_info }
19
19
  end
20
20
  end