Commit 0ff88ac5 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'fix/rc-migration-typo' into 'master'

Yet another dot git migration fix

See merge request !8592
parents fb3dc55b 5d619ab8
...@@ -75,7 +75,7 @@ class RemoveDotGitFromUsernames < ActiveRecord::Migration ...@@ -75,7 +75,7 @@ class RemoveDotGitFromUsernames < ActiveRecord::Migration
counter += 1 counter += 1
path = "#{base}#{counter}" path = "#{base}#{counter}"
return check_route(base, counter, path) return check_routes(base, counter, path)
end end
end end
......
...@@ -5,17 +5,11 @@ require Rails.root.join('db', 'migrate', '20161226122833_remove_dot_git_from_use ...@@ -5,17 +5,11 @@ require Rails.root.join('db', 'migrate', '20161226122833_remove_dot_git_from_use
describe RemoveDotGitFromUsernames do describe RemoveDotGitFromUsernames do
let(:user) { create(:user) } let(:user) { create(:user) }
describe '#up' do
let(:migration) { described_class.new } let(:migration) { described_class.new }
describe '#up' do
before do before do
namespace = user.namespace update_namespace(user, 'test.git')
namespace.path = 'test.git'
namespace.save!(validate: false)
user.username = 'test.git'
user.save!(validate: false)
end end
it 'renames user with .git in username' do it 'renames user with .git in username' do
...@@ -26,4 +20,38 @@ describe RemoveDotGitFromUsernames do ...@@ -26,4 +20,38 @@ describe RemoveDotGitFromUsernames do
expect(user.namespace.route.path).to eq('test_git') expect(user.namespace.route.path).to eq('test_git')
end end
end end
context 'when new path exists already' do
describe '#up' do
let(:user2) { create(:user) }
before do
update_namespace(user, 'test.git')
update_namespace(user2, 'test_git')
storages = { 'default' => 'tmp/tests/custom_repositories' }
allow(Gitlab.config.repositories).to receive(:storages).and_return(storages)
allow(migration).to receive(:route_exists?).with('test_git').and_return(true)
allow(migration).to receive(:route_exists?).with('test_git1').and_return(false)
end
it 'renames user with .git in username' do
migration.up
expect(user.reload.username).to eq('test_git1')
expect(user.namespace.reload.path).to eq('test_git1')
expect(user.namespace.route.path).to eq('test_git1')
end
end
end
def update_namespace(user, path)
namespace = user.namespace
namespace.path = path
namespace.save!(validate: false)
user.username = path
user.save!(validate: false)
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment