Module: TrackRelay::Testing::Helpers

Defined in:
lib/track_relay/testing/helpers.rb

Overview

Minitest mix-in that combines MinitestAssertions with auto setup/teardown for TrackRelay.test_mode!.

Including this module into ‘ActiveSupport::TestCase` / `Minitest::Test`:

1. mixes in `assert_tracked` / `refute_tracked` /
   `track_relay_test`;
2. registers `setup` / `teardown` blocks that auto-enable
   `TrackRelay.test_mode!` per test, so each example gets a fresh
   Test subscriber.

class MyTest < ActiveSupport::TestCase
  include TrackRelay::Testing::Helpers

  test "fires :foo" do
    MyService.run!
    assert_tracked :foo, user_id: 1
  end
end

The ‘setup` / `teardown` blocks only register when the including class supports them (i.e. when included into a Minitest test class). Including the module elsewhere is a no-op for the hooks; `MinitestAssertions` is still mixed in so consumers can wire `test_mode!` themselves.

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/track_relay/testing/helpers.rb', line 34

def self.included(base)
  base.include(MinitestAssertions)

  if base.respond_to?(:setup) && base.respond_to?(:teardown)
    base.setup { TrackRelay.test_mode! }
    base.teardown { TrackRelay.test_mode_off! }
  end
end