From bf4a3af06ac4cb7f321267bf395022420e0c14a2 Mon Sep 17 00:00:00 2001 From: Tiago Botelho Date: Tue, 27 Mar 2018 10:28:04 +0100 Subject: Project creation does not fail silently on DB related changes --- spec/services/projects/create_service_spec.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'spec/services/projects/create_service_spec.rb') diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index 8471467d2fa..fbaa4f7aebc 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -70,6 +70,16 @@ describe Projects::CreateService, '#execute' do opts[:default_branch] = 'master' expect(create_project(user, opts)).to eq(nil) end + + it 'handles invalid service' do + create(:service, type: 'JiraService', project: nil, template: true, active: true) + + project = create_project(user, opts) + + expect(project).not_to be_persisted + expect(project.errors.full_messages_for(:base).first).to match(/Unable to save project. Error: Unable to save JiraService/) + expect(project.services.count).to eq 0 + end end context 'wiki_enabled creates repository directory' do -- cgit v1.2.1 From 7fd9e39d885c7d7520ba0a7e45e8c58847f1c11d Mon Sep 17 00:00:00 2001 From: Tiago Botelho Date: Tue, 27 Mar 2018 16:33:29 +0100 Subject: When a Service templates are invalid newly created projects will have them inactive --- spec/services/projects/create_service_spec.rb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'spec/services/projects/create_service_spec.rb') diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index fbaa4f7aebc..3a9e0ace517 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -71,14 +71,14 @@ describe Projects::CreateService, '#execute' do expect(create_project(user, opts)).to eq(nil) end - it 'handles invalid service' do + it 'sets invalid service as inactive' do create(:service, type: 'JiraService', project: nil, template: true, active: true) project = create_project(user, opts) + service = project.services.first - expect(project).not_to be_persisted - expect(project.errors.full_messages_for(:base).first).to match(/Unable to save project. Error: Unable to save JiraService/) - expect(project.services.count).to eq 0 + expect(project).to be_persisted + expect(service.active).to be false end end @@ -242,14 +242,15 @@ describe Projects::CreateService, '#execute' do end context 'when a bad service template is created' do - it 'reports an error in the imported project' do + it 'sets service to be inactive' do opts[:import_url] = 'http://www.gitlab.com/gitlab-org/gitlab-ce' create(:service, type: 'DroneCiService', project: nil, template: true, active: true) project = create_project(user, opts) + service = project.services.first - expect(project.errors.full_messages_for(:base).first).to match(/Unable to save project. Error: Unable to save DroneCiService/) - expect(project.services.count).to eq 0 + expect(project).to be_persisted + expect(service.active).to be false end end -- cgit v1.2.1