gitlab-org--gitlab-foss/spec/migrations/rename_reserved_project_names_spec.rb

46 lines
1.1 KiB
Ruby
Raw Normal View History

# encoding: utf-8
require 'spec_helper'
require Rails.root.join('db', 'post_migrate', '20161221153951_rename_reserved_project_names.rb')
describe RenameReservedProjectNames do
let(:migration) { described_class.new }
let!(:project) { create(:project) }
before do
project.path = 'projects'
project.save!(validate: false)
allow(Thread).to receive(:new).and_yield
end
describe '#up' do
context 'when project repository exists' do
before { project.create_repository }
context 'when no exception is raised' do
it 'renames project with reserved names' do
migration.up
expect(project.reload.path).to eq('projects0')
end
end
context 'when exception is raised during rename' do
before do
allow(project).to receive(:rename_repo).and_raise(StandardError)
end
it 'captures exception from project rename' do
expect { migration.up }.not_to raise_error
end
end
end
context 'when project repository does not exist' do
it 'does not raise error' do
expect { migration.up }.not_to raise_error
end
end
end
end