summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/git_access_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/git_access_spec.rb')
-rw-r--r--spec/lib/gitlab/git_access_spec.rb23
1 files changed, 17 insertions, 6 deletions
diff --git a/spec/lib/gitlab/git_access_spec.rb b/spec/lib/gitlab/git_access_spec.rb
index 85567ab2e55..21607edbc32 100644
--- a/spec/lib/gitlab/git_access_spec.rb
+++ b/spec/lib/gitlab/git_access_spec.rb
@@ -420,6 +420,13 @@ RSpec.describe Gitlab::GitAccess do
expect { pull_access_check }.to raise_forbidden('Your account has been blocked.')
end
+ it 'disallows users that are blocked pending approval to pull' do
+ project.add_maintainer(user)
+ user.block_pending_approval
+
+ expect { pull_access_check }.to raise_forbidden('Your account is pending approval from your administrator and hence blocked.')
+ end
+
it 'disallows deactivated users to pull' do
project.add_maintainer(user)
user.deactivate!
@@ -428,14 +435,12 @@ RSpec.describe Gitlab::GitAccess do
end
context 'when the project repository does not exist' do
- it 'returns not found' do
+ before do
project.add_guest(user)
- repo = project.repository
- Gitlab::GitalyClient::StorageSettings.allow_disk_access { FileUtils.rm_rf(repo.path) }
-
- # Sanity check for rm_rf
- expect(repo.exists?).to eq(false)
+ allow(project.repository).to receive(:exists?).and_return(false)
+ end
+ it 'returns not found' do
expect { pull_access_check }.to raise_error(Gitlab::GitAccess::NotFoundError, 'A repository for this project does not exist yet.')
end
end
@@ -917,6 +922,12 @@ RSpec.describe Gitlab::GitAccess do
project.add_developer(user)
end
+ it 'disallows users that are blocked pending approval to push' do
+ user.block_pending_approval
+
+ expect { push_access_check }.to raise_forbidden('Your account is pending approval from your administrator and hence blocked.')
+ end
+
it 'does not allow deactivated users to push' do
user.deactivate!