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
@@ -11,7 +11,7 @@ describe Appsignal::Demo do
11
11
 
12
12
  context "without config" do
13
13
  it "returns false" do
14
- expect(silence { subject }).to be_false
14
+ expect(silence { subject }).to be_falsy
15
15
  end
16
16
  end
17
17
 
@@ -20,7 +20,7 @@ describe Appsignal::Demo do
20
20
  before { Appsignal.config = config }
21
21
 
22
22
  it "returns true" do
23
- expect(subject).to be_true
23
+ expect(subject).to be_truthy
24
24
  end
25
25
 
26
26
  it "creates demonstration samples" do
@@ -50,6 +50,7 @@ describe Appsignal::Demo do
50
50
  expect(error_transaction).to receive(:set_metadata).with("path", "/hello")
51
51
  expect(error_transaction).to receive(:set_metadata).with("method", "GET")
52
52
  expect(error_transaction).to receive(:set_metadata).with("demo_sample", "true")
53
+ expect(error_transaction).to receive(:complete)
53
54
  subject
54
55
  end
55
56
  end
@@ -79,6 +80,7 @@ describe Appsignal::Demo do
79
80
  expect(performance_transaction).to receive(:set_metadata).with("path", "/hello")
80
81
  expect(performance_transaction).to receive(:set_metadata).with("method", "GET")
81
82
  expect(performance_transaction).to receive(:set_metadata).with("demo_sample", "true")
83
+ expect(performance_transaction).to receive(:complete)
82
84
  subject
83
85
  end
84
86
  end
@@ -2,17 +2,21 @@ if DependencyHelper.rails_present?
2
2
  require "action_view"
3
3
 
4
4
  describe Appsignal::EventFormatter::ActionView::RenderFormatter do
5
- before { Rails.root.stub(:to_s => "/var/www/app/20130101") }
5
+ before { allow(Rails.root).to receive(:to_s).and_return("/var/www/app/20130101") }
6
6
  let(:klass) { Appsignal::EventFormatter::ActionView::RenderFormatter }
7
7
  let(:formatter) { klass.new }
8
8
 
9
9
  it "should register render_partial.action_view and render_template.action_view" do
10
- Appsignal::EventFormatter.registered?("render_partial.action_view", klass).should be_true
11
- Appsignal::EventFormatter.registered?("render_template.action_view", klass).should be_true
10
+ expect(Appsignal::EventFormatter.registered?("render_partial.action_view", klass)).to be_truthy
11
+ expect(Appsignal::EventFormatter.registered?("render_template.action_view", klass)).to be_truthy
12
12
  end
13
13
 
14
14
  describe "#root_path" do
15
- its(:root_path) { should eq "/var/www/app/20130101/" }
15
+ subject { formatter.root_path }
16
+
17
+ it "returns Rails root path" do
18
+ is_expected.to eq "/var/www/app/20130101/"
19
+ end
16
20
  end
17
21
 
18
22
  describe "#format" do
@@ -21,19 +25,19 @@ if DependencyHelper.rails_present?
21
25
  context "with an identifier" do
22
26
  let(:payload) { { :identifier => "/var/www/app/20130101/app/views/home/index/html.erb" } }
23
27
 
24
- it { should eq ["app/views/home/index/html.erb", nil] }
28
+ it { is_expected.to eq ["app/views/home/index/html.erb", nil] }
25
29
  end
26
30
 
27
31
  context "with a frozen identifier" do
28
32
  let(:payload) { { :identifier => "/var/www/app/20130101/app/views/home/index/html.erb".freeze } }
29
33
 
30
- it { should eq ["app/views/home/index/html.erb", nil] }
34
+ it { is_expected.to eq ["app/views/home/index/html.erb", nil] }
31
35
  end
32
36
 
33
37
  context "without an identifier" do
34
38
  let(:payload) { {} }
35
39
 
36
- it { should be_nil }
40
+ it { is_expected.to be_nil }
37
41
  end
38
42
  end
39
43
  end
@@ -3,7 +3,7 @@ describe Appsignal::EventFormatter::ActiveRecord::InstantiationFormatter do
3
3
  let(:formatter) { klass.new }
4
4
 
5
5
  it "should register instantiation.active_record" do
6
- Appsignal::EventFormatter.registered?("instantiation.active_record", klass).should be_true
6
+ expect(Appsignal::EventFormatter.registered?("instantiation.active_record", klass)).to be_truthy
7
7
  end
8
8
 
9
9
  describe "#format" do
@@ -16,6 +16,6 @@ describe Appsignal::EventFormatter::ActiveRecord::InstantiationFormatter do
16
16
 
17
17
  subject { formatter.format(payload) }
18
18
 
19
- it { should eq ["User", nil] }
19
+ it { is_expected.to eq ["User", nil] }
20
20
  end
21
21
  end
@@ -3,7 +3,7 @@ describe Appsignal::EventFormatter::ActiveRecord::InstantiationFormatter do
3
3
  let(:formatter) { klass.new }
4
4
 
5
5
  it "should register sql.active_record" do
6
- Appsignal::EventFormatter.registered?("sql.active_record", klass).should be_true
6
+ expect(Appsignal::EventFormatter.registered?("sql.active_record", klass)).to be_truthy
7
7
  end
8
8
 
9
9
  describe "#format" do
@@ -16,6 +16,6 @@ describe Appsignal::EventFormatter::ActiveRecord::InstantiationFormatter do
16
16
 
17
17
  subject { formatter.format(payload) }
18
18
 
19
- it { should eq ["User load", "SELECT * FROM users", 1] }
19
+ it { is_expected.to eq ["User load", "SELECT * FROM users", 1] }
20
20
  end
21
21
  end
@@ -5,7 +5,7 @@ describe Appsignal::EventFormatter::ElasticSearch::SearchFormatter do
5
5
  it "should register query.moped" do
6
6
  expect(
7
7
  Appsignal::EventFormatter.registered?("search.elasticsearch", klass)
8
- ).to be_true
8
+ ).to be_truthy
9
9
  end
10
10
 
11
11
  describe "#format" do
@@ -3,7 +3,7 @@ describe Appsignal::EventFormatter::Faraday::RequestFormatter do
3
3
  let(:formatter) { klass.new }
4
4
 
5
5
  it "should register request.faraday" do
6
- Appsignal::EventFormatter.registered?("request.faraday", klass).should be_true
6
+ expect(Appsignal::EventFormatter.registered?("request.faraday", klass)).to be_truthy
7
7
  end
8
8
 
9
9
  describe "#format" do
@@ -16,6 +16,6 @@ describe Appsignal::EventFormatter::Faraday::RequestFormatter do
16
16
 
17
17
  subject { formatter.format(payload) }
18
18
 
19
- it { should eq ["GET http://example.org", "GET http://example.org/hello/world"] }
19
+ it { is_expected.to eq ["GET http://example.org", "GET http://example.org/hello/world"] }
20
20
  end
21
21
  end
@@ -3,7 +3,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
3
3
  let(:formatter) { klass.new }
4
4
 
5
5
  it "should register query.moped" do
6
- Appsignal::EventFormatter.registered?("query.moped", klass).should be_true
6
+ expect(Appsignal::EventFormatter.registered?("query.moped", klass)).to be_truthy
7
7
  end
8
8
 
9
9
  describe "#format" do
@@ -13,7 +13,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
13
13
  context "without ops in the payload" do
14
14
  let(:payload) { {} }
15
15
 
16
- it { should be_nil }
16
+ it { is_expected.to be_nil }
17
17
  end
18
18
 
19
19
  context "Moped::Protocol::Command" do
@@ -25,7 +25,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
25
25
  )
26
26
  end
27
27
 
28
- it { should eq ["Command", '{:database=>"database.collection", :selector=>{"query"=>"?"}}'] }
28
+ it { is_expected.to eq ["Command", '{:database=>"database.collection", :selector=>{"query"=>"?"}}'] }
29
29
  end
30
30
 
31
31
  context "Moped::Protocol::Query" do
@@ -41,7 +41,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
41
41
  )
42
42
  end
43
43
 
44
- it { should eq ["Query", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :flags=>[], :limit=>0, :skip=>0, :fields=>nil}'] }
44
+ it { is_expected.to eq ["Query", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :flags=>[], :limit=>0, :skip=>0, :fields=>nil}'] }
45
45
  end
46
46
 
47
47
  context "Moped::Protocol::Delete" do
@@ -54,7 +54,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
54
54
  )
55
55
  end
56
56
 
57
- it { should eq ["Delete", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :flags=>[]}'] }
57
+ it { is_expected.to eq ["Delete", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :flags=>[]}'] }
58
58
  end
59
59
 
60
60
  context "Moped::Protocol::Insert" do
@@ -70,7 +70,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
70
70
  )
71
71
  end
72
72
 
73
- it { should eq ["Insert", '{:database=>"database.collection", :documents=>{"_id"=>"?", "events"=>"?"}, :count=>2, :flags=>[]}'] }
73
+ it { is_expected.to eq ["Insert", '{:database=>"database.collection", :documents=>{"_id"=>"?", "events"=>"?"}, :count=>2, :flags=>[]}'] }
74
74
  end
75
75
 
76
76
  context "Moped::Protocol::Update" do
@@ -84,7 +84,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
84
84
  )
85
85
  end
86
86
 
87
- it { should eq ["Update", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :update=>{"user.?"=>"?"}, :flags=>[]}'] }
87
+ it { is_expected.to eq ["Update", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :update=>{"user.?"=>"?"}, :flags=>[]}'] }
88
88
  end
89
89
 
90
90
  context "Moped::Protocol::KillCursors" do
@@ -95,7 +95,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
95
95
  )
96
96
  end
97
97
 
98
- it { should eq ["KillCursors", "{:number_of_cursor_ids=>2}"] }
98
+ it { is_expected.to eq ["KillCursors", "{:number_of_cursor_ids=>2}"] }
99
99
  end
100
100
 
101
101
  context "Moped::Protocol::Other" do
@@ -106,7 +106,7 @@ describe Appsignal::EventFormatter::Moped::QueryFormatter do
106
106
  )
107
107
  end
108
108
 
109
- it { should eq ["Other", '{:database=>"database.collection"}'] }
109
+ it { is_expected.to eq ["Other", '{:database=>"database.collection"}'] }
110
110
  end
111
111
  end
112
112
  end
@@ -39,18 +39,18 @@ describe Appsignal::EventFormatter do
39
39
 
40
40
  context "registering and unregistering formatters" do
41
41
  it "should register a formatter" do
42
- klass.formatters["mock"].should be_instance_of(MockFormatter)
42
+ expect(klass.formatters["mock"]).to be_instance_of(MockFormatter)
43
43
  end
44
44
 
45
45
  it "should know wether a formatter is registered" do
46
- klass.registered?("mock").should be_true
47
- klass.registered?("mock", MockFormatter).should be_true
48
- klass.registered?("mock", Hash).should be_false
49
- klass.registered?("nonsense").should be_false
46
+ expect(klass.registered?("mock")).to be_truthy
47
+ expect(klass.registered?("mock", MockFormatter)).to be_truthy
48
+ expect(klass.registered?("mock", Hash)).to be_falsy
49
+ expect(klass.registered?("nonsense")).to be_falsy
50
50
  end
51
51
 
52
52
  it "doesn't register formatters that raise a name error in the initializer" do
53
- klass.registered?("mock.dependent").should be_false
53
+ expect(klass.registered?("mock.dependent")).to be_falsy
54
54
  end
55
55
 
56
56
  it "doesn't register formatters that don't have a format(payload) method" do
@@ -59,42 +59,42 @@ describe Appsignal::EventFormatter do
59
59
 
60
60
  Appsignal::EventFormatter.initialize_formatters
61
61
 
62
- klass.registered?("mock.missing_format").should be_false
63
- klass.registered?("mock.incorrect_format").should be_false
62
+ expect(klass.registered?("mock.missing_format")).to be_falsy
63
+ expect(klass.registered?("mock.incorrect_format")).to be_falsy
64
64
  end
65
65
 
66
66
  it "should register a custom formatter" do
67
67
  klass.register("mock.specific", MockFormatter)
68
68
  Appsignal::EventFormatter.initialize_formatters
69
69
 
70
- klass.formatter_classes["mock.specific"].should eq MockFormatter
71
- klass.registered?("mock.specific").should be_true
72
- klass.formatters["mock.specific"].should be_instance_of(MockFormatter)
73
- klass.formatters["mock.specific"].body.should eq "some value"
70
+ expect(klass.formatter_classes["mock.specific"]).to eq MockFormatter
71
+ expect(klass.registered?("mock.specific")).to be_truthy
72
+ expect(klass.formatters["mock.specific"]).to be_instance_of(MockFormatter)
73
+ expect(klass.formatters["mock.specific"].body).to eq "some value"
74
74
  end
75
75
 
76
76
  it "should not have a formatter that's not registered" do
77
- klass.formatters["nonsense"].should be_nil
77
+ expect(klass.formatters["nonsense"]).to be_nil
78
78
  end
79
79
 
80
80
  it "should unregister a formatter if the registered one has the same class" do
81
81
  klass.register("mock.unregister", MockFormatter)
82
82
 
83
83
  klass.unregister("mock.unregister", Hash)
84
- klass.registered?("mock.unregister").should be_true
84
+ expect(klass.registered?("mock.unregister")).to be_truthy
85
85
 
86
86
  klass.unregister("mock.unregister", MockFormatter)
87
- klass.registered?("mock.unregister").should be_false
87
+ expect(klass.registered?("mock.unregister")).to be_falsy
88
88
  end
89
89
  end
90
90
 
91
91
  context "calling formatters" do
92
92
  it "should return nil if there is no formatter registered" do
93
- klass.format("nonsense", {}).should be_nil
93
+ expect(klass.format("nonsense", {})).to be_nil
94
94
  end
95
95
 
96
96
  it "should call the formatter if it is registered and use a value set in the initializer" do
97
- klass.format("mock", {}).should eq ["title", "some value"]
97
+ expect(klass.format("mock", {})).to eq ["title", "some value"]
98
98
  end
99
99
  end
100
100
  end
@@ -4,21 +4,21 @@ describe "extension loading and operation" do
4
4
  describe ".agent_config" do
5
5
  subject { Appsignal::Extension.agent_config }
6
6
 
7
- it { should have_key("version") }
8
- it { should have_key("triples") }
7
+ it { is_expected.to have_key("version") }
8
+ it { is_expected.to have_key("triples") }
9
9
  end
10
10
 
11
11
  describe ".agent_version" do
12
12
  subject { Appsignal::Extension.agent_version }
13
13
 
14
- it { should_not be_nil }
14
+ it { is_expected.to_not be_nil }
15
15
  end
16
16
 
17
17
  context "when the extension library can be loaded" do
18
18
  subject { Appsignal::Extension }
19
19
 
20
20
  it "should indicate that the extension is loaded" do
21
- Appsignal.extension_loaded?.should be_true
21
+ expect(Appsignal.extension_loaded?).to be_truthy
22
22
  end
23
23
 
24
24
  it "should have a start and stop method" do
@@ -97,15 +97,15 @@ describe "extension loading and operation" do
97
97
  context "when the extension library cannot be loaded" do
98
98
  subject { Appsignal::Extension }
99
99
 
100
- before :all do
100
+ before :context do
101
101
  Appsignal.extension_loaded = false
102
102
  end
103
- after :all do
103
+ after :context do
104
104
  Appsignal.extension_loaded = true
105
105
  end
106
106
 
107
107
  it "should indicate that the extension is not loaded" do
108
- Appsignal.extension_loaded?.should be_false
108
+ expect(Appsignal.extension_loaded?).to be_falsy
109
109
  end
110
110
 
111
111
  it "should not raise errors when methods are called" do
@@ -1,6 +1,3 @@
1
- require "spec_helper"
2
- require_relative "../../support/mocks/fake_gc_profiler"
3
-
4
1
  describe Appsignal::GarbageCollectionProfiler do
5
2
  let(:internal_profiler) { FakeGCProfiler.new }
6
3
 
@@ -1,6 +1,6 @@
1
1
  describe Appsignal::Hooks::ActiveSupportNotificationsHook do
2
2
  if active_support_present?
3
- before :all do
3
+ before :context do
4
4
  start_agent
5
5
  end
6
6
  before do
@@ -10,7 +10,11 @@ describe Appsignal::Hooks::ActiveSupportNotificationsHook do
10
10
  let(:notifier) { ActiveSupport::Notifications::Fanout.new }
11
11
  let(:instrumenter) { ActiveSupport::Notifications::Instrumenter.new(notifier) }
12
12
 
13
- its(:dependencies_present?) { should be_true }
13
+ describe "#dependencies_present?" do
14
+ subject { described_class.new.dependencies_present? }
15
+
16
+ it { is_expected.to be_truthy }
17
+ end
14
18
 
15
19
  it "should instrument an AS notifications instrument call with a block" do
16
20
  expect(Appsignal::Transaction.current).to receive(:start_event)
@@ -37,6 +41,10 @@ describe Appsignal::Hooks::ActiveSupportNotificationsHook do
37
41
  expect(return_value).to eq "value"
38
42
  end
39
43
  else
40
- its(:dependencies_present?) { should be_false }
44
+ describe "#dependencies_present?" do
45
+ subject { described_class.new.dependencies_present? }
46
+
47
+ it { is_expected.to be_falsy }
48
+ end
41
49
  end
42
50
  end
@@ -1,17 +1,21 @@
1
1
  describe Appsignal::Hooks::CelluloidHook do
2
2
  context "with celluloid" do
3
- before :all do
3
+ before :context do
4
4
  module Celluloid
5
5
  def self.shutdown
6
6
  end
7
7
  end
8
8
  Appsignal::Hooks::CelluloidHook.new.install
9
9
  end
10
- after :all do
10
+ after :context do
11
11
  Object.send(:remove_const, :Celluloid)
12
12
  end
13
13
 
14
- its(:dependencies_present?) { should be_true }
14
+ describe "#dependencies_present?" do
15
+ subject { described_class.new.dependencies_present? }
16
+
17
+ it { is_expected.to be_truthy }
18
+ end
15
19
 
16
20
  specify { expect(Appsignal).to receive(:stop) }
17
21
  specify { expect(Celluloid).to receive(:shutdown_without_appsignal) }
@@ -22,6 +26,10 @@ describe Appsignal::Hooks::CelluloidHook do
22
26
  end
23
27
 
24
28
  context "without celluloid" do
25
- its(:dependencies_present?) { should be_false }
29
+ describe "#dependencies_present?" do
30
+ subject { described_class.new.dependencies_present? }
31
+
32
+ it { is_expected.to be_falsy }
33
+ end
26
34
  end
27
35
  end
@@ -1,6 +1,6 @@
1
1
  describe Appsignal::Hooks::DataMapperHook do
2
2
  context "with datamapper" do
3
- before :all do
3
+ before :context do
4
4
  module DataMapper
5
5
  end
6
6
  module DataObjects
@@ -10,12 +10,16 @@ describe Appsignal::Hooks::DataMapperHook do
10
10
  Appsignal::Hooks::DataMapperHook.new.install
11
11
  end
12
12
 
13
- after :all do
13
+ after :context do
14
14
  Object.send(:remove_const, :DataMapper)
15
15
  Object.send(:remove_const, :DataObjects)
16
16
  end
17
17
 
18
- its(:dependencies_present?) { should be_true }
18
+ describe "#dependencies_present?" do
19
+ subject { described_class.new.dependencies_present? }
20
+
21
+ it { is_expected.to be_truthy }
22
+ end
19
23
 
20
24
  it "should install the listener" do
21
25
  expect(::DataObjects::Connection).to receive(:include)
@@ -26,6 +30,10 @@ describe Appsignal::Hooks::DataMapperHook do
26
30
  end
27
31
 
28
32
  context "without datamapper" do
29
- its(:dependencies_present?) { should be_false }
33
+ describe "#dependencies_present?" do
34
+ subject { described_class.new.dependencies_present? }
35
+
36
+ it { is_expected.to be_falsy }
37
+ end
30
38
  end
31
39
  end