Module: Pgbus::Testing
- Defined in:
- lib/pgbus/testing.rb,
lib/pgbus/testing/minitest.rb,
lib/pgbus/testing/assertions.rb
Overview
Test helpers for Pgbus EventBus. Opt-in via explicit require — never autoloaded by Zeitwerk so this code never leaks into production.
require "pgbus/testing" require "pgbus/testing/rspec" require "pgbus/testing/minitest"
Three modes:
:fake — capture published events in an in-memory store (default for tests)
:inline — capture AND immediately dispatch to matching handlers
:disabled — pass through to the real publisher (production behavior)
Defined Under Namespace
Modules: Assertions, MinitestHelpers
Classes: EventStore
Constant Summary
collapse
- MODES =
%i[fake inline disabled].freeze
- MODE_KEY =
:__pgbus_test_mode
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.store ⇒ Object
Returns the value of attribute store.
101
102
103
|
# File 'lib/pgbus/testing.rb', line 101
def store
@store
end
|
Class Method Details
.disabled! ⇒ Object
95
|
# File 'lib/pgbus/testing.rb', line 95
def disabled!(&) = mode!(:disabled, &)
|
.disabled? ⇒ Boolean
99
|
# File 'lib/pgbus/testing.rb', line 99
def disabled? = mode == :disabled
|
.fake! ⇒ Object
93
|
# File 'lib/pgbus/testing.rb', line 93
def fake!(&) = mode!(:fake, &)
|
.fake? ⇒ Boolean
97
|
# File 'lib/pgbus/testing.rb', line 97
def fake? = mode == :fake
|
.inline! ⇒ Object
94
|
# File 'lib/pgbus/testing.rb', line 94
def inline!(&) = mode!(:inline, &)
|
.inline? ⇒ Boolean
98
|
# File 'lib/pgbus/testing.rb', line 98
def inline? = mode == :inline
|
.mode ⇒ Object
89
90
91
|
# File 'lib/pgbus/testing.rb', line 89
def mode
Thread.current[MODE_KEY] || Thread.main[MODE_KEY] || :disabled
end
|
.mode!(mode, &block) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/pgbus/testing.rb', line 69
def mode!(mode, &block)
raise ArgumentError, "Unknown mode: #{mode}. Valid modes: #{MODES.join(", ")}" unless MODES.include?(mode)
sync_streams_test_mode!(mode)
unless block
Thread.main[MODE_KEY] = mode
return
end
old = Thread.current[MODE_KEY]
Thread.current[MODE_KEY] = mode
yield
ensure
if block
Thread.current[MODE_KEY] = old
sync_streams_test_mode!(old || :disabled)
end
end
|