discourse/plugins/automation/spec/plugin_helper.rb

39 lines
931 B
Ruby

# frozen_string_literal: true
module AutomationSpecHelpers
def capture_contexts(&blk)
DiscourseAutomation::CapturedContext.capture(&blk)
end
end
module DiscourseAutomation::CapturedContext
def self.add(context)
@contexts << context if @capturing
end
def self.capture
raise StandardError, "Nested capture is not supported" if @capturing
raise StandardError, "Expecting a block" if !block_given?
@capturing = true
@contexts = []
yield
@contexts
ensure
@capturing = false
end
end
DiscourseAutomation::Scriptable.add("something_about_us") do
script do |context|
DiscourseAutomation::CapturedContext.add(context)
nil
end
triggerables [DiscourseAutomation::Triggers::API_CALL]
end
DiscourseAutomation::Scriptable.add("nothing_about_us") do
triggerables [DiscourseAutomation::Triggers::API_CALL]
end
RSpec.configure { |config| config.include AutomationSpecHelpers }