47 lines
1.5 KiB
Ruby
47 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
require Rails.root.join('db', 'post_migrate', '20210430134202_copy_adoption_snapshot_namespace.rb')
|
|
|
|
RSpec.describe CopyAdoptionSnapshotNamespace, :migration do
|
|
let(:namespaces_table) { table(:namespaces) }
|
|
let(:segments_table) { table(:analytics_devops_adoption_segments) }
|
|
let(:snapshots_table) { table(:analytics_devops_adoption_snapshots) }
|
|
|
|
before do
|
|
namespaces_table.create!(id: 123, name: 'group1', path: 'group1')
|
|
namespaces_table.create!(id: 124, name: 'group2', path: 'group2')
|
|
|
|
segments_table.create!(id: 1, namespace_id: 123)
|
|
segments_table.create!(id: 2, namespace_id: 124)
|
|
|
|
create_snapshot(id: 1, segment_id: 1)
|
|
create_snapshot(id: 2, segment_id: 2)
|
|
create_snapshot(id: 3, segment_id: 2, namespace_id: 123)
|
|
end
|
|
|
|
it 'updates all snapshots without namespace set' do
|
|
migrate!
|
|
|
|
expect(snapshots_table.find(1).namespace_id).to eq 123
|
|
expect(snapshots_table.find(2).namespace_id).to eq 124
|
|
expect(snapshots_table.find(3).namespace_id).to eq 123
|
|
end
|
|
|
|
def create_snapshot(**additional_params)
|
|
defaults = {
|
|
recorded_at: Time.zone.now,
|
|
issue_opened: true,
|
|
merge_request_opened: true,
|
|
merge_request_approved: true,
|
|
runner_configured: true,
|
|
pipeline_succeeded: true,
|
|
deploy_succeeded: true,
|
|
security_scan_succeeded: true,
|
|
end_time: Time.zone.now.end_of_month
|
|
}
|
|
|
|
snapshots_table.create!(defaults.merge(additional_params))
|
|
end
|
|
end
|