Fix project deletion and tests
This commit is contained in:
		
							parent
							
								
									6d352790c4
								
							
						
					
					
						commit
						73f91da8b1
					
				|  | @ -98,8 +98,7 @@ class ProjectsController < ApplicationController | ||||||
|   def destroy |   def destroy | ||||||
|     return access_denied! unless can?(current_user, :remove_project, project) |     return access_denied! unless can?(current_user, :remove_project, project) | ||||||
| 
 | 
 | ||||||
|     project.team.truncate |     ::Projects::DestroyService.new(@project, current_user, {}).execute | ||||||
|     project.destroy |  | ||||||
| 
 | 
 | ||||||
|     respond_to do |format| |     respond_to do |format| | ||||||
|       format.html { redirect_to root_path } |       format.html { redirect_to root_path } | ||||||
|  |  | ||||||
|  | @ -1,8 +1,9 @@ | ||||||
| module Projects | module Projects | ||||||
|   class UpdateService < BaseService |   class DestroyService < BaseService | ||||||
|     def execute(role = :default) |     def execute | ||||||
|       return false unless can?(current_user, :remove_project, project) |       return false unless can?(current_user, :remove_project, project) | ||||||
| 
 | 
 | ||||||
|  |       project.team.truncate | ||||||
|       project.repository.expire_cache unless project.empty_repo? |       project.repository.expire_cache unless project.empty_repo? | ||||||
| 
 | 
 | ||||||
|       if project.destroy |       if project.destroy | ||||||
|  |  | ||||||
|  | @ -65,26 +65,4 @@ describe Event do | ||||||
|     it { @event.branch_name.should == "master" } |     it { @event.branch_name.should == "master" } | ||||||
|     it { @event.author.should == @user } |     it { @event.author.should == @user } | ||||||
|   end |   end | ||||||
| 
 |  | ||||||
|   describe 'Team events' do |  | ||||||
|     let(:user_project) { double.as_null_object } |  | ||||||
|     let(:observer) { UsersProjectObserver.instance } |  | ||||||
| 
 |  | ||||||
|     before { |  | ||||||
|       Event.should_receive :create |  | ||||||
|       observer.stub(notification: double.as_null_object) |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     describe "Joined project team" do |  | ||||||
|       it "should create event" do |  | ||||||
|         observer.after_create user_project |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     describe "Left project team" do |  | ||||||
|       it "should create event" do |  | ||||||
|         observer.after_destroy user_project |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -25,13 +25,14 @@ describe SystemHook do | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it "project_create hook" do |     it "project_create hook" do | ||||||
|       project = create(:project) |       Projects::CreateService.new(create(:user), name: 'empty').execute | ||||||
|       WebMock.should have_requested(:post, @system_hook.url).with(body: /project_create/).once |       WebMock.should have_requested(:post, @system_hook.url).with(body: /project_create/).once | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it "project_destroy hook" do |     it "project_destroy hook" do | ||||||
|       project = create(:project) |       user = create(:user) | ||||||
|       project.destroy |       project = create(:empty_project, namespace: user.namespace) | ||||||
|  |       Projects::DestroyService.new(project, user, {}).execute | ||||||
|       WebMock.should have_requested(:post, @system_hook.url).with(body: /project_destroy/).once |       WebMock.should have_requested(:post, @system_hook.url).with(body: /project_destroy/).once | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -63,11 +63,8 @@ describe Projects::CreateService do | ||||||
|         @settings.stub(:merge_requests) { true } |         @settings.stub(:merge_requests) { true } | ||||||
|         @settings.stub(:wiki) { true } |         @settings.stub(:wiki) { true } | ||||||
|         @settings.stub(:snippets) { true } |         @settings.stub(:snippets) { true } | ||||||
|         stub_const("Settings", Class.new) |         Gitlab.config.gitlab.stub(restricted_visibility_levels: []) | ||||||
|         @restrictions = double("restrictions") |         Gitlab.config.gitlab.stub(:default_projects_features).and_return(@settings) | ||||||
|         @restrictions.stub(:restricted_visibility_levels) { [] } |  | ||||||
|         Settings.stub_chain(:gitlab).and_return(@restrictions) |  | ||||||
|         Settings.stub_chain(:gitlab, :default_projects_features).and_return(@settings) |  | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       context 'should be public when setting is public' do |       context 'should be public when setting is public' do | ||||||
|  | @ -106,11 +103,9 @@ describe Projects::CreateService do | ||||||
|         @settings.stub(:wiki) { true } |         @settings.stub(:wiki) { true } | ||||||
|         @settings.stub(:snippets) { true } |         @settings.stub(:snippets) { true } | ||||||
|         @settings.stub(:visibility_level) { Gitlab::VisibilityLevel::PRIVATE } |         @settings.stub(:visibility_level) { Gitlab::VisibilityLevel::PRIVATE } | ||||||
|         stub_const("Settings", Class.new) |         @restrictions = [ Gitlab::VisibilityLevel::PUBLIC ] | ||||||
|         @restrictions = double("restrictions") |         Gitlab.config.gitlab.stub(restricted_visibility_levels: @restrictions) | ||||||
|         @restrictions.stub(:restricted_visibility_levels) { [ Gitlab::VisibilityLevel::PUBLIC ] } |         Gitlab.config.gitlab.stub(:default_projects_features).and_return(@settings) | ||||||
|         Settings.stub_chain(:gitlab).and_return(@restrictions) |  | ||||||
|         Settings.stub_chain(:gitlab, :default_projects_features).and_return(@settings) |  | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       context 'should be private when option is public' do |       context 'should be private when option is public' do | ||||||
|  | @ -155,4 +150,3 @@ describe Projects::CreateService do | ||||||
|     Projects::CreateService.new(user, opts).execute |     Projects::CreateService.new(user, opts).execute | ||||||
|   end |   end | ||||||
| end | end | ||||||
| 
 |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue