Files
gitlab-foss/spec/tasks/gitlab/db/decomposition/migrate_rake_spec.rb
2023-11-30 18:11:38 +00:00

40 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'gitlab:db:decomposition:migrate', feature_category: :cell do
before(:all) do
skip_if_database_exists(:ci)
Rake.application.rake_require 'tasks/gitlab/db/decomposition/migrate'
end
subject(:migrate_task) { run_rake_task('gitlab:db:decomposition:migrate') }
before do
allow_next_instance_of(Gitlab::Database::Decomposition::Migrate) do |instance|
allow(instance).to receive(:process!)
end
end
it 'calls Gitlab::Database::Decomposition::Migrate#process!' do
expect_next_instance_of(Gitlab::Database::Decomposition::Migrate) do |instance|
expect(instance).to receive(:process!)
end
migrate_task
end
context 'when a Gitlab::Database::Decomposition::Migrate::Error is raised' do
before do
allow_next_instance_of(Gitlab::Database::Decomposition::Migrate) do |instance|
allow(instance).to receive(:process!).and_raise(Gitlab::Database::Decomposition::MigrateError, 'some error')
end
end
it 'renders error' do
expect { migrate_task }.to output("some error\n").to_stdout.and raise_error(SystemExit)
end
end
end