File tree Expand file tree Collapse file tree 2 files changed +77
-0
lines changed
Expand file tree Collapse file tree 2 files changed +77
-0
lines changed Original file line number Diff line number Diff line change 1+ describe Appsignal ::Hooks ::ActiveSupportEventReporterHook do
2+ begin
3+ require "active_support/event_reporter"
4+ rescue LoadError
5+ end
6+
7+ describe "#dependencies_present?" do
8+ subject { described_class . new . dependencies_present? }
9+
10+ if defined? ( ::ActiveSupport ::EventReporter )
11+ context "when ActiveSupport::EventReporter is present" do
12+ it { is_expected . to be_truthy }
13+ end
14+ else
15+ context "when ActiveSupport::EventReporter is not present" do
16+ it { is_expected . to be_falsy }
17+ end
18+ end
19+ end
20+
21+ if defined? ( ::ActiveSupport ::EventReporter )
22+ describe "#install" do
23+ before do
24+ # Mock Rails.event
25+ stub_const ( "MockEventReporter" , Class . new do
26+ attr_reader :subscribers
27+
28+ def initialize
29+ @subscribers = [ ]
30+ end
31+
32+ def subscribe ( subscriber )
33+ @subscribers << subscriber
34+ end
35+ end )
36+
37+ mock_event_reporter = MockEventReporter . new
38+
39+ allow ( Rails ) . to receive ( :event ) . and_return ( mock_event_reporter )
40+ end
41+
42+ it "subscribes the ActiveSupportEventReporter::Subscriber to Rails.event" do
43+ event_reporter = Rails . event
44+ expect ( event_reporter . subscribers ) . to be_empty
45+
46+ described_class . new . install
47+
48+ expect ( event_reporter . subscribers . length ) . to eq ( 1 )
49+ expect ( event_reporter . subscribers . first ) . to be_a ( Appsignal ::Integrations ::ActiveSupportEventReporter ::Subscriber )
50+ end
51+ end
52+ end
53+ end
Original file line number Diff line number Diff line change 1+ require "appsignal/integrations/active_support_event_reporter"
2+
3+ describe Appsignal ::Integrations ::ActiveSupportEventReporter ::Subscriber do
4+ let ( :subscriber ) { described_class . new }
5+ let ( :logger ) { instance_double ( Appsignal ::Logger ) }
6+
7+ before do
8+ start_agent
9+ allow ( Appsignal ::Logger ) . to receive ( :new ) . with ( "rails_events" ) . and_return ( logger )
10+ end
11+
12+ describe "#emit" do
13+ it "logs the event name and payload" do
14+ event = {
15+ :name => "user.created" ,
16+ :payload => { :id => 123 , :email => "[email protected] " } , 17+ }
18+
19+ expect ( logger ) . to receive ( :info ) . with ( "user.created" , { :id => 123 , :email => "[email protected] " } ) 20+
21+ subscriber . emit ( event )
22+ end
23+ end
24+ end
You can’t perform that action at this time.
0 commit comments