appsignal 2.1.0.beta.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +2 -1
  3. data/CHANGELOG.md +5 -0
  4. data/README.md +14 -15
  5. data/appsignal.gemspec +1 -1
  6. data/lib/appsignal.rb +1 -1
  7. data/lib/appsignal/auth_check.rb +5 -2
  8. data/lib/appsignal/cli/demo.rb +1 -1
  9. data/lib/appsignal/cli/diagnose.rb +1 -1
  10. data/lib/appsignal/cli/install.rb +1 -1
  11. data/lib/appsignal/transaction.rb +2 -1
  12. data/lib/appsignal/version.rb +1 -1
  13. data/spec/lib/appsignal/auth_check_spec.rb +9 -10
  14. data/spec/lib/appsignal/capistrano2_spec.rb +6 -6
  15. data/spec/lib/appsignal/capistrano3_spec.rb +6 -6
  16. data/spec/lib/appsignal/cli/demo_spec.rb +1 -1
  17. data/spec/lib/appsignal/cli/diagnose_spec.rb +1 -1
  18. data/spec/lib/appsignal/cli/helpers_spec.rb +2 -2
  19. data/spec/lib/appsignal/cli/install_spec.rb +2 -2
  20. data/spec/lib/appsignal/cli_spec.rb +2 -2
  21. data/spec/lib/appsignal/config_spec.rb +24 -24
  22. data/spec/lib/appsignal/demo_spec.rb +4 -2
  23. data/spec/lib/appsignal/event_formatter/action_view/render_formatter_spec.rb +11 -7
  24. data/spec/lib/appsignal/event_formatter/active_record/instantiation_formatter_spec.rb +2 -2
  25. data/spec/lib/appsignal/event_formatter/active_record/sql_formatter_spec.rb +2 -2
  26. data/spec/lib/appsignal/event_formatter/elastic_search/search_formatter_spec.rb +1 -1
  27. data/spec/lib/appsignal/event_formatter/faraday/request_formatter_spec.rb +2 -2
  28. data/spec/lib/appsignal/event_formatter/moped/query_formatter_spec.rb +9 -9
  29. data/spec/lib/appsignal/event_formatter_spec.rb +17 -17
  30. data/spec/lib/appsignal/extension_spec.rb +7 -7
  31. data/spec/lib/appsignal/garbage_collection_profiler_spec.rb +0 -3
  32. data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +11 -3
  33. data/spec/lib/appsignal/hooks/celluloid_spec.rb +12 -4
  34. data/spec/lib/appsignal/hooks/data_mapper_spec.rb +12 -4
  35. data/spec/lib/appsignal/hooks/delayed_job_spec.rb +21 -13
  36. data/spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb +14 -6
  37. data/spec/lib/appsignal/hooks/net_http_spec.rb +11 -3
  38. data/spec/lib/appsignal/hooks/passenger_spec.rb +14 -6
  39. data/spec/lib/appsignal/hooks/puma_spec.rb +18 -10
  40. data/spec/lib/appsignal/hooks/rake_spec.rb +2 -2
  41. data/spec/lib/appsignal/hooks/redis_spec.rb +40 -30
  42. data/spec/lib/appsignal/hooks/sequel_spec.rb +11 -3
  43. data/spec/lib/appsignal/hooks/shoryuken_spec.rb +15 -7
  44. data/spec/lib/appsignal/hooks/sidekiq_spec.rb +17 -9
  45. data/spec/lib/appsignal/hooks/unicorn_spec.rb +16 -8
  46. data/spec/lib/appsignal/hooks/webmachine_spec.rb +14 -4
  47. data/spec/lib/appsignal/hooks_spec.rb +28 -28
  48. data/spec/lib/appsignal/integrations/data_mapper_spec.rb +1 -1
  49. data/spec/lib/appsignal/integrations/grape_spec.rb +3 -3
  50. data/spec/lib/appsignal/integrations/mongo_ruby_driver_spec.rb +14 -16
  51. data/spec/lib/appsignal/integrations/object_spec.rb +10 -10
  52. data/spec/lib/appsignal/integrations/padrino_spec.rb +14 -18
  53. data/spec/lib/appsignal/integrations/railtie_spec.rb +35 -19
  54. data/spec/lib/appsignal/integrations/resque_active_job_spec.rb +2 -2
  55. data/spec/lib/appsignal/integrations/resque_spec.rb +8 -8
  56. data/spec/lib/appsignal/integrations/sinatra_spec.rb +2 -2
  57. data/spec/lib/appsignal/integrations/webmachine_spec.rb +1 -1
  58. data/spec/lib/appsignal/js_exception_transaction_spec.rb +1 -1
  59. data/spec/lib/appsignal/minutely_spec.rb +3 -3
  60. data/spec/lib/appsignal/rack/generic_instrumentation_spec.rb +12 -12
  61. data/spec/lib/appsignal/rack/js_exception_catcher_spec.rb +2 -2
  62. data/spec/lib/appsignal/rack/rails_instrumentation_spec.rb +19 -15
  63. data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +21 -21
  64. data/spec/lib/appsignal/rack/streaming_listener_spec.rb +5 -5
  65. data/spec/lib/appsignal/system_spec.rb +5 -5
  66. data/spec/lib/appsignal/transaction_spec.rb +176 -155
  67. data/spec/lib/appsignal/transmitter_spec.rb +29 -23
  68. data/spec/lib/appsignal/utils/params_sanitizer_spec.rb +49 -35
  69. data/spec/lib/appsignal/utils_spec.rb +15 -8
  70. data/spec/lib/appsignal_spec.rb +134 -150
  71. data/spec/spec_helper.rb +5 -2
  72. metadata +6 -10
  73. data/spec/lib/tmp/config/appsignal.yml +0 -2
  74. data/spec/support/delegate_matcher.rb +0 -38
@@ -15,13 +15,13 @@ describe Appsignal::Hooks::SidekiqPlugin do
15
15
  let(:plugin) { Appsignal::Hooks::SidekiqPlugin.new }
16
16
 
17
17
  before do
18
- Appsignal::Transaction.stub(:current => current_transaction)
18
+ allow(Appsignal::Transaction).to receive(:current).and_return(current_transaction)
19
19
  start_agent
20
20
  end
21
21
 
22
22
  context "with a performance call" do
23
23
  it "should wrap in a transaction with the correct params" do
24
- Appsignal.should_receive(:monitor_transaction).with(
24
+ expect(Appsignal).to receive(:monitor_transaction).with(
25
25
  "perform_job.sidekiq",
26
26
  :class => "TestClass",
27
27
  :method => "perform",
@@ -56,7 +56,7 @@ describe Appsignal::Hooks::SidekiqPlugin do
56
56
  end
57
57
 
58
58
  it "should wrap in a transaction with the correct params" do
59
- Appsignal.should_receive(:monitor_transaction).with(
59
+ expect(Appsignal).to receive(:monitor_transaction).with(
60
60
  "perform_job.sidekiq",
61
61
  :class => "TestClass",
62
62
  :method => "perform",
@@ -83,7 +83,7 @@ describe Appsignal::Hooks::SidekiqPlugin do
83
83
  let(:error) { VerySpecificError.new }
84
84
 
85
85
  it "should add the exception to appsignal" do
86
- Appsignal::Transaction.any_instance.should_receive(:set_error).with(error)
86
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_error).with(error)
87
87
  end
88
88
 
89
89
  after do
@@ -107,26 +107,34 @@ describe Appsignal::Hooks::SidekiqPlugin do
107
107
  end
108
108
 
109
109
  it "should only add items to the hash that do not appear in JOB_KEYS" do
110
- plugin.formatted_metadata(item).should eq("foo" => "bar")
110
+ expect(plugin.formatted_metadata(item)).to eq("foo" => "bar")
111
111
  end
112
112
  end
113
113
  end
114
114
 
115
115
  describe Appsignal::Hooks::SidekiqHook do
116
116
  context "with sidekiq" do
117
- before :all do
117
+ before :context do
118
118
  module Sidekiq
119
119
  def self.configure_server
120
120
  end
121
121
  end
122
122
  Appsignal::Hooks::SidekiqHook.new.install
123
123
  end
124
- after(:all) { Object.send(:remove_const, :Sidekiq) }
124
+ after(:context) { Object.send(:remove_const, :Sidekiq) }
125
125
 
126
- its(:dependencies_present?) { should be_true }
126
+ describe "#dependencies_present?" do
127
+ subject { described_class.new.dependencies_present? }
128
+
129
+ it { is_expected.to be_truthy }
130
+ end
127
131
  end
128
132
 
129
133
  context "without sidekiq" do
130
- its(:dependencies_present?) { should be_false }
134
+ describe "#dependencies_present?" do
135
+ subject { described_class.new.dependencies_present? }
136
+
137
+ it { is_expected.to be_falsy }
138
+ end
131
139
  end
132
140
  end
@@ -1,6 +1,6 @@
1
1
  describe Appsignal::Hooks::UnicornHook do
2
2
  context "with unicorn" do
3
- before :all do
3
+ before :context do
4
4
  module Unicorn
5
5
  class HttpServer
6
6
  def worker_loop(worker)
@@ -14,16 +14,20 @@ describe Appsignal::Hooks::UnicornHook do
14
14
  end
15
15
  Appsignal::Hooks::UnicornHook.new.install
16
16
  end
17
- after(:all) { Object.send(:remove_const, :Unicorn) }
17
+ after(:context) { Object.send(:remove_const, :Unicorn) }
18
18
 
19
- its(:dependencies_present?) { should be_true }
19
+ describe "#dependencies_present?" do
20
+ subject { described_class.new.dependencies_present? }
21
+
22
+ it { is_expected.to be_truthy }
23
+ end
20
24
 
21
25
  it "adds behavior to Unicorn::HttpServer#worker_loop" do
22
26
  server = Unicorn::HttpServer.new
23
27
  worker = double
24
28
 
25
- Appsignal.should_receive(:forked)
26
- server.should_receive(:worker_loop_without_appsignal).with(worker)
29
+ expect(Appsignal).to receive(:forked)
30
+ expect(server).to receive(:worker_loop_without_appsignal).with(worker)
27
31
 
28
32
  server.worker_loop(worker)
29
33
  end
@@ -31,14 +35,18 @@ describe Appsignal::Hooks::UnicornHook do
31
35
  it "adds behavior to Unicorn::Worker#close" do
32
36
  worker = Unicorn::Worker.new
33
37
 
34
- Appsignal.should_receive(:stop)
35
- worker.should_receive(:close_without_appsignal)
38
+ expect(Appsignal).to receive(:stop)
39
+ expect(worker).to receive(:close_without_appsignal)
36
40
 
37
41
  worker.close
38
42
  end
39
43
  end
40
44
 
41
45
  context "without unicorn" do
42
- its(:dependencies_present?) { should be_false }
46
+ describe "#dependencies_present?" do
47
+ subject { described_class.new.dependencies_present? }
48
+
49
+ it { is_expected.to be_falsy }
50
+ end
43
51
  end
44
52
  end
@@ -2,9 +2,13 @@ describe Appsignal::Hooks::WebmachineHook do
2
2
  if DependencyHelper.webmachine_present?
3
3
  context "with webmachine" do
4
4
  let(:fsm) { Webmachine::Decision::FSM.new(double(:trace? => false), double, double) }
5
- before(:all) { start_agent }
5
+ before(:context) { start_agent }
6
6
 
7
- its(:dependencies_present?) { should be_true }
7
+ describe "#dependencies_present?" do
8
+ subject { described_class.new.dependencies_present? }
9
+
10
+ it { is_expected.to be_truthy }
11
+ end
8
12
 
9
13
  it "should include the run alias methods" do
10
14
  expect(fsm).to respond_to(:run_with_appsignal)
@@ -14,12 +18,18 @@ describe Appsignal::Hooks::WebmachineHook do
14
18
  it "should include the handle_exceptions alias methods" do
15
19
  expect(
16
20
  fsm.respond_to?(:handle_exceptions_with_appsignal, true)
17
- ).to be_true
21
+ ).to be_truthy
18
22
 
19
23
  expect(
20
24
  fsm.respond_to?(:handle_exceptions_without_appsignal, true)
21
- ).to be_true
25
+ ).to be_truthy
22
26
  end
23
27
  end
28
+ else
29
+ describe "#dependencies_present?" do
30
+ subject { described_class.new.dependencies_present? }
31
+
32
+ it { is_expected.to be_falsy }
33
+ end
24
34
  end
25
35
  end
@@ -35,43 +35,43 @@ describe Appsignal::Hooks do
35
35
  it "should register and install a hook once" do
36
36
  Appsignal::Hooks::Hook.register(:mock_present_hook, MockPresentHook)
37
37
 
38
- Appsignal::Hooks.hooks[:mock_present_hook].should be_instance_of(MockPresentHook)
39
- Appsignal::Hooks.hooks[:mock_present_hook].installed?.should be_false
38
+ expect(Appsignal::Hooks.hooks[:mock_present_hook]).to be_instance_of(MockPresentHook)
39
+ expect(Appsignal::Hooks.hooks[:mock_present_hook].installed?).to be_falsy
40
40
 
41
- MockPresentHook.should_receive(:call_something).once
41
+ expect(MockPresentHook).to receive(:call_something).once
42
42
 
43
43
  Appsignal::Hooks.load_hooks
44
44
  Appsignal::Hooks.load_hooks
45
45
  Appsignal::Hooks.load_hooks
46
- Appsignal::Hooks.hooks[:mock_present_hook].installed?.should be_true
46
+ expect(Appsignal::Hooks.hooks[:mock_present_hook].installed?).to be_truthy
47
47
  Appsignal::Hooks.hooks.delete(:mock_present_hook)
48
48
  end
49
49
 
50
50
  it "should not install if depencies are not present" do
51
51
  Appsignal::Hooks::Hook.register(:mock_not_present_hook, MockNotPresentHook)
52
52
 
53
- Appsignal::Hooks.hooks[:mock_not_present_hook].should be_instance_of(MockNotPresentHook)
54
- Appsignal::Hooks.hooks[:mock_not_present_hook].installed?.should be_false
53
+ expect(Appsignal::Hooks.hooks[:mock_not_present_hook]).to be_instance_of(MockNotPresentHook)
54
+ expect(Appsignal::Hooks.hooks[:mock_not_present_hook].installed?).to be_falsy
55
55
 
56
- MockPresentHook.should_not_receive(:call_something)
56
+ expect(MockPresentHook).to_not receive(:call_something)
57
57
 
58
58
  Appsignal::Hooks.load_hooks
59
59
 
60
- Appsignal::Hooks.hooks[:mock_not_present_hook].installed?.should be_false
60
+ expect(Appsignal::Hooks.hooks[:mock_not_present_hook].installed?).to be_falsy
61
61
  Appsignal::Hooks.hooks.delete(:mock_not_present_hook)
62
62
  end
63
63
 
64
64
  it "should not install if there is an error while installing" do
65
65
  Appsignal::Hooks::Hook.register(:mock_error_hook, MockErrorHook)
66
66
 
67
- Appsignal::Hooks.hooks[:mock_error_hook].should be_instance_of(MockErrorHook)
68
- Appsignal::Hooks.hooks[:mock_error_hook].installed?.should be_false
67
+ expect(Appsignal::Hooks.hooks[:mock_error_hook]).to be_instance_of(MockErrorHook)
68
+ expect(Appsignal::Hooks.hooks[:mock_error_hook].installed?).to be_falsy
69
69
 
70
- Appsignal.logger.should_receive(:error).with("Error while installing mock_error_hook hook: error").once
70
+ expect(Appsignal.logger).to receive(:error).with("Error while installing mock_error_hook hook: error").once
71
71
 
72
72
  Appsignal::Hooks.load_hooks
73
73
 
74
- Appsignal::Hooks.hooks[:mock_error_hook].installed?.should be_false
74
+ expect(Appsignal::Hooks.hooks[:mock_error_hook].installed?).to be_falsy
75
75
  Appsignal::Hooks.hooks.delete(:mock_error_hook)
76
76
  end
77
77
  end
@@ -88,20 +88,20 @@ describe Appsignal::Hooks::Helpers do
88
88
  end
89
89
 
90
90
  it "should truncate the text to 200 chars max" do
91
- with_helpers.truncate(very_long_text).should eq "#{"a" * 197}..."
91
+ expect(with_helpers.truncate(very_long_text)).to eq "#{"a" * 197}..."
92
92
  end
93
93
  end
94
94
 
95
95
  describe "#string_or_inspect" do
96
96
  context "when string" do
97
97
  it "should return the string" do
98
- with_helpers.string_or_inspect("foo").should eq "foo"
98
+ expect(with_helpers.string_or_inspect("foo")).to eq "foo"
99
99
  end
100
100
  end
101
101
 
102
102
  context "when integer" do
103
103
  it "should return the string" do
104
- with_helpers.string_or_inspect(1).should eq "1"
104
+ expect(with_helpers.string_or_inspect(1)).to eq "1"
105
105
  end
106
106
  end
107
107
 
@@ -109,7 +109,7 @@ describe Appsignal::Hooks::Helpers do
109
109
  let(:object) { Object.new }
110
110
 
111
111
  it "should return the string" do
112
- with_helpers.string_or_inspect(object).should eq object.inspect
112
+ expect(with_helpers.string_or_inspect(object)).to eq object.inspect
113
113
  end
114
114
  end
115
115
  end
@@ -121,24 +121,24 @@ describe Appsignal::Hooks::Helpers do
121
121
  context "when the key exists" do
122
122
  subject { with_helpers.extract_value(hash, :key) }
123
123
 
124
- it { should eq "value" }
124
+ it { is_expected.to eq "value" }
125
125
  end
126
126
 
127
127
  context "when the key does not exist" do
128
128
  subject { with_helpers.extract_value(hash, :nonexistent_key) }
129
129
 
130
- it { should be_nil }
130
+ it { is_expected.to be_nil }
131
131
 
132
132
  context "with a default value" do
133
133
  subject { with_helpers.extract_value(hash, :nonexistent_key, 1) }
134
134
 
135
- it { should eq 1 }
135
+ it { is_expected.to eq 1 }
136
136
  end
137
137
  end
138
138
  end
139
139
 
140
140
  context "for a struct" do
141
- before :all do
141
+ before :context do
142
142
  TestStruct = Struct.new(:key)
143
143
  end
144
144
  let(:struct) { TestStruct.new("value") }
@@ -146,18 +146,18 @@ describe Appsignal::Hooks::Helpers do
146
146
  context "when the key exists" do
147
147
  subject { with_helpers.extract_value(struct, :key) }
148
148
 
149
- it { should eq "value" }
149
+ it { is_expected.to eq "value" }
150
150
  end
151
151
 
152
152
  context "when the key does not exist" do
153
153
  subject { with_helpers.extract_value(struct, :nonexistent_key) }
154
154
 
155
- it { should be_nil }
155
+ it { is_expected.to be_nil }
156
156
 
157
157
  context "with a default value" do
158
158
  subject { with_helpers.extract_value(struct, :nonexistent_key, 1) }
159
159
 
160
- it { should eq 1 }
160
+ it { is_expected.to eq 1 }
161
161
  end
162
162
  end
163
163
  end
@@ -168,18 +168,18 @@ describe Appsignal::Hooks::Helpers do
168
168
  context "when the method exists" do
169
169
  subject { with_helpers.extract_value(object, :existing_method) }
170
170
 
171
- it { should eq "value" }
171
+ it { is_expected.to eq "value" }
172
172
  end
173
173
 
174
174
  context "when the method does not exist" do
175
175
  subject { with_helpers.extract_value(object, :nonexistent_method) }
176
176
 
177
- it { should be_nil }
177
+ it { is_expected.to be_nil }
178
178
 
179
179
  context "and there is a default value" do
180
180
  subject { with_helpers.extract_value(object, :nonexistent_method, 1) }
181
181
 
182
- it { should eq 1 }
182
+ it { is_expected.to eq 1 }
183
183
  end
184
184
  end
185
185
  end
@@ -189,7 +189,7 @@ describe Appsignal::Hooks::Helpers do
189
189
 
190
190
  subject { with_helpers.extract_value(object, :existing_method, nil, true) }
191
191
 
192
- it { should eq "1" }
192
+ it { is_expected.to eq "1" }
193
193
  end
194
194
  end
195
195
 
@@ -205,7 +205,7 @@ describe Appsignal::Hooks::Helpers do
205
205
  end
206
206
 
207
207
  it "should format the arguments" do
208
- with_helpers.format_args(args).should eq([
208
+ expect(with_helpers.format_args(args)).to eq([
209
209
  "Model",
210
210
  "1",
211
211
  object.inspect,
@@ -25,7 +25,7 @@ describe Appsignal::Hooks::DataMapperLogListener do
25
25
  end
26
26
  end
27
27
 
28
- before { Appsignal::Transaction.stub(:current) { transaction } }
28
+ before { allow(Appsignal::Transaction).to receive(:current) { transaction } }
29
29
 
30
30
  it "should record the log entry in an event" do
31
31
  expect(transaction).to receive(:record_event).with(
@@ -27,7 +27,7 @@ if DependencyHelper.grape_present?
27
27
 
28
28
  describe "#call" do
29
29
  context "when AppSignal is not active" do
30
- before(:all) do
30
+ before(:context) do
31
31
  Appsignal.config = nil
32
32
  Appsignal::Hooks.load_hooks
33
33
  end
@@ -45,9 +45,9 @@ if DependencyHelper.grape_present?
45
45
 
46
46
  context "when AppSignal is active" do
47
47
  let(:transaction) { http_request_transaction }
48
- before :all do
48
+ before :context do
49
49
  Appsignal.config = project_fixture_config
50
- expect(Appsignal.active?).to be_true
50
+ expect(Appsignal.active?).to be_truthy
51
51
  end
52
52
  before do
53
53
  expect(Appsignal::Transaction).to receive(:create).with(
@@ -17,8 +17,8 @@ describe Appsignal::Hooks::MongoMonitorSubscriber do
17
17
  end
18
18
 
19
19
  it "should sanitize command" do
20
- Appsignal::EventFormatter::MongoRubyDriver::QueryFormatter
21
- .should receive(:format).with("find", "foo" => "bar")
20
+ expect(Appsignal::EventFormatter::MongoRubyDriver::QueryFormatter)
21
+ .to receive(:format).with("find", "foo" => "bar")
22
22
 
23
23
  subscriber.started(event)
24
24
  end
@@ -26,11 +26,11 @@ describe Appsignal::Hooks::MongoMonitorSubscriber do
26
26
  it "should store command on the transaction" do
27
27
  subscriber.started(event)
28
28
 
29
- transaction.store("mongo_driver").should eq(1 => { "foo" => "?" })
29
+ expect(transaction.store("mongo_driver")).to eq(1 => { "foo" => "?" })
30
30
  end
31
31
 
32
32
  it "should start an event in the extension" do
33
- transaction.should receive(:start_event)
33
+ expect(transaction).to receive(:start_event)
34
34
 
35
35
  subscriber.started(event)
36
36
  end
@@ -40,7 +40,7 @@ describe Appsignal::Hooks::MongoMonitorSubscriber do
40
40
  let(:event) { double }
41
41
 
42
42
  it "should finish the event" do
43
- subscriber.should receive(:finish).with("SUCCEEDED", event)
43
+ expect(subscriber).to receive(:finish).with("SUCCEEDED", event)
44
44
 
45
45
  subscriber.succeeded(event)
46
46
  end
@@ -50,7 +50,7 @@ describe Appsignal::Hooks::MongoMonitorSubscriber do
50
50
  let(:event) { double }
51
51
 
52
52
  it "should finish the event" do
53
- subscriber.should receive(:finish).with("FAILED", event)
53
+ expect(subscriber).to receive(:finish).with("FAILED", event)
54
54
 
55
55
  subscriber.failed(event)
56
56
  end
@@ -72,13 +72,13 @@ describe Appsignal::Hooks::MongoMonitorSubscriber do
72
72
  end
73
73
 
74
74
  it "should get the query from the store" do
75
- transaction.should receive(:store).with("mongo_driver").and_return(command)
75
+ expect(transaction).to receive(:store).with("mongo_driver").and_return(command)
76
76
 
77
77
  subscriber.finish("SUCCEEDED", event)
78
78
  end
79
79
 
80
80
  it "should finish the transaction in the extension" do
81
- transaction.should receive(:finish_event).with(
81
+ expect(transaction).to receive(:finish_event).with(
82
82
  "query.mongodb",
83
83
  "find | test | SUCCEEDED",
84
84
  Appsignal::Utils.data_generate("foo" => "?"),
@@ -92,19 +92,17 @@ describe Appsignal::Hooks::MongoMonitorSubscriber do
92
92
 
93
93
  context "without transaction" do
94
94
  before do
95
- Appsignal::Transaction.stub(
96
- :current => Appsignal::Transaction::NilTransaction.new
97
- )
95
+ allow(Appsignal::Transaction).to receive(:current).and_return(Appsignal::Transaction::NilTransaction.new)
98
96
  end
99
97
 
100
98
  it "should not attempt to start an event" do
101
- Appsignal::Extension.should_not receive(:start_event)
99
+ expect(Appsignal::Extension).to_not receive(:start_event)
102
100
 
103
101
  subscriber.started(double)
104
102
  end
105
103
 
106
104
  it "should not attempt to finish an event" do
107
- Appsignal::Extension.should_not receive(:finish_event)
105
+ expect(Appsignal::Extension).to_not receive(:finish_event)
108
106
 
109
107
  subscriber.finish("SUCCEEDED", double)
110
108
  end
@@ -112,16 +110,16 @@ describe Appsignal::Hooks::MongoMonitorSubscriber do
112
110
 
113
111
  context "when appsignal is paused" do
114
112
  let(:transaction) { double(:paused? => true, :nil_transaction? => false) }
115
- before { Appsignal::Transaction.stub(:current => transaction) }
113
+ before { allow(Appsignal::Transaction).to receive(:current).and_return(transaction) }
116
114
 
117
115
  it "should not attempt to start an event" do
118
- Appsignal::Extension.should_not receive(:start_event)
116
+ expect(Appsignal::Extension).to_not receive(:start_event)
119
117
 
120
118
  subscriber.started(double)
121
119
  end
122
120
 
123
121
  it "should not attempt to finish an event" do
124
- Appsignal::Extension.should_not receive(:finish_event)
122
+ expect(Appsignal::Extension).to_not receive(:finish_event)
125
123
 
126
124
  subscriber.finish("SUCCEEDED", double)
127
125
  end