bugsnag 6.8.0 → 6.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +1 -0
  3. data/.travis.yml +12 -7
  4. data/CHANGELOG.md +12 -0
  5. data/README.md +1 -1
  6. data/VERSION +1 -1
  7. data/features/.gitignore +1 -0
  8. data/features/delayed_job.feature +53 -0
  9. data/features/fixtures/delayed_job/Dockerfile +10 -5
  10. data/features/fixtures/delayed_job/app/.gitignore +21 -0
  11. data/features/fixtures/delayed_job/app/Gemfile +57 -0
  12. data/features/fixtures/delayed_job/app/README.md +24 -0
  13. data/features/fixtures/delayed_job/app/Rakefile +6 -0
  14. data/features/fixtures/delayed_job/app/app/assets/config/manifest.js +3 -0
  15. data/features/fixtures/delayed_job/app/app/assets/images/.keep +0 -0
  16. data/features/fixtures/delayed_job/app/app/assets/javascripts/application.js +16 -0
  17. data/features/fixtures/delayed_job/app/app/assets/javascripts/cable.js +13 -0
  18. data/features/fixtures/delayed_job/app/app/assets/javascripts/channels/.keep +0 -0
  19. data/features/fixtures/delayed_job/app/app/assets/stylesheets/application.css +15 -0
  20. data/features/fixtures/delayed_job/app/app/channels/application_cable/channel.rb +4 -0
  21. data/features/fixtures/delayed_job/app/app/channels/application_cable/connection.rb +4 -0
  22. data/features/fixtures/delayed_job/app/app/controllers/application_controller.rb +3 -0
  23. data/features/fixtures/delayed_job/app/app/controllers/concerns/.keep +0 -0
  24. data/features/fixtures/delayed_job/app/app/helpers/application_helper.rb +2 -0
  25. data/features/fixtures/delayed_job/app/app/jobs/application_job.rb +2 -0
  26. data/features/fixtures/delayed_job/app/app/mailers/application_mailer.rb +4 -0
  27. data/features/fixtures/delayed_job/app/app/models/application_record.rb +3 -0
  28. data/features/fixtures/delayed_job/app/app/models/concerns/.keep +0 -0
  29. data/features/fixtures/delayed_job/app/app/models/test_model.rb +10 -0
  30. data/features/fixtures/delayed_job/app/app/views/layouts/application.html.erb +14 -0
  31. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.html.erb +13 -0
  32. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.text.erb +1 -0
  33. data/features/fixtures/delayed_job/app/config.ru +5 -0
  34. data/features/fixtures/delayed_job/app/config/application.rb +15 -0
  35. data/features/fixtures/delayed_job/app/config/boot.rb +3 -0
  36. data/features/fixtures/delayed_job/app/config/cable.yml +9 -0
  37. data/features/fixtures/delayed_job/app/config/database.yml +25 -0
  38. data/features/fixtures/delayed_job/app/config/environment.rb +5 -0
  39. data/features/fixtures/delayed_job/app/config/environments/development.rb +54 -0
  40. data/features/fixtures/delayed_job/app/config/environments/production.rb +86 -0
  41. data/features/fixtures/delayed_job/app/config/environments/test.rb +42 -0
  42. data/features/fixtures/delayed_job/app/config/initializers/application_controller_renderer.rb +8 -0
  43. data/features/fixtures/delayed_job/app/config/initializers/assets.rb +11 -0
  44. data/features/fixtures/delayed_job/app/config/initializers/backtrace_silencers.rb +7 -0
  45. data/features/fixtures/delayed_job/app/config/initializers/bugsnag.rb +14 -0
  46. data/features/fixtures/delayed_job/app/config/initializers/cookies_serializer.rb +5 -0
  47. data/features/fixtures/delayed_job/app/config/initializers/delayed_job.rb +3 -0
  48. data/features/fixtures/delayed_job/app/config/initializers/filter_parameter_logging.rb +4 -0
  49. data/features/fixtures/delayed_job/app/config/initializers/inflections.rb +16 -0
  50. data/features/fixtures/delayed_job/app/config/initializers/mime_types.rb +4 -0
  51. data/features/fixtures/delayed_job/app/config/initializers/new_framework_defaults.rb +26 -0
  52. data/features/fixtures/delayed_job/app/config/initializers/session_store.rb +3 -0
  53. data/features/fixtures/delayed_job/app/config/initializers/wrap_parameters.rb +14 -0
  54. data/features/fixtures/delayed_job/app/config/locales/en.yml +23 -0
  55. data/features/fixtures/delayed_job/app/config/puma.rb +47 -0
  56. data/features/fixtures/delayed_job/app/config/routes.rb +3 -0
  57. data/features/fixtures/delayed_job/app/config/secrets.yml +22 -0
  58. data/features/fixtures/delayed_job/app/config/spring.rb +6 -0
  59. data/features/fixtures/delayed_job/app/db/migrate/20181024232549_create_delayed_jobs.rb +22 -0
  60. data/features/fixtures/delayed_job/app/db/migrate/20181024232817_create_test_models.rb +8 -0
  61. data/features/fixtures/delayed_job/app/db/schema.rb +30 -0
  62. data/features/fixtures/delayed_job/app/db/seeds.rb +7 -0
  63. data/features/fixtures/delayed_job/app/lib/assets/.keep +0 -0
  64. data/features/fixtures/delayed_job/app/lib/tasks/.keep +0 -0
  65. data/features/fixtures/delayed_job/app/log/.keep +0 -0
  66. data/features/fixtures/delayed_job/app/public/404.html +67 -0
  67. data/features/fixtures/delayed_job/app/public/422.html +67 -0
  68. data/features/fixtures/delayed_job/app/public/500.html +66 -0
  69. data/features/fixtures/delayed_job/app/public/apple-touch-icon-precomposed.png +0 -0
  70. data/features/fixtures/delayed_job/app/public/apple-touch-icon.png +0 -0
  71. data/features/fixtures/delayed_job/app/public/favicon.ico +0 -0
  72. data/features/fixtures/delayed_job/app/public/robots.txt +5 -0
  73. data/features/fixtures/delayed_job/app/test/controllers/.keep +0 -0
  74. data/features/fixtures/delayed_job/app/test/fixtures/.keep +0 -0
  75. data/features/fixtures/delayed_job/app/test/fixtures/files/.keep +0 -0
  76. data/features/fixtures/delayed_job/app/test/fixtures/test_models.yml +11 -0
  77. data/features/fixtures/delayed_job/app/test/helpers/.keep +0 -0
  78. data/features/fixtures/delayed_job/app/test/integration/.keep +0 -0
  79. data/features/fixtures/delayed_job/app/test/mailers/.keep +0 -0
  80. data/features/fixtures/delayed_job/app/test/models/.keep +0 -0
  81. data/features/fixtures/delayed_job/app/test/models/test_model_test.rb +7 -0
  82. data/features/fixtures/delayed_job/app/test/test_helper.rb +10 -0
  83. data/features/fixtures/delayed_job/app/tmp/.keep +0 -0
  84. data/features/fixtures/docker-compose.yml +24 -4
  85. data/features/sidekiq.feature +3 -1
  86. data/features/steps/ruby_notifier_steps.rb +0 -33
  87. data/features/support/env.rb +18 -0
  88. data/lib/bugsnag.rb +1 -0
  89. data/lib/bugsnag/integrations/delayed_job.rb +21 -78
  90. data/lib/bugsnag/integrations/sidekiq.rb +34 -19
  91. data/lib/bugsnag/middleware/delayed_job.rb +73 -0
  92. data/spec/integrations/sidekiq_spec.rb +51 -16
  93. metadata +80 -6
  94. data/features/fixtures/delayed_job/.dockerignore +0 -1
  95. data/features/fixtures/delayed_job/Gemfile +0 -4
  96. data/spec/integrations/delayed_job_spec.rb +0 -118
@@ -1 +0,0 @@
1
- Gemfile.lock
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'bugsnag'
4
- gem 'delayed_job'
@@ -1,118 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe ::Delayed::Plugins::Bugsnag do
6
- describe '#error' do
7
- it 'should set metadata correctly with max_attempts' do
8
- payload = Object.new
9
- payload.extend(described_class::Notify)
10
- job = double
11
- allow(job).to receive_messages(
12
- :id => "TEST",
13
- :queue => "TEST_QUEUE",
14
- :attempts => 0,
15
- :max_attempts => 3,
16
- :payload_object => {
17
- :id => "PAYLOAD_ID",
18
- :display_name => "PAYLOAD_DISPLAY_NAME",
19
- :method_name => "PAYLOAD_METHOD_NAME",
20
- :args => [
21
- "SOME",
22
- "TEST",
23
- "ARGS"
24
- ]
25
- }
26
- )
27
-
28
- expect do
29
- payload.error(job, '')
30
- end.not_to raise_error
31
-
32
- expect(Bugsnag).to have_sent_notification{ |payload, headers|
33
- event = get_event_from_payload(payload)
34
- expect(event["severity"]).to eq("error")
35
- expect(event["severityReason"]).to eq({
36
- "type" => "unhandledExceptionMiddleware",
37
- "attributes" => {
38
- "framework" => "DelayedJob"
39
- }
40
- })
41
- expect(event["metaData"]["job"]).to eq({
42
- "class" => job.class.name,
43
- "id" => "TEST",
44
- "queue" => "TEST_QUEUE",
45
- "attempts" => "1 / 3",
46
- "payload" => {
47
- "class" => {}.class.name,
48
- "args" => {
49
- "id" => "PAYLOAD_ID",
50
- "display_name" => "PAYLOAD_DISPLAY_NAME",
51
- "method_name" => "PAYLOAD_METHOD_NAME",
52
- "args" => [
53
- "SOME",
54
- "TEST",
55
- "ARGS"
56
- ]
57
- }
58
- }
59
- })
60
- }
61
- end
62
-
63
- it 'should set metadata correctly without max_attempts' do
64
- payload = Object.new
65
- payload.extend(described_class::Notify)
66
- job = double
67
- allow(job).to receive_messages(
68
- :id => "TEST",
69
- :queue => "TEST_QUEUE",
70
- :attempts => 0,
71
- :payload_object => {
72
- :id => "PAYLOAD_ID",
73
- :display_name => "PAYLOAD_DISPLAY_NAME",
74
- :method_name => "PAYLOAD_METHOD_NAME",
75
- :args => [
76
- "SOME",
77
- "TEST",
78
- "ARGS"
79
- ]
80
- }
81
- )
82
-
83
- expect do
84
- payload.error(job, '')
85
- end.not_to raise_error
86
-
87
- expect(Bugsnag).to have_sent_notification{ |payload, headers|
88
- event = get_event_from_payload(payload)
89
- expect(event["severity"]).to eq("error")
90
- expect(event["severityReason"]).to eq({
91
- "type" => "unhandledExceptionMiddleware",
92
- "attributes" => {
93
- "framework" => "DelayedJob"
94
- }
95
- })
96
- expect(event["metaData"]["job"]).to eq({
97
- "class" => job.class.name,
98
- "id" => "TEST",
99
- "queue" => "TEST_QUEUE",
100
- "attempts" => "1 / #{Delayed::Worker.max_attempts}",
101
- "payload" => {
102
- "class" => {}.class.name,
103
- "args" => {
104
- "id" => "PAYLOAD_ID",
105
- "display_name" => "PAYLOAD_DISPLAY_NAME",
106
- "method_name" => "PAYLOAD_METHOD_NAME",
107
- "args" => [
108
- "SOME",
109
- "TEST",
110
- "ARGS"
111
- ]
112
- }
113
- }
114
- })
115
- }
116
- end
117
- end
118
- end