summaryrefslogtreecommitdiff
path: root/spec/migrations/migrate_remaining_mr_metrics_populating_background_migration_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/migrations/migrate_remaining_mr_metrics_populating_background_migration_spec.rb')
-rw-r--r--spec/migrations/migrate_remaining_mr_metrics_populating_background_migration_spec.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/migrations/migrate_remaining_mr_metrics_populating_background_migration_spec.rb b/spec/migrations/migrate_remaining_mr_metrics_populating_background_migration_spec.rb
new file mode 100644
index 00000000000..b948be35927
--- /dev/null
+++ b/spec/migrations/migrate_remaining_mr_metrics_populating_background_migration_spec.rb
@@ -0,0 +1,25 @@
+require 'spec_helper'
+require Rails.root.join('db', 'migrate', '20180521162137_migrate_remaining_mr_metrics_populating_background_migration.rb')
+
+describe MigrateRemainingMrMetricsPopulatingBackgroundMigration, :migration, :sidekiq, :redis do
+ let(:mr_with_event) { create(:merge_request) }
+ let!(:merged_event) { create(:event, :merged, target: mr_with_event) }
+ let!(:closed_event) { create(:event, :closed, target: mr_with_event) }
+
+ before do
+ # Make sure no metrics are created and kept through after_* callbacks.
+ mr_with_event.metrics.destroy!
+ end
+
+ # This is mainly an integration test. PopulateMergeRequestMetricsWithEventsData worker
+ # already has exclusive unit tests.
+ it 'migrates remaining MRs without metrics' do
+ migrate!
+
+ mr_with_event.reload
+
+ expect(mr_with_event.metrics).to have_attributes(latest_closed_by_id: closed_event.author_id,
+ merged_by_id: merged_event.author_id)
+ expect(mr_with_event.metrics.latest_closed_at.to_s).to eq(closed_event.updated_at.to_s)
+ end
+end