diff options
author | Rémy Coutable <remy@rymai.me> | 2019-07-04 10:38:56 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2019-07-04 10:38:56 +0300 |
commit | 9a4b5f08dbf5e0900145b5127f50e7ab3578d05c (patch) | |
tree | b447a23ccbd17d127eb12aa02f95015d4a7d11e9 /spec | |
parent | d1154dcd2b3b126cc4d6c3bba87c47b6669e697c (diff) | |
parent | d48ee86053acabf4d52effc2a6a2ba714926821d (diff) |
Merge branch 'sh-fix-issue-63349' into 'master'
Make Housekeeping button do a full garbage collection
Closes #63349
See merge request gitlab-org/gitlab-ce!30289
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/projects_controller_spec.rb | 47 | ||||
-rw-r--r-- | spec/requests/api/projects_spec.rb | 2 |
2 files changed, 48 insertions, 1 deletions
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index 8d2412f97ef..4e1cac67d23 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -318,6 +318,53 @@ describe ProjectsController do end end + describe '#housekeeping' do + let(:group) { create(:group) } + let(:project) { create(:project, group: group) } + let(:housekeeping) { Projects::HousekeepingService.new(project) } + + context 'when authenticated as owner' do + before do + group.add_owner(user) + sign_in(user) + + allow(Projects::HousekeepingService).to receive(:new).with(project, :gc).and_return(housekeeping) + end + + it 'forces a full garbage collection' do + expect(housekeeping).to receive(:execute).once + + post :housekeeping, + params: { + namespace_id: project.namespace.path, + id: project.path + } + + expect(response).to have_gitlab_http_status(302) + end + end + + context 'when authenticated as developer' do + let(:developer) { create(:user) } + + before do + group.add_developer(developer) + end + + it 'does not execute housekeeping' do + expect(housekeeping).not_to receive(:execute) + + post :housekeeping, + params: { + namespace_id: project.namespace.path, + id: project.path + } + + expect(response).to have_gitlab_http_status(302) + end + end + end + describe "#update" do render_views diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 5f7d2fa6d9c..c67412a44c1 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -2428,7 +2428,7 @@ describe API::Projects do let(:housekeeping) { Projects::HousekeepingService.new(project) } before do - allow(Projects::HousekeepingService).to receive(:new).with(project).and_return(housekeeping) + allow(Projects::HousekeepingService).to receive(:new).with(project, :gc).and_return(housekeeping) end context 'when authenticated as owner' do |