diff options
Diffstat (limited to 'spec/migrations/remove_invalid_integrations_spec.rb')
-rw-r--r-- | spec/migrations/remove_invalid_integrations_spec.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/migrations/remove_invalid_integrations_spec.rb b/spec/migrations/remove_invalid_integrations_spec.rb new file mode 100644 index 00000000000..cab2d79998e --- /dev/null +++ b/spec/migrations/remove_invalid_integrations_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe RemoveInvalidIntegrations, :migration do + describe '#up' do + let!(:integrations) { table(:integrations) } + + let!(:valid_integration) { integrations.create!(type_new: 'Foo') } + let!(:invalid_integration) { integrations.create! } + + it 'removes invalid integrations', :aggregate_failures do + expect { migrate! } + .to change { integrations.pluck(:id) }.to(contain_exactly(valid_integration.id)) + end + + context 'when there are many invalid integrations' do + before do + stub_const('RemoveInvalidIntegrations::BATCH_SIZE', 3) + 5.times { integrations.create! } + end + + it 'removes them all' do + migrate! + + expect(integrations.pluck(:type_new)).to all(be_present) + end + end + end +end |