discourse-chat-integration/spec/dummy_provider.rb

74 lines
1.9 KiB
Ruby
Raw Normal View History

RSpec.shared_context "dummy provider" do
before(:each) do
if defined? ::DiscourseChat::Provider::DummyProvider
::DiscourseChat::Provider.send(:remove_const, :DummyProvider)
end
module ::DiscourseChat::Provider::DummyProvider
PROVIDER_NAME = "dummy".freeze
PROVIDER_ENABLED_SETTING = :chat_integration_enabled # Tie to main plugin enabled setting
2017-07-17 12:53:32 -04:00
CHANNEL_PARAMETERS = []
@@sent_messages = []
@@raise_exception = nil
def self.trigger_notification(post, channel)
if @@raise_exception
raise @@raise_exception
end
@@sent_messages.push(post: post.id, channel: channel)
end
def self.sent_messages
@@sent_messages
end
def self.sent_to_channel_ids
@@sent_messages.map{|x| x[:channel].id}
end
def self.set_raise_exception(bool)
@@raise_exception = bool
end
end
end
let(:provider){::DiscourseChat::Provider::DummyProvider}
end
RSpec.shared_context "validated dummy provider" do
before(:each) do
if defined? ::DiscourseChat::Provider::Dummy2Provider
::DiscourseChat::Provider.send(:remove_const, :Dummy2Provider)
end
module ::DiscourseChat::Provider::Dummy2Provider
PROVIDER_NAME = "dummy2".freeze
PROVIDER_ENABLED_SETTING = :chat_integration_enabled # Tie to main plugin enabled setting
2017-07-17 12:53:32 -04:00
CHANNEL_PARAMETERS = [
{key: "val", regex: '^\S+$'}
2017-07-17 12:53:32 -04:00
]
@@sent_messages = []
def self.trigger_notification(post, channel)
@@sent_messages.push(post: post.id, channel: channel)
end
def self.sent_messages
@@sent_messages
end
end
end
let(:provider){::DiscourseChat::Provider::DummyProvider}
end
RSpec.configure do |rspec|
rspec.include_context "dummy provider"
rspec.include_context "validated dummy provider"
end