summaryrefslogtreecommitdiff
path: root/spec/services/captcha/captcha_verification_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/captcha/captcha_verification_service_spec.rb')
-rw-r--r--spec/services/captcha/captcha_verification_service_spec.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/services/captcha/captcha_verification_service_spec.rb b/spec/services/captcha/captcha_verification_service_spec.rb
new file mode 100644
index 00000000000..245e06703f5
--- /dev/null
+++ b/spec/services/captcha/captcha_verification_service_spec.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Captcha::CaptchaVerificationService do
+ describe '#execute' do
+ let(:captcha_response) { nil }
+ let(:request) { double(:request) }
+ let(:service) { described_class.new }
+
+ subject { service.execute(captcha_response: captcha_response, request: request) }
+
+ context 'when there is no captcha_response' do
+ it 'returns false' do
+ expect(subject).to eq(false)
+ end
+ end
+
+ context 'when there is a captcha_response' do
+ let(:captcha_response) { 'abc123' }
+
+ before do
+ expect(Gitlab::Recaptcha).to receive(:load_configurations!)
+ end
+
+ it 'returns false' do
+ expect(service).to receive(:verify_recaptcha).with(response: captcha_response) { true }
+
+ expect(subject).to eq(true)
+ end
+
+ it 'has a request method which returns the request' do
+ subject
+
+ expect(service.send(:request)).to eq(request)
+ end
+ end
+ end
+end