appsignal 0.12.beta.31 → 0.12.beta.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/Rakefile +1 -0
  4. data/benchmark.rake +20 -20
  5. data/ext/appsignal_extension.c +31 -23
  6. data/gemfiles/padrino.gemfile +7 -0
  7. data/lib/appsignal.rb +50 -27
  8. data/lib/appsignal/capistrano.rb +2 -1
  9. data/lib/appsignal/config.rb +94 -39
  10. data/lib/appsignal/event_formatter/active_record/sql_formatter.rb +12 -17
  11. data/lib/appsignal/integrations/padrino.rb +65 -0
  12. data/lib/appsignal/integrations/rails.rb +4 -2
  13. data/lib/appsignal/integrations/rake.rb +30 -0
  14. data/lib/appsignal/integrations/sidekiq.rb +2 -2
  15. data/lib/appsignal/integrations/sinatra.rb +0 -1
  16. data/lib/appsignal/js_exception_transaction.rb +4 -9
  17. data/lib/appsignal/params_sanitizer.rb +8 -5
  18. data/lib/appsignal/rack/rails_instrumentation.rb +41 -0
  19. data/lib/appsignal/rack/sinatra_instrumentation.rb +31 -24
  20. data/lib/appsignal/subscriber.rb +2 -9
  21. data/lib/appsignal/transaction.rb +86 -75
  22. data/lib/appsignal/transmitter.rb +30 -3
  23. data/lib/appsignal/version.rb +2 -2
  24. data/spec/lib/appsignal/cli_spec.rb +1 -1
  25. data/spec/lib/appsignal/config_spec.rb +38 -131
  26. data/spec/lib/appsignal/event_formatter/active_record/sql_formatter_spec.rb +27 -29
  27. data/spec/lib/appsignal/extension_spec.rb +11 -29
  28. data/spec/lib/appsignal/integrations/padrino_spec.rb +191 -0
  29. data/spec/lib/appsignal/integrations/rails_spec.rb +3 -4
  30. data/spec/lib/appsignal/integrations/rake_spec.rb +78 -0
  31. data/spec/lib/appsignal/integrations/resque_spec.rb +2 -2
  32. data/spec/lib/appsignal/integrations/sequel_spec.rb +2 -3
  33. data/spec/lib/appsignal/integrations/sidekiq_spec.rb +22 -5
  34. data/spec/lib/appsignal/integrations/sinatra_spec.rb +0 -6
  35. data/spec/lib/appsignal/js_exception_transaction_spec.rb +4 -6
  36. data/spec/lib/appsignal/params_sanitizer_spec.rb +27 -11
  37. data/spec/lib/appsignal/rack/rails_instrumentation_spec.rb +79 -0
  38. data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +71 -71
  39. data/spec/lib/appsignal/subscriber_spec.rb +3 -37
  40. data/spec/lib/appsignal/transaction_spec.rb +290 -155
  41. data/spec/lib/appsignal/transmitter_spec.rb +10 -0
  42. data/spec/lib/appsignal_spec.rb +80 -47
  43. data/spec/spec_helper.rb +21 -2
  44. data/spec/support/helpers/env_helpers.rb +31 -0
  45. data/spec/support/helpers/notification_helpers.rb +1 -30
  46. data/spec/support/helpers/transaction_helpers.rb +7 -7
  47. data/spec/support/project_fixture/config/appsignal.yml +2 -0
  48. metadata +14 -8
  49. data/lib/appsignal/rack/instrumentation.rb +0 -32
  50. data/lib/appsignal/rack/listener.rb +0 -32
  51. data/spec/lib/appsignal/rack/instrumentation_spec.rb +0 -72
  52. data/spec/lib/appsignal/rack/listener_spec.rb +0 -104
@@ -69,6 +69,7 @@ describe Appsignal::Transmitter do
69
69
  let(:config) { project_fixture_config('test') }
70
70
 
71
71
  it { should be_instance_of(Net::HTTP) }
72
+ its(:proxy?) { should be_false }
72
73
  its(:use_ssl?) { should be_false }
73
74
  end
74
75
 
@@ -76,9 +77,18 @@ describe Appsignal::Transmitter do
76
77
  let(:config) { project_fixture_config('production') }
77
78
 
78
79
  it { should be_instance_of(Net::HTTP) }
80
+ its(:proxy?) { should be_false }
79
81
  its(:use_ssl?) { should be_true }
80
82
  its(:verify_mode) { should == OpenSSL::SSL::VERIFY_PEER }
81
83
  its(:ca_file) { Appsignal::Transmitter::CA_FILE_PATH }
82
84
  end
85
+
86
+ context "with a proxy" do
87
+ let(:config) { project_fixture_config('production', :http_proxy => 'http://localhost:8080') }
88
+
89
+ its(:proxy?) { should be_true }
90
+ its(:proxy_address) { should == 'localhost' }
91
+ its(:proxy_port) { should == 8080 }
92
+ end
83
93
  end
84
94
  end
@@ -201,29 +201,29 @@ describe Appsignal do
201
201
  end
202
202
  end
203
203
 
204
- describe ".listen_for_exception" do
204
+ describe ".listen_for_error" do
205
205
  it "should do nothing" do
206
206
  error = RuntimeError.new('specific error')
207
207
  lambda {
208
- Appsignal.listen_for_exception do
208
+ Appsignal.listen_for_error do
209
209
  raise error
210
210
  end
211
211
  }.should raise_error(error)
212
212
  end
213
213
  end
214
214
 
215
- describe ".send_exception" do
215
+ describe ".send_error" do
216
216
  it "should do nothing" do
217
217
  lambda {
218
- Appsignal.send_exception(RuntimeError.new)
218
+ Appsignal.send_error(RuntimeError.new)
219
219
  }.should_not raise_error
220
220
  end
221
221
  end
222
222
 
223
- describe ".set_exception" do
223
+ describe ".set_error" do
224
224
  it "should do nothing" do
225
225
  lambda {
226
- Appsignal.set_exception(RuntimeError.new)
226
+ Appsignal.set_error(RuntimeError.new)
227
227
  }.should_not raise_error
228
228
  end
229
229
  end
@@ -244,12 +244,10 @@ describe Appsignal do
244
244
  end
245
245
 
246
246
  describe ".monitor_transaction" do
247
- context "with a normall call" do
248
- it "should instrument and complete" do
249
- Appsignal::Transaction.stub(:current => transaction)
247
+ context "with a successful call" do
248
+ it "should instrument and complete for a background job" do
250
249
  ActiveSupport::Notifications.should_receive(:instrument).with(
251
- 'perform_job.something',
252
- :class => 'Something'
250
+ 'perform_job.something'
253
251
  ).and_yield
254
252
  Appsignal::Transaction.should_receive(:complete_current!)
255
253
  object = double
@@ -257,8 +255,30 @@ describe Appsignal do
257
255
 
258
256
  Appsignal.monitor_transaction(
259
257
  'perform_job.something',
260
- :class => 'Something'
258
+ background_env_with_data
259
+ ) do
260
+ current = Appsignal::Transaction.current
261
+ current.namespace.should == Appsignal::Transaction::BACKGROUND_JOB
262
+ current.request.should be_a(Appsignal::Transaction::GenericRequest)
263
+ object.some_method
264
+ end
265
+ end
266
+
267
+ it "should instrument and complete for a http request" do
268
+ ActiveSupport::Notifications.should_receive(:instrument).with(
269
+ 'process_action.something'
270
+ ).and_yield
271
+ Appsignal::Transaction.should_receive(:complete_current!)
272
+ object = double
273
+ object.should_receive(:some_method)
274
+
275
+ Appsignal.monitor_transaction(
276
+ 'process_action.something',
277
+ http_request_env_with_data
261
278
  ) do
279
+ current = Appsignal::Transaction.current
280
+ current.namespace.should == Appsignal::Transaction::HTTP_REQUEST
281
+ current.request.should be_a(::Rack::Request)
262
282
  object.some_method
263
283
  end
264
284
  end
@@ -268,7 +288,7 @@ describe Appsignal do
268
288
  let(:error) { VerySpecificError.new('the roof') }
269
289
 
270
290
  it "should add the error to the current transaction and complete" do
271
- Appsignal.should_receive(:set_exception).with(error)
291
+ Appsignal::Transaction.any_instance.should_receive(:set_error).with(error)
272
292
  Appsignal::Transaction.should_receive(:complete_current!)
273
293
 
274
294
  lambda {
@@ -437,9 +457,10 @@ describe Appsignal do
437
457
  end
438
458
 
439
459
  describe ".send_error" do
440
- let(:tags) { nil }
460
+ let(:tags) { nil }
461
+ let(:error) { VerySpecificError.new }
441
462
 
442
- it "should send the exception to AppSignal" do
463
+ it "should send the error to AppSignal" do
443
464
  Appsignal::Transaction.should_receive(:create).and_call_original
444
465
  end
445
466
 
@@ -447,68 +468,80 @@ describe Appsignal do
447
468
  let(:tags) { {:a => 'a', :b => 'b'} }
448
469
 
449
470
  it "should tag the request before sending" do
450
- transaction = Appsignal::Transaction.create(SecureRandom.uuid, {})
471
+ transaction = Appsignal::Transaction.create(
472
+ SecureRandom.uuid,
473
+ Appsignal::Transaction::HTTP_REQUEST,
474
+ Appsignal::Transaction::GenericRequest.new({})
475
+ )
451
476
  Appsignal::Transaction.stub(:create => transaction)
452
477
  transaction.should_receive(:set_tags).with(tags)
453
478
  Appsignal::Transaction.should_receive(:complete_current!)
454
479
  end
455
480
  end
456
481
 
457
- it "should not send the exception if it's in the ignored list" do
458
- Appsignal.stub(:is_ignored_exception? => true)
482
+ it "should not send the error if it's in the ignored list" do
483
+ Appsignal.stub(:is_ignored_error? => true)
459
484
  Appsignal::Transaction.should_not_receive(:create)
460
485
  end
461
486
 
462
- after do
463
- begin
464
- raise "I am an exception"
465
- rescue Exception => e
466
- Appsignal.send_exception(e, tags)
487
+ context "when given class is not an error" do
488
+ let(:error) { double }
489
+
490
+ it "should log a message" do
491
+ expect( Appsignal.logger ).to receive(:error).with('Can\'t send error, given value is not an exception')
467
492
  end
493
+
494
+ it "should not send the error" do
495
+ expect( Appsignal::Transaction ).to_not receive(:create)
496
+ end
497
+ end
498
+
499
+ after do
500
+ Appsignal.send_error(error, tags)
468
501
  end
469
502
  end
470
503
 
471
- describe ".listen_for_exception" do
472
- it "should call send_exception and re-raise" do
473
- Appsignal.should_receive(:send_exception).with(kind_of(Exception))
504
+ describe ".listen_for_error" do
505
+ it "should call send_error and re-raise" do
506
+ Appsignal.should_receive(:send_error).with(kind_of(Exception))
474
507
  lambda {
475
- Appsignal.listen_for_exception do
508
+ Appsignal.listen_for_error do
476
509
  raise "I am an exception"
477
510
  end
478
511
  }.should raise_error(RuntimeError, "I am an exception")
479
512
  end
480
513
  end
481
514
 
482
- describe ".set_exception" do
515
+ describe ".set_error" do
483
516
  before { Appsignal::Transaction.stub(:current => transaction) }
484
- let(:exception) { RuntimeError.new('I am an exception') }
517
+ let(:error) { RuntimeError.new('I am an exception') }
485
518
 
486
- it "should add the exception to the current transaction" do
487
- transaction.should_receive(:set_error).with(exception)
519
+ it "should add the error to the current transaction" do
520
+ transaction.should_receive(:set_error).with(error)
488
521
 
489
- Appsignal.set_exception(exception)
522
+ Appsignal.set_error(error)
490
523
  end
491
524
 
492
525
  it "should do nothing if there is no current transaction" do
493
526
  Appsignal::Transaction.stub(:current => nil)
494
527
 
495
- transaction.should_not_receive(:set_exception).with(exception)
528
+ transaction.should_not_receive(:set_error)
496
529
 
497
- Appsignal.set_exception(exception)
530
+ Appsignal.set_error(error)
498
531
  end
499
532
 
500
- it "should not add the exception if it's in the ignored list" do
501
- Appsignal.stub(:is_ignored_exception? => true)
533
+ it "should not add the error if it's in the ignored list" do
534
+ Appsignal.stub(:is_ignored_error? => true)
502
535
 
503
- transaction.should_not_receive(:set_exception).with(exception)
536
+ transaction.should_not_receive(:set_error)
504
537
 
505
- Appsignal.set_exception(exception)
538
+ Appsignal.set_error(error)
506
539
  end
507
540
 
508
- it "should do nothing if the exception is nil" do
509
- transaction.should_not_receive(:set_exception)
541
+ it "should do nothing if the error is nil" do
542
+ transaction.should_not_receive(:set_error)
510
543
 
511
- Appsignal.set_exception(nil)
544
+ Appsignal.set_error(nil)
512
545
  end
513
546
  end
514
547
 
@@ -536,22 +569,22 @@ describe Appsignal do
536
569
  end
537
570
  end
538
571
 
539
- describe ".is_ignored_exception?" do
540
- let(:exception) { StandardError.new }
572
+ describe ".is_ignored_error?" do
573
+ let(:error) { StandardError.new }
541
574
  before do
542
575
  Appsignal.stub(
543
- :config => {:ignore_exceptions => 'StandardError'}
576
+ :config => {:ignore_errors => ['StandardError']}
544
577
  )
545
578
  end
546
579
 
547
- subject { Appsignal.is_ignored_exception?(exception) }
580
+ subject { Appsignal.is_ignored_error?(error) }
548
581
 
549
582
  it "should return true if it's in the ignored list" do
550
583
  should be_true
551
584
  end
552
585
 
553
- context "when exception is not in the ingore list" do
554
- let(:exception) { Object.new }
586
+ context "when error is not in the ignored list" do
587
+ let(:error) { Object.new }
555
588
 
556
589
  it "should return false" do
557
590
  should be_false
@@ -1,4 +1,5 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
+ require 'rack'
2
3
  require 'rspec'
3
4
  require 'pry'
4
5
  require 'timecop'
@@ -20,6 +21,13 @@ def rails_present?
20
21
  RAILS_PRESENT
21
22
  end
22
23
 
24
+ def active_record_present?
25
+ require 'active_record'
26
+ true
27
+ rescue LoadError
28
+ false
29
+ end
30
+
23
31
  def running_jruby?
24
32
  defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
25
33
  end
@@ -45,6 +53,13 @@ rescue LoadError
45
53
  false
46
54
  end
47
55
 
56
+ def padrino_present?
57
+ require 'padrino'
58
+ true
59
+ rescue LoadError
60
+ false
61
+ end
62
+
48
63
  require 'appsignal'
49
64
 
50
65
  Dir[File.expand_path(File.join(File.dirname(__FILE__), 'support/helpers','*.rb'))].each {|f| require f}
@@ -71,6 +86,7 @@ end
71
86
 
72
87
  RSpec.configure do |config|
73
88
  config.include ConfigHelpers
89
+ config.include EnvHelpers
74
90
  config.include NotificationHelpers
75
91
  config.include TimeHelpers
76
92
  config.include TransactionHelpers
@@ -78,8 +94,11 @@ RSpec.configure do |config|
78
94
  config.before do
79
95
  ENV['PWD'] = File.expand_path(File.join(File.dirname(__FILE__), '../'))
80
96
  ENV['RAILS_ENV'] = 'test'
81
- ENV.delete('APPSIGNAL_PUSH_API_KEY')
82
- ENV.delete('APPSIGNAL_API_KEY')
97
+
98
+ # Clean environment
99
+ ENV.keys.select { |key| key.start_with?('APPSIGNAL_') }.each do |key|
100
+ ENV[key] = nil
101
+ end
83
102
  end
84
103
 
85
104
  config.after do
@@ -0,0 +1,31 @@
1
+ module EnvHelpers
2
+ def http_request_env_with_data(args={})
3
+ Rack::MockRequest.env_for(
4
+ '/blog',
5
+ :params => {
6
+ 'controller' => 'blog_posts',
7
+ 'action' => 'show',
8
+ 'id' => '1'
9
+ }
10
+ ).merge(
11
+ :controller => 'BlogPostsController',
12
+ :action => 'show',
13
+ :request_format => 'html',
14
+ :request_method => "GET",
15
+ :status => '200',
16
+ :view_runtime => 500,
17
+ :db_runtime => 500,
18
+ ).merge(args)
19
+ end
20
+
21
+ def background_env_with_data(args={})
22
+ {
23
+ :class => 'BackgroundJob',
24
+ :method => 'perform',
25
+ :priority => 1,
26
+ :attempts => 0,
27
+ :queue => 'default',
28
+ :queue_start => fixed_time - 10.0,
29
+ }.merge(args)
30
+ end
31
+ end
@@ -5,39 +5,10 @@ module NotificationHelpers
5
5
  :start => fixed_time,
6
6
  :ending => fixed_time + 0.1,
7
7
  :tid => '1',
8
- :payload => create_payload
8
+ :payload => http_request_env_with_data
9
9
  }.merge(args)
10
10
  ActiveSupport::Notifications::Event.new(
11
11
  args[:name], args[:start], args[:ending], args[:tid], args[:payload]
12
12
  )
13
13
  end
14
-
15
- def create_payload(args={})
16
- {
17
- :path => '/blog',
18
- :action => 'show',
19
- :controller => 'BlogPostsController',
20
- :params => {
21
- 'controller' => 'blog_posts',
22
- 'action' => 'show',
23
- 'id' => '1'
24
- },
25
- :request_format => 'html',
26
- :request_method => "GET",
27
- :status => '200',
28
- :view_runtime => 500,
29
- :db_runtime => 500
30
- }.merge(args)
31
- end
32
-
33
- def create_background_payload(args={})
34
- {
35
- :class => 'BackgroundJob',
36
- :method => 'perform',
37
- :priority => 1,
38
- :attempts => 0,
39
- :queue => 'default',
40
- :queue_start => fixed_time - 10.0,
41
- }.merge(args)
42
- end
43
14
  end
@@ -55,16 +55,15 @@ module TransactionHelpers
55
55
  )
56
56
  end
57
57
 
58
- def background_job_transaction(args={}, payload=create_background_payload)
58
+ def background_job_transaction(args={}, payload=background_env_with_data)
59
59
  Appsignal::Transaction.create(
60
60
  '1',
61
- {
61
+ Appsignal::Transaction::BACKGROUND_JOB,
62
+ Appsignal::Transaction::GenericRequest.new({
62
63
  'SERVER_NAME' => 'localhost',
63
64
  'action_dispatch.routes' => 'not_available'
64
- }.merge(args)
65
- ).tap do |o|
66
- o.set_root_event('perform_job.delayed_job', payload )
67
- end
65
+ }.merge(args))
66
+ )
68
67
  end
69
68
 
70
69
  def appsignal_transaction(args={})
@@ -75,13 +74,14 @@ module TransactionHelpers
75
74
  exception = args.delete(:exception)
76
75
  Appsignal::Transaction.create(
77
76
  '1',
77
+ args.delete(:namespace) || Appsignal::Transaction::HTTP_REQUEST,
78
78
  {
79
79
  'HTTP_USER_AGENT' => 'IE6',
80
80
  'SERVER_NAME' => 'localhost',
81
81
  'action_dispatch.routes' => 'not_available'
82
82
  }.merge(args)
83
83
  ).tap do |o|
84
- o.set_root_event(process_action_event.name, process_action_event.payload)
84
+ o.set_action(process_action_event.name)
85
85
  o.set_exception(exception) if exception
86
86
  end
87
87
  end
@@ -19,3 +19,5 @@ test:
19
19
  old_api_key:
20
20
  api_key: "def"
21
21
  active: true
22
+ ignore_exceptions:
23
+ - StandardError
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appsignal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.beta.31
4
+ version: 0.12.beta.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Beekman
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2015-08-21 00:00:00.000000000 Z
15
+ date: 2015-09-23 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rack
@@ -137,6 +137,7 @@ files:
137
137
  - gemfiles/capistrano2.gemfile
138
138
  - gemfiles/capistrano3.gemfile
139
139
  - gemfiles/no_dependencies.gemfile
140
+ - gemfiles/padrino.gemfile
140
141
  - gemfiles/rails-3.0.gemfile
141
142
  - gemfiles/rails-3.1.gemfile
142
143
  - gemfiles/rails-3.2.gemfile
@@ -161,7 +162,9 @@ files:
161
162
  - lib/appsignal/integrations/capistrano/careful_logger.rb
162
163
  - lib/appsignal/integrations/celluloid.rb
163
164
  - lib/appsignal/integrations/delayed_job.rb
165
+ - lib/appsignal/integrations/padrino.rb
164
166
  - lib/appsignal/integrations/rails.rb
167
+ - lib/appsignal/integrations/rake.rb
165
168
  - lib/appsignal/integrations/resque.rb
166
169
  - lib/appsignal/integrations/sequel.rb
167
170
  - lib/appsignal/integrations/sidekiq.rb
@@ -169,9 +172,8 @@ files:
169
172
  - lib/appsignal/js_exception_transaction.rb
170
173
  - lib/appsignal/marker.rb
171
174
  - lib/appsignal/params_sanitizer.rb
172
- - lib/appsignal/rack/instrumentation.rb
173
175
  - lib/appsignal/rack/js_exception_catcher.rb
174
- - lib/appsignal/rack/listener.rb
176
+ - lib/appsignal/rack/rails_instrumentation.rb
175
177
  - lib/appsignal/rack/sinatra_instrumentation.rb
176
178
  - lib/appsignal/subscriber.rb
177
179
  - lib/appsignal/transaction.rb
@@ -200,7 +202,9 @@ files:
200
202
  - spec/lib/appsignal/integrations/capistrano3_spec.rb
201
203
  - spec/lib/appsignal/integrations/celluloid_spec.rb
202
204
  - spec/lib/appsignal/integrations/delayed_job_spec.rb
205
+ - spec/lib/appsignal/integrations/padrino_spec.rb
203
206
  - spec/lib/appsignal/integrations/rails_spec.rb
207
+ - spec/lib/appsignal/integrations/rake_spec.rb
204
208
  - spec/lib/appsignal/integrations/resque_spec.rb
205
209
  - spec/lib/appsignal/integrations/sequel_spec.rb
206
210
  - spec/lib/appsignal/integrations/sidekiq_spec.rb
@@ -208,9 +212,8 @@ files:
208
212
  - spec/lib/appsignal/js_exception_transaction_spec.rb
209
213
  - spec/lib/appsignal/marker_spec.rb
210
214
  - spec/lib/appsignal/params_sanitizer_spec.rb
211
- - spec/lib/appsignal/rack/instrumentation_spec.rb
212
215
  - spec/lib/appsignal/rack/js_exception_catcher_spec.rb
213
- - spec/lib/appsignal/rack/listener_spec.rb
216
+ - spec/lib/appsignal/rack/rails_instrumentation_spec.rb
214
217
  - spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb
215
218
  - spec/lib/appsignal/subscriber_spec.rb
216
219
  - spec/lib/appsignal/transaction_spec.rb
@@ -223,6 +226,7 @@ files:
223
226
  - spec/support/fixtures/generated_config.yml
224
227
  - spec/support/fixtures/uploaded_file.txt
225
228
  - spec/support/helpers/config_helpers.rb
229
+ - spec/support/helpers/env_helpers.rb
226
230
  - spec/support/helpers/notification_helpers.rb
227
231
  - spec/support/helpers/time_helpers.rb
228
232
  - spec/support/helpers/transaction_helpers.rb
@@ -270,7 +274,9 @@ test_files:
270
274
  - spec/lib/appsignal/integrations/capistrano3_spec.rb
271
275
  - spec/lib/appsignal/integrations/celluloid_spec.rb
272
276
  - spec/lib/appsignal/integrations/delayed_job_spec.rb
277
+ - spec/lib/appsignal/integrations/padrino_spec.rb
273
278
  - spec/lib/appsignal/integrations/rails_spec.rb
279
+ - spec/lib/appsignal/integrations/rake_spec.rb
274
280
  - spec/lib/appsignal/integrations/resque_spec.rb
275
281
  - spec/lib/appsignal/integrations/sequel_spec.rb
276
282
  - spec/lib/appsignal/integrations/sidekiq_spec.rb
@@ -278,9 +284,8 @@ test_files:
278
284
  - spec/lib/appsignal/js_exception_transaction_spec.rb
279
285
  - spec/lib/appsignal/marker_spec.rb
280
286
  - spec/lib/appsignal/params_sanitizer_spec.rb
281
- - spec/lib/appsignal/rack/instrumentation_spec.rb
282
287
  - spec/lib/appsignal/rack/js_exception_catcher_spec.rb
283
- - spec/lib/appsignal/rack/listener_spec.rb
288
+ - spec/lib/appsignal/rack/rails_instrumentation_spec.rb
284
289
  - spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb
285
290
  - spec/lib/appsignal/subscriber_spec.rb
286
291
  - spec/lib/appsignal/transaction_spec.rb
@@ -293,6 +298,7 @@ test_files:
293
298
  - spec/support/fixtures/generated_config.yml
294
299
  - spec/support/fixtures/uploaded_file.txt
295
300
  - spec/support/helpers/config_helpers.rb
301
+ - spec/support/helpers/env_helpers.rb
296
302
  - spec/support/helpers/notification_helpers.rb
297
303
  - spec/support/helpers/time_helpers.rb
298
304
  - spec/support/helpers/transaction_helpers.rb