diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-21 14:21:10 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-21 14:21:10 +0000 |
commit | cb0d23c455b73486fd1015f8ca9479b5b7e3585d (patch) | |
tree | d7dc129a407fd74266d2dc561bebf24665197c2f /spec/models/user_spec.rb | |
parent | c3e911be175c0aabfea1eb030f9e0ef23f5f3887 (diff) | |
download | gitlab-ce-cb0d23c455b73486fd1015f8ca9479b5b7e3585d.tar.gz |
Add latest changes from gitlab-org/gitlab@12-7-stable-ee
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r-- | spec/models/user_spec.rb | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 58aa945bff0..5620f211d9c 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -147,15 +147,15 @@ describe User, :do_not_mock_admin_mode do describe 'name' do it { is_expected.to validate_presence_of(:name) } - it { is_expected.to validate_length_of(:name).is_at_most(128) } + it { is_expected.to validate_length_of(:name).is_at_most(255) } end describe 'first name' do - it { is_expected.to validate_length_of(:first_name).is_at_most(255) } + it { is_expected.to validate_length_of(:first_name).is_at_most(127) } end describe 'last name' do - it { is_expected.to validate_length_of(:last_name).is_at_most(255) } + it { is_expected.to validate_length_of(:last_name).is_at_most(127) } end describe 'username' do @@ -633,6 +633,27 @@ describe User, :do_not_mock_admin_mode do end end end + + describe '.active_without_ghosts' do + let_it_be(:user1) { create(:user, :external) } + let_it_be(:user2) { create(:user, state: 'blocked') } + let_it_be(:user3) { create(:user, ghost: true) } + let_it_be(:user4) { create(:user) } + + it 'returns all active users but ghost users' do + expect(described_class.active_without_ghosts).to match_array([user1, user4]) + end + end + + describe '.without_ghosts' do + let_it_be(:user1) { create(:user, :external) } + let_it_be(:user2) { create(:user, state: 'blocked') } + let_it_be(:user3) { create(:user, ghost: true) } + + it 'returns users without ghosts users' do + expect(described_class.without_ghosts).to match_array([user1, user2]) + end + end end describe "Respond to" do @@ -1252,7 +1273,7 @@ describe User, :do_not_mock_admin_mode do let(:user) { double } it 'filters by active users by default' do - expect(described_class).to receive(:active).and_return([user]) + expect(described_class).to receive(:active_without_ghosts).and_return([user]) expect(described_class.filter_items(nil)).to include user end @@ -1991,6 +2012,19 @@ describe User, :do_not_mock_admin_mode do expect(user.blocked?).to be_truthy expect(user.ldap_blocked?).to be_truthy end + + context 'on a read-only instance' do + before do + allow(Gitlab::Database).to receive(:read_only?).and_return(true) + end + + it 'does not block user' do + user.ldap_block + + expect(user.blocked?).to be_falsey + expect(user.ldap_blocked?).to be_falsey + end + end end end @@ -2390,6 +2424,7 @@ describe User, :do_not_mock_admin_mode do describe '#authorizations_for_projects' do let!(:user) { create(:user) } + subject { Project.where("EXISTS (?)", user.authorizations_for_projects) } it 'includes projects that belong to a user, but no other projects' do @@ -3700,6 +3735,7 @@ describe User, :do_not_mock_admin_mode do describe '#required_terms_not_accepted?' do let(:user) { build(:user) } + subject { user.required_terms_not_accepted? } context "when terms are not enforced" do |