Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /spec/lib/generators
parente570267f2f6b326480d284e0164a6464ba4081bc (diff)
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'spec/lib/generators')
-rw-r--r--spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb68
-rw-r--r--spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb27
-rw-r--r--spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb27
3 files changed, 117 insertions, 5 deletions
diff --git a/spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb b/spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb
new file mode 100644
index 00000000000..25c4001a192
--- /dev/null
+++ b/spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb
@@ -0,0 +1,68 @@
+# frozen_string_literal: true
+
+require 'generator_helper'
+
+RSpec.describe Gitlab::SnowplowEventDefinitionGenerator do
+ let(:ce_temp_dir) { Dir.mktmpdir }
+ let(:ee_temp_dir) { Dir.mktmpdir }
+ let(:generator_options) { { 'category' => 'Groups::EmailCampaignsController', 'action' => 'click' } }
+
+ before do
+ stub_const("#{described_class}::CE_DIR", ce_temp_dir)
+ stub_const("#{described_class}::EE_DIR", ee_temp_dir)
+ end
+
+ after do
+ FileUtils.rm_rf([ce_temp_dir, ee_temp_dir])
+ end
+
+ describe 'Creating event definition file' do
+ before do
+ stub_const('Gitlab::VERSION', '13.11.0-pre')
+ end
+
+ let(:sample_event_dir) { 'lib/generators/gitlab/snowplow_event_definition_generator' }
+
+ it 'creates CE event definition file using the template' do
+ sample_event = ::Gitlab::Config::Loader::Yaml.new(fixture_file(File.join(sample_event_dir, 'sample_event.yml'))).load_raw!
+
+ described_class.new([], generator_options).invoke_all
+
+ event_definition_path = File.join(ce_temp_dir, 'groups__email_campaigns_controller_click.yml')
+ expect(::Gitlab::Config::Loader::Yaml.new(File.read(event_definition_path)).load_raw!).to eq(sample_event)
+ end
+
+ context 'event definition already exists' do
+ before do
+ stub_const('Gitlab::VERSION', '12.11.0-pre')
+ described_class.new([], generator_options).invoke_all
+ end
+
+ it 'overwrites event definition --force flag set to true' do
+ sample_event = ::Gitlab::Config::Loader::Yaml.new(fixture_file(File.join(sample_event_dir, 'sample_event.yml'))).load_raw!
+
+ stub_const('Gitlab::VERSION', '13.11.0-pre')
+ described_class.new([], generator_options.merge('force' => true)).invoke_all
+
+ event_definition_path = File.join(ce_temp_dir, 'groups__email_campaigns_controller_click.yml')
+ event_data = ::Gitlab::Config::Loader::Yaml.new(File.read(event_definition_path)).load_raw!
+
+ expect(event_data).to eq(sample_event)
+ end
+
+ it 'raises error when --force flag set to false' do
+ expect { described_class.new([], generator_options.merge('force' => false)).invoke_all }
+ .to raise_error(StandardError, /Event definition already exists at/)
+ end
+ end
+
+ it 'creates EE event definition file using the template' do
+ sample_event = ::Gitlab::Config::Loader::Yaml.new(fixture_file(File.join(sample_event_dir, 'sample_event_ee.yml'))).load_raw!
+
+ described_class.new([], generator_options.merge('ee' => true)).invoke_all
+
+ event_definition_path = File.join(ee_temp_dir, 'groups__email_campaigns_controller_click.yml')
+ expect(::Gitlab::Config::Loader::Yaml.new(File.read(event_definition_path)).load_raw!).to eq(sample_event)
+ end
+ end
+end
diff --git a/spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb b/spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb
index 021fb8f5f58..95a577e6334 100644
--- a/spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb
+++ b/spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb
@@ -18,6 +18,10 @@ RSpec.describe Gitlab::UsageMetricDefinition::RedisHllGenerator do
stub_prometheus_queries
end
+ after do
+ FileUtils.rm_rf(temp_dir)
+ end
+
it 'creates metric definition files' do
described_class.new(args).invoke_all
@@ -27,4 +31,27 @@ RSpec.describe Gitlab::UsageMetricDefinition::RedisHllGenerator do
expect(YAML.safe_load(File.read(weekly_metric_definition_path))).to include("key_path" => "redis_hll_counters.test_category.i_test_event_weekly")
expect(YAML.safe_load(File.read(monthly_metric_definition_path))).to include("key_path" => "redis_hll_counters.test_category.i_test_event_monthly")
end
+
+ context 'with ee option' do
+ let(:weekly_metric_definition_path) { Dir.glob(File.join(temp_dir, 'ee/config/metrics/counts_7d/*i_test_event_weekly.yml')).first }
+ let(:monthly_metric_definition_path) { Dir.glob(File.join(temp_dir, 'ee/config/metrics/counts_28d/*i_test_event_monthly.yml')).first }
+
+ let(:weekly_metric_definition) { YAML.safe_load(File.read(weekly_metric_definition_path)) }
+ let(:monthly_metric_definition) { YAML.safe_load(File.read(monthly_metric_definition_path)) }
+
+ before do
+ stub_const("#{Gitlab::UsageMetricDefinitionGenerator}::TOP_LEVEL_DIR", 'config')
+ stub_const("#{Gitlab::UsageMetricDefinitionGenerator}::TOP_LEVEL_DIR_EE", File.join(temp_dir, 'ee'))
+ end
+
+ it 'creates metric definition files' do
+ described_class.new(args, { 'ee': true }).invoke_all
+
+ expect(weekly_metric_definition).to include("key_path" => "redis_hll_counters.test_category.i_test_event_weekly")
+ expect(weekly_metric_definition["distribution"]).to include('ee')
+
+ expect(monthly_metric_definition).to include("key_path" => "redis_hll_counters.test_category.i_test_event_monthly")
+ expect(monthly_metric_definition["distribution"]).to include('ee')
+ end
+ end
end
diff --git a/spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb b/spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb
index f8c055ae111..74aaf34e82c 100644
--- a/spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb
+++ b/spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb
@@ -20,20 +20,37 @@ RSpec.describe Gitlab::UsageMetricDefinitionGenerator do
end
describe 'Creating metric definition file' do
+ let(:sample_metric) { load_sample_metric_definition(filename: sample_filename) }
+
# Stub version so that `milestone` key remains constant between releases to prevent flakiness.
before do
stub_const('Gitlab::VERSION', '13.9.0')
allow(::Gitlab::Usage::Metrics::NamesSuggestions::Generator).to receive(:generate).and_return('test metric name')
end
- let(:sample_metric) { load_sample_metric_definition(filename: 'sample_metric_with_name_suggestions.yml') }
+ context 'without ee option' do
+ let(:sample_filename) { 'sample_metric_with_name_suggestions.yml' }
+ let(:metric_definition_path) { Dir.glob(File.join(temp_dir, 'metrics/counts_7d/*_test_metric.yml')).first }
- it 'creates a metric definition file using the template' do
- described_class.new([key_path], { 'dir' => dir }).invoke_all
+ it 'creates a metric definition file using the template' do
+ described_class.new([key_path], { 'dir' => dir }).invoke_all
+ expect(YAML.safe_load(File.read(metric_definition_path))).to eq(sample_metric)
+ end
+ end
- metric_definition_path = Dir.glob(File.join(temp_dir, 'metrics/counts_7d/*_test_metric.yml')).first
+ context 'with ee option' do
+ let(:sample_filename) { 'sample_metric_with_ee.yml' }
+ let(:metric_definition_path) { Dir.glob(File.join(temp_dir, 'ee/config/metrics/counts_7d/*_test_metric.yml')).first }
- expect(YAML.safe_load(File.read(metric_definition_path))).to eq(sample_metric)
+ before do
+ stub_const("#{described_class}::TOP_LEVEL_DIR", 'config')
+ stub_const("#{described_class}::TOP_LEVEL_DIR_EE", File.join(temp_dir, 'ee'))
+ end
+
+ it 'creates a metric definition file using the template' do
+ described_class.new([key_path], { 'dir' => dir, 'ee': true }).invoke_all
+ expect(YAML.safe_load(File.read(metric_definition_path))).to eq(sample_metric)
+ end
end
end