errdo 0.11.1 → 0.11.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/errdo/active_job.rb +13 -0
- data/lib/errdo/version.rb +1 -1
- data/lib/errdo.rb +6 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +37151 -0
- data/test/integrations/non_web_test.rb +64 -0
- data/test/models/errdo_test.rb +0 -40
- data/test/tmp/config/application.rb +4 -0
- data/test/tmp/config/initializers/errdo.rb +54 -0
- metadata +9 -4
- data/test/tmp/db/migrate/20161020165703_errdo_create_errs.rb +0 -54
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class FailJob < ActiveJob::Base
|
4
|
+
|
5
|
+
queue_as :default
|
6
|
+
|
7
|
+
def perform(*_args)
|
8
|
+
raise "AsynchronousFailure"
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
class NonWebTest < ActionDispatch::IntegrationTest
|
14
|
+
|
15
|
+
# rubocop:disable Style/RescueModifier
|
16
|
+
# rubocop:disable Lint/HandleExceptions
|
17
|
+
context "rake tasks" do
|
18
|
+
setup do
|
19
|
+
load "#{Rails.root}/lib/tasks/test.rake"
|
20
|
+
end
|
21
|
+
|
22
|
+
teardown do
|
23
|
+
Rake.application['test:error'].reenable
|
24
|
+
Rake.application['test:interrupt'].reenable
|
25
|
+
end
|
26
|
+
|
27
|
+
should "create an error when a task fails" do
|
28
|
+
Errdo.log_task_exceptions = true
|
29
|
+
assert_difference 'Errdo::ErrorOccurrence.count', 1 do
|
30
|
+
Rake.application['test:error'].invoke rescue ""
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
should "not create an error when a task fails with an interrupt" do
|
35
|
+
Errdo.log_task_exceptions = true
|
36
|
+
load "#{Rails.root}/lib/tasks/test.rake"
|
37
|
+
assert_difference 'Errdo::ErrorOccurrence.count', 0 do
|
38
|
+
begin
|
39
|
+
Rake.application['test:interrupt'].invoke
|
40
|
+
rescue Interrupt
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
should "create not an error when a task fails when not set" do
|
46
|
+
Errdo.log_task_exceptions = false
|
47
|
+
assert_difference 'Errdo::ErrorOccurrence.count', 0 do
|
48
|
+
Rake.application['test:error'].invoke rescue ""
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
# rubocop:enable Style/RescueModifier
|
53
|
+
# rubocop:enable Lint/HandleExceptions
|
54
|
+
|
55
|
+
context "active jobs" do
|
56
|
+
should "log to errdo when job fails asynchronously" do
|
57
|
+
assert_difference 'Errdo::ErrorOccurrence.count', 1 do
|
58
|
+
# rubocop:disable Style/RescueModifier
|
59
|
+
FailJob.perform_now rescue ""
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
data/test/models/errdo_test.rb
CHANGED
@@ -83,46 +83,6 @@ class ErrdoTest < ActiveSupport::TestCase
|
|
83
83
|
occ = Errdo::ErrorOccurrence.last
|
84
84
|
assert_equal "...", occ.param_values[:password]
|
85
85
|
end
|
86
|
-
|
87
|
-
# rubocop:disable Style/RescueModifier
|
88
|
-
# rubocop:disable Lint/HandleExceptions
|
89
|
-
context "rake tasks" do
|
90
|
-
setup do
|
91
|
-
load "#{Rails.root}/lib/tasks/test.rake"
|
92
|
-
end
|
93
|
-
|
94
|
-
teardown do
|
95
|
-
Rake.application['test:error'].reenable
|
96
|
-
Rake.application['test:interrupt'].reenable
|
97
|
-
end
|
98
|
-
|
99
|
-
should "create an error when a task fails" do
|
100
|
-
Errdo.log_task_exceptions = true
|
101
|
-
assert_difference 'Errdo::ErrorOccurrence.count', 1 do
|
102
|
-
Rake.application['test:error'].invoke rescue ""
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
should "not create an error when a task fails with an interrupt" do
|
107
|
-
Errdo.log_task_exceptions = true
|
108
|
-
load "#{Rails.root}/lib/tasks/test.rake"
|
109
|
-
assert_difference 'Errdo::ErrorOccurrence.count', 0 do
|
110
|
-
begin
|
111
|
-
Rake.application['test:interrupt'].invoke
|
112
|
-
rescue Interrupt
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
should "create not an error when a task fails when not set" do
|
118
|
-
Errdo.log_task_exceptions = false
|
119
|
-
assert_difference 'Errdo::ErrorOccurrence.count', 0 do
|
120
|
-
Rake.application['test:error'].invoke rescue ""
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
124
|
-
# rubocop:enable Style/RescueModifier
|
125
|
-
# rubocop:enable Lint/HandleExceptions
|
126
86
|
end
|
127
87
|
end
|
128
88
|
|
@@ -0,0 +1,54 @@
|
|
1
|
+
Errdo.setup do |config|
|
2
|
+
# Add words to be scrubbed from the params here. By default, this is
|
3
|
+
# %w(password passwd password_confirmation secret confirm_password secret_token)
|
4
|
+
# So make sure you add on, not replace!
|
5
|
+
# Errdo.dirty_words += ["custom_param"]
|
6
|
+
|
7
|
+
## == Authorization and Devise integration =========
|
8
|
+
# If you have the ability to track who's logged in, setting the current_user_method
|
9
|
+
# will allow the logged-in user to be recorded with the error
|
10
|
+
# config.current_user_method = :current_user
|
11
|
+
# Some form of authentication here is basically necessary for authorization
|
12
|
+
# config.authenticate_with do
|
13
|
+
# warden.authenticate! scope: :user
|
14
|
+
# end
|
15
|
+
|
16
|
+
## == Authorization ================================
|
17
|
+
# Setup authorization to be run as a before filter
|
18
|
+
# This is run inside the controller instance so you can setup any authorization you need to.
|
19
|
+
# By default, there is no authorization.
|
20
|
+
#
|
21
|
+
# config.authorize_with do
|
22
|
+
# redirect_to root_path unless warden.user.try(:is_admin?)
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# To use an authorization adapter, pass the name of the adapter. For example,
|
26
|
+
# to use with CanCanCan[https://github.com/CanCanCommunity/cancancan], pass it like this.
|
27
|
+
# Currently, only cancan/cancancan is supported
|
28
|
+
# config.authorize_with :cancan
|
29
|
+
|
30
|
+
# This determines how the user is displayed on the table of errors
|
31
|
+
# Can be any method that a user responds to, I.E. Any method that returns a string
|
32
|
+
# when called on user (Default is :email)
|
33
|
+
config.user_string_method = :email
|
34
|
+
|
35
|
+
# Setting this will allow the user string to be linked to the show path
|
36
|
+
# Default is the errdo root path
|
37
|
+
# config.user_show_path = :user_path
|
38
|
+
|
39
|
+
## == Notification Integration ====================
|
40
|
+
# See the github page at https://github.com/erichaydel/errdo for more info on how to set up slack
|
41
|
+
# If you want to set up slack, this is the only required parameter.
|
42
|
+
# The rest are totally optional, and default to the values here
|
43
|
+
#
|
44
|
+
# Errdo.notify_with slack: { webhook: "WEBHOOK-URL",
|
45
|
+
# channel: nil
|
46
|
+
# icon: ":boom:",
|
47
|
+
# name: "Errdo-bot" }
|
48
|
+
# For now, slack is the only integration. More coming soon!
|
49
|
+
|
50
|
+
## == Non Web Requests ============================
|
51
|
+
# Error logging for rake tasks is on by default. To turn it off, set
|
52
|
+
# Errdo.log_task_exceptions = false
|
53
|
+
|
54
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: errdo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- erichaydel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -158,6 +158,7 @@ files:
|
|
158
158
|
- app/views/layouts/errdo/application.html.slim
|
159
159
|
- config/routes.rb
|
160
160
|
- lib/errdo.rb
|
161
|
+
- lib/errdo/active_job.rb
|
161
162
|
- lib/errdo/engine.rb
|
162
163
|
- lib/errdo/extension.rb
|
163
164
|
- lib/errdo/extensions/cancancan.rb
|
@@ -1001,13 +1002,15 @@ files:
|
|
1001
1002
|
- test/helpers/views_helper_test.rb
|
1002
1003
|
- test/integrations/authorization_integration_test.rb
|
1003
1004
|
- test/integrations/errors_integration_test.rb
|
1005
|
+
- test/integrations/non_web_test.rb
|
1004
1006
|
- test/integrations/plugins_integration_test.rb
|
1005
1007
|
- test/integrations/views_integration_test.rb
|
1006
1008
|
- test/models/errdo_test.rb
|
1007
1009
|
- test/models/error_occurrence_test.rb
|
1008
1010
|
- test/models/error_test.rb
|
1009
1011
|
- test/test_helper.rb
|
1010
|
-
- test/tmp/
|
1012
|
+
- test/tmp/config/application.rb
|
1013
|
+
- test/tmp/config/initializers/errdo.rb
|
1011
1014
|
homepage: https://github.com/erichaydel/errdo
|
1012
1015
|
licenses:
|
1013
1016
|
- MIT
|
@@ -1848,6 +1851,7 @@ test_files:
|
|
1848
1851
|
- test/dummy/app/views/users/show.html.erb
|
1849
1852
|
- test/dummy/app/views/static/log.html.erb
|
1850
1853
|
- test/dummy/app/views/static/home.html.erb
|
1854
|
+
- test/integrations/non_web_test.rb
|
1851
1855
|
- test/integrations/errors_integration_test.rb
|
1852
1856
|
- test/integrations/views_integration_test.rb
|
1853
1857
|
- test/integrations/plugins_integration_test.rb
|
@@ -1860,7 +1864,8 @@ test_files:
|
|
1860
1864
|
- test/models/error_occurrence_test.rb
|
1861
1865
|
- test/models/errdo_test.rb
|
1862
1866
|
- test/models/error_test.rb
|
1863
|
-
- test/tmp/
|
1867
|
+
- test/tmp/config/application.rb
|
1868
|
+
- test/tmp/config/initializers/errdo.rb
|
1864
1869
|
- test/generators/install_generator_test.rb
|
1865
1870
|
- test/generators/active_record_generator_test.rb
|
1866
1871
|
- test/generators/errdo_generator_test.rb
|
@@ -1,54 +0,0 @@
|
|
1
|
-
class ErrdoCreateErrs < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
create_table :errs do |t|
|
4
|
-
t.string :exception_class_name
|
5
|
-
t.string :exception_message
|
6
|
-
t.string :http_method
|
7
|
-
t.string :host_name
|
8
|
-
t.string :url
|
9
|
-
|
10
|
-
t.text :backtrace
|
11
|
-
|
12
|
-
t.string :backtrace_hash
|
13
|
-
t.integer :occurrence_count, default: 0
|
14
|
-
t.datetime :last_occurred_at
|
15
|
-
|
16
|
-
t.string :last_experiencer_type
|
17
|
-
t.integer :last_experiencer_id
|
18
|
-
|
19
|
-
t.integer :status, default: 0
|
20
|
-
t.string :importance, default: "error"
|
21
|
-
|
22
|
-
|
23
|
-
t.timestamps null: false
|
24
|
-
end
|
25
|
-
|
26
|
-
create_table :err_occurrences do |t|
|
27
|
-
t.integer :err_id
|
28
|
-
|
29
|
-
t.string :experiencer_type
|
30
|
-
t.integer :experiencer_id
|
31
|
-
|
32
|
-
t.string :ip
|
33
|
-
t.string :user_agent
|
34
|
-
t.string :referer
|
35
|
-
t.string :query_string
|
36
|
-
t.text :form_values
|
37
|
-
t.text :param_values
|
38
|
-
t.text :cookie_values
|
39
|
-
t.text :header_values
|
40
|
-
|
41
|
-
t.integer :ocurrence_count, default: 1
|
42
|
-
t.timestamps null: false
|
43
|
-
end
|
44
|
-
|
45
|
-
add_index :errs, :backtrace_hash, unique: true
|
46
|
-
add_index :errs, :importance
|
47
|
-
add_index :errs, :last_experiencer_id
|
48
|
-
add_index :errs, :last_experiencer_type
|
49
|
-
|
50
|
-
add_index :err_occurrences, :experiencer_id
|
51
|
-
add_index :err_occurrences, :experiencer_type
|
52
|
-
add_index :err_occurrences, :err_id
|
53
|
-
end
|
54
|
-
end
|