Module: TrackRelay::Testing
- Defined in:
- lib/track_relay/testing.rb,
lib/track_relay/testing/helpers.rb,
lib/track_relay/testing/minitest_assertions.rb
Overview
Opt-in testing entry point for TrackRelay.
lib/track_relay.rb does NOT require this file — consumers add
require "track_relay/testing" themselves in their test_helper.rb
/ rails_helper.rb. This keeps the auto setup/teardown helpers and
the RSpec matcher hooks out of production runtime. The gem's own
test/test_helper.rb performs that require explicitly because the
gem's tests are themselves consumers of the testing surface.
test_mode! swaps the configured subscriber list for a single
Subscribers::Test for the duration of an example so
consumer tests can assert against fired events without sending them
to real adapters. test_mode_off! restores the previously captured
list.
test_mode! is idempotent: calling twice without restoring returns
the same Test instance and does NOT clobber the originally-captured
subscriber list. After test_mode_off!, calling test_mode! again
creates a fresh Test subscriber so per-test buffers stay isolated.
Defined Under Namespace
Modules: Helpers, MinitestAssertions
Class Method Summary collapse
-
.active? ⇒ Boolean
Whether Testing.test_mode! is currently active.
-
.test_mode! ⇒ Subscribers::Test
Replace
TrackRelay.config.subscriberswith a single Subscribers::Test and snapshot the previous list. -
.test_mode_off! ⇒ void
Restore the subscriber list captured by Testing.test_mode!.
-
.test_subscriber ⇒ Subscribers::Test?
The active test subscriber, or nil.
Class Method Details
.active? ⇒ Boolean
Returns whether test_mode! is currently active.
52 53 54 |
# File 'lib/track_relay/testing.rb', line 52 def active? !@test_subscriber.nil? end |
.test_mode! ⇒ Subscribers::Test
Replace TrackRelay.config.subscribers with a single
Subscribers::Test and snapshot the previous list. Idempotent.
33 34 35 36 37 38 |
# File 'lib/track_relay/testing.rb', line 33 def test_mode! return @test_subscriber if active? test_subscriber = Subscribers::Test.new @previous_subscribers = TrackRelay.config.replace_subscribers([test_subscriber]) @test_subscriber = test_subscriber end |
.test_mode_off! ⇒ void
This method returns an undefined value.
Restore the subscriber list captured by test_mode!. No-op when not active.
44 45 46 47 48 49 |
# File 'lib/track_relay/testing.rb', line 44 def test_mode_off! return unless active? TrackRelay.config.replace_subscribers(@previous_subscribers) @previous_subscribers = nil @test_subscriber = nil end |
.test_subscriber ⇒ Subscribers::Test?
Returns the active test subscriber, or nil.
57 58 59 |
# File 'lib/track_relay/testing.rb', line 57 def test_subscriber @test_subscriber end |