diff options
Diffstat (limited to 'spec/support/shared_examples/services/snippets_shared_examples.rb')
-rw-r--r-- | spec/support/shared_examples/services/snippets_shared_examples.rb | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/spec/support/shared_examples/services/snippets_shared_examples.rb b/spec/support/shared_examples/services/snippets_shared_examples.rb index 10add3a7299..0c4db7ded69 100644 --- a/spec/support/shared_examples/services/snippets_shared_examples.rb +++ b/spec/support/shared_examples/services/snippets_shared_examples.rb @@ -1,7 +1,8 @@ # frozen_string_literal: true RSpec.shared_examples 'checking spam' do - let(:request) { double(:request) } + let(:request) { double(:request, headers: headers) } + let(:headers) { nil } let(:api) { true } let(:captcha_response) { 'abc123' } let(:spam_log_id) { 1 } @@ -44,6 +45,44 @@ RSpec.shared_examples 'checking spam' do subject end + context 'when CAPTCHA arguments are passed in the headers' do + let(:headers) do + { + 'X-GitLab-Spam-Log-Id' => spam_log_id, + 'X-GitLab-Captcha-Response' => captcha_response + } + end + + let(:extra_opts) do + { + request: request, + api: api, + disable_spam_action_service: disable_spam_action_service + } + end + + it 'executes the SpamActionService correctly' do + spam_params = Spam::SpamParams.new( + api: api, + captcha_response: captcha_response, + spam_log_id: spam_log_id + ) + expect_next_instance_of( + Spam::SpamActionService, + { + spammable: kind_of(Snippet), + request: request, + user: an_instance_of(User), + action: action + } + ) do |instance| + expect(instance).to receive(:execute).with(spam_params: spam_params) + end + + subject + end + end + context 'when spam action service is disabled' do let(:disable_spam_action_service) { true } |