2019-10-12 21:52:04 +05:30
# frozen_string_literal: true
2018-10-15 14:42:47 +05:30
require 'spec_helper'
2020-07-28 23:09:34 +05:30
RSpec . describe Gitlab :: Auth :: UserAccessDeniedReason do
2018-10-15 14:42:47 +05:30
include TermsHelper
let ( :user ) { build ( :user ) }
let ( :reason ) { described_class . new ( user ) }
describe '#rejection_message' do
subject { reason . rejection_message }
context 'when a user is blocked' do
before do
user . block!
end
it { is_expected . to match / blocked / }
end
context 'a user did not accept the enforced terms' do
before do
enforce_terms
end
2018-11-08 19:23:39 +05:30
it { is_expected . to match / must accept the Terms of Service / }
it { is_expected . to include ( user . username ) }
2018-10-15 14:42:47 +05:30
end
context 'when the user is internal' do
let ( :user ) { User . ghost }
it { is_expected . to match / This action cannot be performed by internal users / }
end
2019-12-21 20:55:43 +05:30
context 'when the user is deactivated' do
before do
user . deactivate!
end
it { is_expected . to eq " Your account has been deactivated by your administrator. Please log back in from a web browser to reactivate your account at #{ Gitlab . config . gitlab . url } " }
end
2020-08-09 18:53:13 +05:30
context 'when the user is unconfirmed' do
before do
user . update! ( confirmed_at : nil )
end
it { is_expected . to match / Your primary email address is not confirmed / }
end
2021-01-03 14:25:43 +05:30
context 'when the user is blocked pending approval' do
before do
user . block_pending_approval!
end
it { is_expected . to eq ( 'Your account is pending approval from your administrator and hence blocked.' ) }
end
2021-06-02 17:11:27 +05:30
context 'when the user has expired password' do
before do
user . update! ( password_expires_at : 2 . days . ago )
end
it { is_expected . to eq ( 'Your password expired. Please access GitLab from a web browser to update your password.' ) }
end
2018-10-15 14:42:47 +05:30
end
end