summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/event_store/store_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/event_store/store_spec.rb')
-rw-r--r--spec/lib/gitlab/event_store/store_spec.rb27
1 files changed, 24 insertions, 3 deletions
diff --git a/spec/lib/gitlab/event_store/store_spec.rb b/spec/lib/gitlab/event_store/store_spec.rb
index 711e1d5b4d5..94e8f0ff2ff 100644
--- a/spec/lib/gitlab/event_store/store_spec.rb
+++ b/spec/lib/gitlab/event_store/store_spec.rb
@@ -10,7 +10,6 @@ RSpec.describe Gitlab::EventStore::Store do
let(:worker) do
stub_const('EventSubscriber', Class.new).tap do |klass|
klass.class_eval do
- include ApplicationWorker
include Gitlab::EventStore::Subscriber
def handle_event(event)
@@ -23,7 +22,6 @@ RSpec.describe Gitlab::EventStore::Store do
let(:another_worker) do
stub_const('AnotherEventSubscriber', Class.new).tap do |klass|
klass.class_eval do
- include ApplicationWorker
include Gitlab::EventStore::Subscriber
end
end
@@ -32,7 +30,6 @@ RSpec.describe Gitlab::EventStore::Store do
let(:unrelated_worker) do
stub_const('UnrelatedEventSubscriber', Class.new).tap do |klass|
klass.class_eval do
- include ApplicationWorker
include Gitlab::EventStore::Subscriber
end
end
@@ -224,6 +221,26 @@ RSpec.describe Gitlab::EventStore::Store do
store.publish(event)
end
end
+
+ context 'when the event does not have any subscribers' do
+ let(:store) do
+ described_class.new do |s|
+ s.subscribe unrelated_worker, to: another_event_klass
+ end
+ end
+
+ let(:event) { event_klass.new(data: data) }
+
+ it 'returns successfully' do
+ expect { store.publish(event) }.not_to raise_error
+ end
+
+ it 'does not dispatch the event to another subscription' do
+ expect(unrelated_worker).not_to receive(:perform_async)
+
+ store.publish(event)
+ end
+ end
end
describe 'subscriber' do
@@ -233,6 +250,10 @@ RSpec.describe Gitlab::EventStore::Store do
subject { worker_instance.perform(event_name, data) }
+ it 'is a Sidekiq worker' do
+ expect(worker_instance).to be_a(ApplicationWorker)
+ end
+
it 'handles the event' do
expect(worker_instance).to receive(:handle_event).with(instance_of(event.class))