omnibus-gitlab/spec/chef/cookbooks/gitlab/recipes/gitlab-rails/gitlab_yml/cron_jobs_spec.rb

73 lines
4.8 KiB
Ruby

require 'chef_helper'
RSpec.describe 'gitlab::gitlab-rails' do
include_context 'gitlab-rails'
describe 'cron settings' do
context 'with default values' do
it "renders gitlab.yml without any cron settings" do
expect(gitlab_yml[:production][:cron_jobs]).to be nil
end
end
context 'with user specified values' do
using RSpec::Parameterized::TableSyntax
where(:gitlab_yml_setting, :gitlab_rb_setting) do
'admin_email_worker' | 'admin_email_worker_cron'
'analytics_devops_adoption_create_all_snapshots_worker' | 'analytics_devops_adoption_create_all_snapshots_worker'
'analytics_usage_trends_count_job_trigger_worker' | 'analytics_usage_trends_count_job_trigger_worker_cron'
'ci_archive_traces_cron_worker' | 'ci_archive_traces_cron_worker_cron'
'ci_platform_metrics_update_cron_worker' | 'ci_platform_metrics_update_cron_worker'
'elastic_index_bulk_cron_worker' | 'elastic_index_bulk_cron'
'environments_auto_stop_cron_worker' | 'environments_auto_stop_cron_worker_cron'
'expire_build_artifacts_worker' | 'expire_build_artifacts_worker_cron'
'geo_file_download_dispatch_worker' | 'geo_file_download_dispatch_worker_cron'
'geo_migrated_local_files_clean_up_worker' | 'geo_migrated_local_files_clean_up_worker_cron'
'geo_prune_event_log_worker' | 'geo_prune_event_log_worker_cron'
'geo_repository_sync_worker' | 'geo_repository_sync_worker_cron'
'geo_repository_verification_primary_batch_worker' | 'geo_repository_verification_primary_batch_worker_cron'
'geo_repository_verification_secondary_scheduler_worker' | 'geo_repository_verification_secondary_scheduler_worker_cron'
'geo_secondary_registry_consistency_worker' | 'geo_secondary_registry_consistency_worker'
'geo_secondary_usage_data_cron_worker' | 'geo_secondary_usage_data_cron_worker'
'historical_data_worker' | 'historical_data_worker_cron'
'ldap_group_sync_worker' | 'ldap_group_sync_worker_cron'
'ldap_sync_worker' | 'ldap_sync_worker_cron'
'member_invitation_reminder_emails_worker' | 'member_invitation_reminder_emails_worker_cron'
'pages_domain_removal_cron_worker' | 'pages_domain_removal_cron_worker'
'pages_domain_ssl_renewal_cron_worker' | 'pages_domain_ssl_renewal_cron_worker'
'pages_domain_verification_cron_worker' | 'pages_domain_verification_cron_worker'
'personal_access_tokens_expired_notification_worker' | 'personal_access_tokens_expired_notification_worker_cron'
'personal_access_tokens_expiring_worker' | 'personal_access_tokens_expiring_worker_cron'
'pipeline_schedule_worker' | 'pipeline_schedule_worker_cron'
'pseudonymizer_worker' | 'pseudonymizer_worker_cron'
'remove_unaccepted_member_invites_worker' | 'remove_unaccepted_member_invites_cron_worker'
'repository_archive_cache_worker' | 'repository_archive_cache_worker_cron'
'repository_check_worker' | 'repository_check_worker_cron'
'schedule_migrate_external_diffs_worker' | 'schedule_migrate_external_diffs_worker_cron'
'stuck_ci_jobs_worker' | 'stuck_ci_jobs_worker_cron'
'user_status_cleanup_batch_worker' | 'user_status_cleanup_batch_worker_cron'
'namespaces_in_product_marketing_emails_worker' | 'namespaces_in_product_marketing_emails_worker_cron'
'ssh_keys_expired_notification_worker' | 'ssh_keys_expired_notification_worker_cron'
'ssh_keys_expiring_soon_notification_worker' | 'ssh_keys_expiring_soon_notification_worker_cron'
'loose_foreign_keys_cleanup_worker' | 'loose_foreign_keys_cleanup_worker_cron'
end
with_them do
before do
stub_gitlab_rb(
gitlab_rails: {
gitlab_rb_setting => '1 2 3 4 5'
}.transform_keys(&:to_sym)
)
end
it "renders gitlab.yml with user specified cron settings" do
config = gitlab_yml[:production][:cron_jobs][gitlab_yml_setting.to_sym][:cron]
expect(config).to eq '1 2 3 4 5'
end
end
end
end
end