2019-05-13 10:37:49 +08:00
|
|
|
# frozen_string_literal: true
|
2017-07-10 18:19:59 +01:00
|
|
|
|
2022-10-03 20:36:52 +01:00
|
|
|
RSpec.shared_context "with dummy provider" do
|
2017-07-10 18:19:59 +01:00
|
|
|
before(:each) do
|
2021-07-13 14:36:16 -05:00
|
|
|
module ::DiscourseChatIntegration::Provider::DummyProvider
|
2017-07-10 18:19:59 +01:00
|
|
|
PROVIDER_NAME = "dummy".freeze
|
|
|
|
PROVIDER_ENABLED_SETTING = :chat_integration_enabled # Tie to main plugin enabled setting
|
2017-07-17 17:53:32 +01:00
|
|
|
CHANNEL_PARAMETERS = []
|
2017-07-13 20:50:45 +01:00
|
|
|
|
2017-07-10 18:19:59 +01:00
|
|
|
@@sent_messages = []
|
|
|
|
@@raise_exception = nil
|
|
|
|
|
2020-06-15 11:45:25 -04:00
|
|
|
def self.trigger_notification(post, channel, rule)
|
2022-12-29 12:31:05 +00:00
|
|
|
raise @@raise_exception if @@raise_exception
|
2017-10-03 17:42:07 +08:00
|
|
|
|
2017-07-10 18:19:59 +01:00
|
|
|
@@sent_messages.push(post: post.id, channel: channel)
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.sent_messages
|
|
|
|
@@sent_messages
|
|
|
|
end
|
|
|
|
|
2017-07-13 21:47:15 +01:00
|
|
|
def self.sent_to_channel_ids
|
2017-08-01 20:53:39 +01:00
|
|
|
@@sent_messages.map { |x| x[:channel].id }
|
2017-07-13 21:47:15 +01:00
|
|
|
end
|
|
|
|
|
2017-07-10 18:19:59 +01:00
|
|
|
def self.set_raise_exception(bool)
|
|
|
|
@@raise_exception = bool
|
|
|
|
end
|
|
|
|
end
|
2017-07-31 13:12:09 +01:00
|
|
|
end
|
|
|
|
|
2022-12-29 12:31:05 +00:00
|
|
|
after(:each) { ::DiscourseChatIntegration::Provider.send(:remove_const, :DummyProvider) }
|
2017-07-10 18:19:59 +01:00
|
|
|
|
2021-07-13 14:36:16 -05:00
|
|
|
let(:provider) { ::DiscourseChatIntegration::Provider::DummyProvider }
|
2017-07-13 20:50:45 +01:00
|
|
|
end
|
|
|
|
|
2022-10-03 20:36:52 +01:00
|
|
|
RSpec.shared_context "with validated dummy provider" do
|
2017-07-13 20:50:45 +01:00
|
|
|
before(:each) do
|
2021-07-13 14:36:16 -05:00
|
|
|
module ::DiscourseChatIntegration::Provider::Dummy2Provider
|
2017-07-13 20:50:45 +01:00
|
|
|
PROVIDER_NAME = "dummy2".freeze
|
|
|
|
PROVIDER_ENABLED_SETTING = :chat_integration_enabled # Tie to main plugin enabled setting
|
2024-09-11 10:42:52 -03:00
|
|
|
CHANNEL_IDENTIFIER_KEY = "val".freeze
|
2022-12-29 12:31:05 +00:00
|
|
|
CHANNEL_PARAMETERS = [{ key: "val", regex: '^\S+$', unique: true }]
|
2017-07-13 20:50:45 +01:00
|
|
|
|
|
|
|
@@sent_messages = []
|
|
|
|
|
2020-06-15 11:45:25 -04:00
|
|
|
def self.trigger_notification(post, channel, rule)
|
2017-07-13 20:50:45 +01:00
|
|
|
@@sent_messages.push(post: post.id, channel: channel)
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.sent_messages
|
|
|
|
@@sent_messages
|
|
|
|
end
|
2024-09-11 10:42:52 -03:00
|
|
|
|
|
|
|
def self.get_channel_by_name(name)
|
|
|
|
DiscourseChatIntegration::Channel
|
|
|
|
.with_provider(PROVIDER_NAME)
|
|
|
|
.with_data_value(CHANNEL_IDENTIFIER_KEY, name)
|
|
|
|
.first
|
|
|
|
end
|
2017-07-13 20:50:45 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2022-12-29 12:31:05 +00:00
|
|
|
after(:each) { ::DiscourseChatIntegration::Provider.send(:remove_const, :Dummy2Provider) }
|
2024-09-11 10:42:52 -03:00
|
|
|
|
|
|
|
let(:validated_provider) { ::DiscourseChatIntegration::Provider::Dummy2Provider }
|
2017-07-10 18:19:59 +01:00
|
|
|
end
|