Skip to content
Snippets Groups Projects
Commit 1ca9950d authored by GitLab Bot's avatar GitLab Bot
Browse files

Add latest changes from gitlab-org/gitlab@master

parent bcc77054
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -2,11 +2,11 @@
 
require 'spec_helper'
 
describe Projects::PropagateInstanceLevelService do
describe Projects::PropagateServiceTemplate do
describe '.propagate' do
let!(:instance_level_integration) do
let!(:service_template) do
PushoverService.create(
instance: true,
template: true,
active: true,
properties: {
device: 'MyDevice',
Loading
Loading
@@ -22,14 +22,14 @@ describe Projects::PropagateInstanceLevelService do
it 'creates services for projects' do
expect(project.pushover_service).to be_nil
 
described_class.propagate(instance_level_integration)
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(
instance: true,
template: true,
active: true,
project: project,
properties: {
Loading
Loading
@@ -42,14 +42,14 @@ describe Projects::PropagateInstanceLevelService do
 
expect(project.pushover_service).to be_nil
 
described_class.propagate(instance_level_integration)
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(
instance: true,
template: true,
active: true,
properties: {
bamboo_url: 'http://gitlab.com',
Loading
Loading
@@ -59,17 +59,17 @@ describe Projects::PropagateInstanceLevelService do
}
)
 
Service.build_from_instance(project.id, instance_level_integration).save!
Service.build_from_instance(project.id, other_service).save!
Service.build_from_template(project.id, service_template).save!
Service.build_from_template(project.id, other_service).save!
 
expect { described_class.propagate(instance_level_integration) }
expect { described_class.propagate(service_template) }
.not_to change { Service.count }
end
 
it 'creates the service containing the instance attributes' do
described_class.propagate(instance_level_integration)
it 'creates the service containing the template attributes' do
described_class.propagate(service_template)
 
expect(project.pushover_service.properties).to eq(instance_level_integration.properties)
expect(project.pushover_service.properties).to eq(service_template.properties)
end
 
describe 'bulk update', :use_sql_query_cache do
Loading
Loading
@@ -80,7 +80,7 @@ describe Projects::PropagateInstanceLevelService do
 
project_total.times { create(:project) }
 
described_class.propagate(instance_level_integration)
described_class.propagate(service_template)
end
 
it 'creates services for all projects' do
Loading
Loading
@@ -90,18 +90,18 @@ describe Projects::PropagateInstanceLevelService do
 
describe 'external tracker' do
it 'updates the project external tracker' do
instance_level_integration.update!(category: 'issue_tracker', default: false)
service_template.update!(category: 'issue_tracker', default: false)
 
expect { described_class.propagate(instance_level_integration) }
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
instance_level_integration.update!(type: 'ExternalWikiService')
service_template.update!(type: 'ExternalWikiService')
 
expect { described_class.propagate(instance_level_integration) }
expect { described_class.propagate(service_template) }
.to change { project.reload.has_external_wiki }.to(true)
end
end
Loading
Loading
Loading
Loading
@@ -557,7 +557,7 @@ module KubernetesHelpers
end
 
# noinspection RubyStringKeysInHashInspection
def knative_06_service(name: 'kubetest', namespace: 'default', domain: 'example.com', description: 'a knative service', environment: 'production')
def knative_06_service(name: 'kubetest', namespace: 'default', domain: 'example.com', description: 'a knative service', environment: 'production', cluster_id: 9)
{ "apiVersion" => "serving.knative.dev/v1alpha1",
"kind" => "Service",
"metadata" =>
Loading
Loading
@@ -612,12 +612,12 @@ module KubernetesHelpers
"url" => "http://#{name}.#{namespace}.#{domain}"
},
"environment_scope" => environment,
"cluster_id" => 9,
"cluster_id" => cluster_id,
"podcount" => 0 }
end
 
# noinspection RubyStringKeysInHashInspection
def knative_07_service(name: 'kubetest', namespace: 'default', domain: 'example.com', description: 'a knative service', environment: 'production')
def knative_07_service(name: 'kubetest', namespace: 'default', domain: 'example.com', description: 'a knative service', environment: 'production', cluster_id: 5)
{ "apiVersion" => "serving.knative.dev/v1alpha1",
"kind" => "Service",
"metadata" =>
Loading
Loading
@@ -664,12 +664,12 @@ module KubernetesHelpers
"traffic" => [{ "latestRevision" => true, "percent" => 100, "revisionName" => "#{name}-92tsj" }],
"url" => "http://#{name}.#{namespace}.#{domain}" },
"environment_scope" => environment,
"cluster_id" => 5,
"cluster_id" => cluster_id,
"podcount" => 0 }
end
 
# noinspection RubyStringKeysInHashInspection
def knative_09_service(name: 'kubetest', namespace: 'default', domain: 'example.com', description: 'a knative service', environment: 'production')
def knative_09_service(name: 'kubetest', namespace: 'default', domain: 'example.com', description: 'a knative service', environment: 'production', cluster_id: 5)
{ "apiVersion" => "serving.knative.dev/v1alpha1",
"kind" => "Service",
"metadata" =>
Loading
Loading
@@ -716,12 +716,12 @@ module KubernetesHelpers
"traffic" => [{ "latestRevision" => true, "percent" => 100, "revisionName" => "#{name}-92tsj" }],
"url" => "http://#{name}.#{namespace}.#{domain}" },
"environment_scope" => environment,
"cluster_id" => 5,
"cluster_id" => cluster_id,
"podcount" => 0 }
end
 
# noinspection RubyStringKeysInHashInspection
def knative_05_service(name: 'kubetest', namespace: 'default', domain: 'example.com', description: 'a knative service', environment: 'production')
def knative_05_service(name: 'kubetest', namespace: 'default', domain: 'example.com', description: 'a knative service', environment: 'production', cluster_id: 8)
{ "apiVersion" => "serving.knative.dev/v1alpha1",
"kind" => "Service",
"metadata" =>
Loading
Loading
@@ -771,7 +771,7 @@ module KubernetesHelpers
"observedGeneration" => 1,
"traffic" => [{ "percent" => 100, "revisionName" => "#{name}-58qgr" }] },
"environment_scope" => environment,
"cluster_id" => 8,
"cluster_id" => cluster_id,
"podcount" => 0 }
end
 
Loading
Loading
# frozen_string_literal: true
RSpec.shared_examples 'a pages cronjob scheduling jobs with context' do |scheduled_worker_class|
let(:worker) { described_class.new }
it 'does not cause extra queries for multiple domains' do
control = ActiveRecord::QueryRecorder.new { worker.perform }
extra_domain
expect { worker.perform }.not_to exceed_query_limit(control)
end
it 'schedules the renewal with a context' do
extra_domain
worker.perform
expect(scheduled_worker_class.jobs.last).to include("meta.project" => extra_domain.project.full_path)
end
end
Loading
Loading
@@ -12,7 +12,7 @@ describe PagesDomainSslRenewalCronWorker do
end
 
describe '#perform' do
let(:project) { create :project }
let_it_be(:project) { create :project }
let!(:domain) { create(:pages_domain, project: project, auto_ssl_enabled: false) }
let!(:domain_with_enabled_auto_ssl) { create(:pages_domain, project: project, auto_ssl_enabled: true) }
let!(:domain_with_obtained_letsencrypt) do
Loading
Loading
@@ -35,12 +35,16 @@ describe PagesDomainSslRenewalCronWorker do
 
[domain,
domain_with_obtained_letsencrypt].each do |domain|
expect(PagesDomainVerificationWorker).not_to receive(:perform_async).with(domain.id)
expect(PagesDomainSslRenewalWorker).not_to receive(:perform_async).with(domain.id)
end
 
worker.perform
end
 
it_behaves_like 'a pages cronjob scheduling jobs with context', PagesDomainSslRenewalWorker do
let(:extra_domain) { create(:pages_domain, :with_project, auto_ssl_enabled: true) }
end
shared_examples 'does nothing' do
it 'does nothing' do
expect(PagesDomainSslRenewalWorker).not_to receive(:perform_async)
Loading
Loading
Loading
Loading
@@ -5,9 +5,9 @@ require 'spec_helper'
describe PagesDomainVerificationCronWorker do
subject(:worker) { described_class.new }
 
describe '#perform' do
describe '#perform', :sidekiq do
let!(:verified) { create(:pages_domain) }
let!(:reverify) { create(:pages_domain, :reverify) }
let!(:reverify) { create(:pages_domain, :reverify, :with_project) }
let!(:disabled) { create(:pages_domain, :disabled) }
 
it 'does nothing if the database is read-only' do
Loading
Loading
@@ -26,5 +26,9 @@ describe PagesDomainVerificationCronWorker do
 
worker.perform
end
it_behaves_like 'a pages cronjob scheduling jobs with context', PagesDomainVerificationWorker do
let(:extra_domain) { create(:pages_domain, :reverify, :with_project) }
end
end
end
Loading
Loading
@@ -2,13 +2,13 @@
 
require 'spec_helper'
 
describe PropagateInstanceLevelServiceWorker do
describe PropagateServiceTemplateWorker do
include ExclusiveLeaseHelpers
 
describe '#perform' do
it 'calls the propagate service with the instance level service' do
instance_level_service = PushoverService.create(
instance: true,
it 'calls the propagate service with the template' do
template = PushoverService.create(
template: true,
active: true,
properties: {
device: 'MyDevice',
Loading
Loading
@@ -18,14 +18,14 @@ describe PropagateInstanceLevelServiceWorker do
api_key: '123456789'
})
 
stub_exclusive_lease("propagate_instance_level_service_worker:#{instance_level_service.id}",
timeout: PropagateInstanceLevelServiceWorker::LEASE_TIMEOUT)
stub_exclusive_lease("propagate_service_template_worker:#{template.id}",
timeout: PropagateServiceTemplateWorker::LEASE_TIMEOUT)
 
expect(Projects::PropagateInstanceLevelService)
expect(Projects::PropagateServiceTemplate)
.to receive(:propagate)
.with(instance_level_service)
.with(template)
 
subject.perform(instance_level_service.id)
subject.perform(template.id)
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment