diff options
Diffstat (limited to 'spec/lib/gitlab/devise_failure_spec.rb')
-rw-r--r-- | spec/lib/gitlab/devise_failure_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/lib/gitlab/devise_failure_spec.rb b/spec/lib/gitlab/devise_failure_spec.rb new file mode 100644 index 00000000000..eee05c7befd --- /dev/null +++ b/spec/lib/gitlab/devise_failure_spec.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::DeviseFailure do + let(:env) do + { + 'REQUEST_URI' => 'http://test.host/', + 'HTTP_HOST' => 'test.host', + 'REQUEST_METHOD' => 'GET', + 'warden.options' => { scope: :user }, + 'rack.session' => {}, + 'rack.session.options' => {}, + 'rack.input' => "", + 'warden' => OpenStruct.new(message: nil) + } + end + + let(:response) { described_class.call(env).to_a } + let(:request) { ActionDispatch::Request.new(env) } + + context 'When redirecting' do + it 'sets the expire_after key' do + response + + expect(env['rack.session.options']).to have_key(:expire_after) + end + + it 'returns to the default redirect location' do + expect(response.first).to eq(302) + expect(request.flash[:alert]).to eq('You need to sign in or sign up before continuing.') + expect(response.second['Location']).to eq('http://test.host/users/sign_in') + end + end +end |