Module: TCB::MinitestHelpers
Instance Method Summary
collapse
#poll_until, #with_subscriptions
Instance Method Details
#assert_published(*expected, within: 1.0, &block) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/tcb/minitest_helpers.rb', line 9
def assert_published(*expected, within: 1.0, &block)
event_classes = expected.map { |arg| arg.is_a?(Class) ? arg : arg.class }.uniq
with_subscriptions(*event_classes) do |captured|
block.call
expected.each do |arg|
if arg.is_a?(Class)
met = poll_until(within: within) { captured[arg].any? }
raise Minitest::Assertion, "Expected #{arg} to be published, but it was not" unless met
else
event_class = arg.class
met = poll_until(within: within) { captured[event_class].any? { |e| e == arg } }
raise Minitest::Assertion, "Expected #{arg.inspect} to be published, but it was not" unless met
end
end
end
end
|
#poll_assert(message = nil, within: 1.0, interval: 0.001, &block) ⇒ Object
28
29
30
31
32
33
34
35
|
# File 'lib/tcb/minitest_helpers.rb', line 28
def poll_assert(message = nil, within: 1.0, interval: 0.001, &block)
met = poll_until(within: within, interval: interval, &block)
return if met
failure_message = "Condition not met within #{within}s"
failure_message += ": \"#{message}\"" if message
raise Minitest::Assertion, failure_message
end
|