From 1ca9950d5f890cd8f185e1eda158b969a7244fe2 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 11 Feb 2020 18:08:58 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- spec/services/projects/create_service_spec.rb | 14 +-- .../propagate_instance_level_service_spec.rb | 109 --------------------- .../projects/propagate_service_template_spec.rb | 109 +++++++++++++++++++++ 3 files changed, 116 insertions(+), 116 deletions(-) delete mode 100644 spec/services/projects/propagate_instance_level_service_spec.rb create mode 100644 spec/services/projects/propagate_service_template_spec.rb (limited to 'spec/services/projects') diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index 9d23556efda..a8e7919dc81 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -15,7 +15,7 @@ describe Projects::CreateService, '#execute' do } end - it 'creates labels on Project creation if there are instance level services' do + it 'creates labels on Project creation if there are templates' do Label.create(title: "bug", template: true) project = create_project(user, opts) @@ -96,7 +96,7 @@ describe Projects::CreateService, '#execute' do end it 'sets invalid service as inactive' do - create(:service, type: 'JiraService', project: nil, instance: true, active: true) + create(:service, type: 'JiraService', project: nil, template: true, active: true) project = create_project(user, opts) service = project.services.first @@ -342,22 +342,22 @@ describe Projects::CreateService, '#execute' do end end - context 'when there is an active instance level service' do + context 'when there is an active service template' do before do - create(:service, project: nil, instance: true, active: true) + create(:service, project: nil, template: true, active: true) end - it 'creates a service from instance level service' do + it 'creates a service from this template' do project = create_project(user, opts) expect(project.services.count).to eq 1 end end - context 'when a bad instance level service is created' do + context 'when a bad service template is created' do it 'sets service to be inactive' do opts[:import_url] = 'http://www.gitlab.com/gitlab-org/gitlab-foss' - create(:service, type: 'DroneCiService', project: nil, instance: true, active: true) + create(:service, type: 'DroneCiService', project: nil, template: true, active: true) project = create_project(user, opts) service = project.services.first diff --git a/spec/services/projects/propagate_instance_level_service_spec.rb b/spec/services/projects/propagate_instance_level_service_spec.rb deleted file mode 100644 index a842842a010..00000000000 --- a/spec/services/projects/propagate_instance_level_service_spec.rb +++ /dev/null @@ -1,109 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe Projects::PropagateInstanceLevelService do - describe '.propagate' do - let!(:instance_level_integration) do - PushoverService.create( - instance: true, - active: true, - properties: { - device: 'MyDevice', - sound: 'mic', - priority: 4, - user_key: 'asdf', - api_key: '123456789' - }) - end - - let!(:project) { create(:project) } - - it 'creates services for projects' do - expect(project.pushover_service).to be_nil - - described_class.propagate(instance_level_integration) - - expect(project.reload.pushover_service).to be_present - end - - it 'creates services for a project that has another service' do - BambooService.create( - instance: true, - active: true, - project: project, - properties: { - bamboo_url: 'http://gitlab.com', - username: 'mic', - password: "password", - build_key: 'build' - } - ) - - expect(project.pushover_service).to be_nil - - described_class.propagate(instance_level_integration) - - expect(project.reload.pushover_service).to be_present - end - - it 'does not create the service if it exists already' do - other_service = BambooService.create( - instance: true, - active: true, - properties: { - bamboo_url: 'http://gitlab.com', - username: 'mic', - password: "password", - build_key: 'build' - } - ) - - Service.build_from_instance(project.id, instance_level_integration).save! - Service.build_from_instance(project.id, other_service).save! - - expect { described_class.propagate(instance_level_integration) } - .not_to change { Service.count } - end - - it 'creates the service containing the instance attributes' do - described_class.propagate(instance_level_integration) - - expect(project.pushover_service.properties).to eq(instance_level_integration.properties) - end - - describe 'bulk update', :use_sql_query_cache do - let(:project_total) { 5 } - - before do - stub_const 'Projects::PropagateServiceTemplate::BATCH_SIZE', 3 - - project_total.times { create(:project) } - - described_class.propagate(instance_level_integration) - end - - it 'creates services for all projects' do - expect(Service.all.reload.count).to eq(project_total + 2) - end - end - - describe 'external tracker' do - it 'updates the project external tracker' do - instance_level_integration.update!(category: 'issue_tracker', default: false) - - expect { described_class.propagate(instance_level_integration) } - .to change { project.reload.has_external_issue_tracker }.to(true) - end - end - - describe 'external wiki' do - it 'updates the project external tracker' do - instance_level_integration.update!(type: 'ExternalWikiService') - - expect { described_class.propagate(instance_level_integration) } - .to change { project.reload.has_external_wiki }.to(true) - end - end - end -end diff --git a/spec/services/projects/propagate_service_template_spec.rb b/spec/services/projects/propagate_service_template_spec.rb new file mode 100644 index 00000000000..2c3effec617 --- /dev/null +++ b/spec/services/projects/propagate_service_template_spec.rb @@ -0,0 +1,109 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Projects::PropagateServiceTemplate do + describe '.propagate' do + let!(:service_template) do + PushoverService.create( + template: true, + active: true, + properties: { + device: 'MyDevice', + sound: 'mic', + priority: 4, + user_key: 'asdf', + api_key: '123456789' + }) + end + + let!(:project) { create(:project) } + + it 'creates services for projects' do + expect(project.pushover_service).to be_nil + + described_class.propagate(service_template) + + expect(project.reload.pushover_service).to be_present + end + + it 'creates services for a project that has another service' do + BambooService.create( + template: true, + active: true, + project: project, + properties: { + bamboo_url: 'http://gitlab.com', + username: 'mic', + password: "password", + build_key: 'build' + } + ) + + expect(project.pushover_service).to be_nil + + described_class.propagate(service_template) + + expect(project.reload.pushover_service).to be_present + end + + it 'does not create the service if it exists already' do + other_service = BambooService.create( + template: true, + active: true, + properties: { + bamboo_url: 'http://gitlab.com', + username: 'mic', + password: "password", + build_key: 'build' + } + ) + + Service.build_from_template(project.id, service_template).save! + Service.build_from_template(project.id, other_service).save! + + expect { described_class.propagate(service_template) } + .not_to change { Service.count } + end + + it 'creates the service containing the template attributes' do + described_class.propagate(service_template) + + expect(project.pushover_service.properties).to eq(service_template.properties) + end + + describe 'bulk update', :use_sql_query_cache do + let(:project_total) { 5 } + + before do + stub_const 'Projects::PropagateServiceTemplate::BATCH_SIZE', 3 + + project_total.times { create(:project) } + + described_class.propagate(service_template) + end + + it 'creates services for all projects' do + expect(Service.all.reload.count).to eq(project_total + 2) + end + end + + describe 'external tracker' do + it 'updates the project external tracker' do + service_template.update!(category: 'issue_tracker', default: false) + + expect { described_class.propagate(service_template) } + .to change { project.reload.has_external_issue_tracker }.to(true) + end + end + + describe 'external wiki' do + it 'updates the project external tracker' do + service_template.update!(type: 'ExternalWikiService') + + expect { described_class.propagate(service_template) } + .to change { project.reload.has_external_wiki }.to(true) + end + end + end +end -- cgit v1.2.1