mirror of
https://github.com/gitlabhq/gitlabhq.git
synced 2025-07-25 16:00:50 +00:00
56 lines
1.9 KiB
Ruby
56 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'fast_spec_helper'
|
|
require_relative '../../../scripts/database/migrate'
|
|
|
|
RSpec.describe 'Migrate', feature_category: :database do
|
|
let(:direction) { 'up' }
|
|
let(:files) { ['20231010123456_create_migration.rb'] }
|
|
|
|
subject(:migrator) { Migrate.new }
|
|
|
|
describe "#database_migration_tasks" do
|
|
context 'when multiple databases are configured' do
|
|
let(:rails_help_output) do
|
|
<<~HELP
|
|
db:migrate:up:ci # Runs the "up" for the given migration VERSION for the ci database
|
|
db:migrate:up:main # Runs the "up" for the given migration VERSION for the main database
|
|
db:migrate:up # Runs the "up" for the given migration VERSION
|
|
db:migrate:status # Display status of migrations
|
|
HELP
|
|
end
|
|
|
|
it 'returns tasks for all configured databases' do
|
|
expect(
|
|
migrator.database_migration_tasks('up', rails_help_output)
|
|
).to match_array(['db:migrate:up:ci', 'db:migrate:up:main'])
|
|
end
|
|
end
|
|
|
|
context 'when only the default database is configured' do
|
|
let(:rails_help_output) do
|
|
<<~HELP
|
|
db:migrate:up:main # Runs the "up" for the given migration VERSION
|
|
db:migrate:status # Display status of migrations
|
|
HELP
|
|
end
|
|
|
|
it 'returns only the default migration task' do
|
|
expect(migrator.database_migration_tasks('up', rails_help_output)).to match_array(['db:migrate:up:main'])
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#migrations_for_files" do
|
|
it 'returns the correct command' do
|
|
allow(migrator).to receive(:database_migration_tasks).and_return(['db:migrate:up:ci', 'db:migrate:up:main'])
|
|
|
|
expect(migrator.migrations_for_files(files, direction)).to eq(
|
|
[
|
|
'bin/rails db:migrate:up:ci db:migrate:up:main VERSION=20231010123456'
|
|
]
|
|
)
|
|
end
|
|
end
|
|
end
|