exception_handling 2.7.0.pre.1 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
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