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:
Diffstat (limited to 'spec/support/shared_examples/lib/gitlab')
-rw-r--r--spec/support/shared_examples/lib/gitlab/database/background_migration_job_shared_examples.rb4
-rw-r--r--spec/support/shared_examples/lib/gitlab/usage_data_counters/usage_counter_shared_examples.rb40
2 files changed, 42 insertions, 2 deletions
diff --git a/spec/support/shared_examples/lib/gitlab/database/background_migration_job_shared_examples.rb b/spec/support/shared_examples/lib/gitlab/database/background_migration_job_shared_examples.rb
index 213f084be17..771ab89972c 100644
--- a/spec/support/shared_examples/lib/gitlab/database/background_migration_job_shared_examples.rb
+++ b/spec/support/shared_examples/lib/gitlab/database/background_migration_job_shared_examples.rb
@@ -2,7 +2,7 @@
RSpec.shared_examples 'marks background migration job records' do
it 'marks each job record as succeeded after processing' do
- create(:background_migration_job, class_name: "::#{described_class.name}",
+ create(:background_migration_job, class_name: "::#{described_class.name.demodulize}",
arguments: arguments)
expect(::Gitlab::Database::BackgroundMigrationJob).to receive(:mark_all_as_succeeded).and_call_original
@@ -13,7 +13,7 @@ RSpec.shared_examples 'marks background migration job records' do
end
it 'returns the number of job records marked as succeeded' do
- create(:background_migration_job, class_name: "::#{described_class.name}",
+ create(:background_migration_job, class_name: "::#{described_class.name.demodulize}",
arguments: arguments)
jobs_updated = subject.perform(*arguments)
diff --git a/spec/support/shared_examples/lib/gitlab/usage_data_counters/usage_counter_shared_examples.rb b/spec/support/shared_examples/lib/gitlab/usage_data_counters/usage_counter_shared_examples.rb
new file mode 100644
index 00000000000..848437577d7
--- /dev/null
+++ b/spec/support/shared_examples/lib/gitlab/usage_data_counters/usage_counter_shared_examples.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+RSpec.shared_examples 'a usage counter' do
+ describe '.increment' do
+ let(:project_id) { 12 }
+
+ it 'intializes and increments the counter for the project by 1' do
+ expect do
+ described_class.increment(project_id)
+ end.to change { described_class.usage_totals[project_id] }.from(nil).to(1)
+ end
+ end
+
+ describe '.usage_totals' do
+ let(:usage_totals) { described_class.usage_totals }
+
+ context 'when the feature has not been used' do
+ it 'returns the total counts and counts per project' do
+ expect(usage_totals.keys).to eq([:total])
+ expect(usage_totals[:total]).to eq(0)
+ end
+ end
+
+ context 'when the feature has been used in multiple projects' do
+ let(:project1_id) { 12 }
+ let(:project2_id) { 16 }
+
+ before do
+ described_class.increment(project1_id)
+ described_class.increment(project2_id)
+ end
+
+ it 'returns the total counts and counts per project' do
+ expect(usage_totals[project1_id]).to eq(1)
+ expect(usage_totals[project2_id]).to eq(1)
+ expect(usage_totals[:total]).to eq(2)
+ end
+ end
+ end
+end