fix typo, added relevant spec
This commit is contained in:
parent
1028b111dc
commit
5d619ab8e5
3 changed files with 58 additions and 30 deletions
|
@ -75,7 +75,7 @@ class RemoveDotGitFromUsernames < ActiveRecord::Migration
|
|||
counter += 1
|
||||
path = "#{base}#{counter}"
|
||||
|
||||
return check_route(base, counter, path)
|
||||
return check_routes(base, counter, path)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
# encoding: utf-8
|
||||
|
||||
require 'spec_helper'
|
||||
require Rails.root.join('db', 'migrate', '20161226122833_remove_dot_git_from_usernames.rb')
|
||||
|
||||
describe RemoveDotGitFromUsernames do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
describe '#up' do
|
||||
let(:migration) { described_class.new }
|
||||
|
||||
before do
|
||||
namespace = user.namespace
|
||||
namespace.path = 'test.git'
|
||||
namespace.save!(validate: false)
|
||||
|
||||
user.username = 'test.git'
|
||||
user.save!(validate: false)
|
||||
end
|
||||
|
||||
it 'renames user with .git in username' do
|
||||
migration.up
|
||||
|
||||
expect(user.reload.username).to eq('test_git')
|
||||
expect(user.namespace.reload.path).to eq('test_git')
|
||||
expect(user.namespace.route.path).to eq('test_git')
|
||||
end
|
||||
end
|
||||
end
|
57
spec/migrations/remove_dot_git_from_usernames_spec.rb
Normal file
57
spec/migrations/remove_dot_git_from_usernames_spec.rb
Normal file
|
@ -0,0 +1,57 @@
|
|||
# encoding: utf-8
|
||||
|
||||
require 'spec_helper'
|
||||
require Rails.root.join('db', 'migrate', '20161226122833_remove_dot_git_from_usernames.rb')
|
||||
|
||||
describe RemoveDotGitFromUsernames do
|
||||
let(:user) { create(:user) }
|
||||
let(:migration) { described_class.new }
|
||||
|
||||
describe '#up' do
|
||||
before do
|
||||
update_namespace(user, 'test.git')
|
||||
end
|
||||
|
||||
it 'renames user with .git in username' do
|
||||
migration.up
|
||||
|
||||
expect(user.reload.username).to eq('test_git')
|
||||
expect(user.namespace.reload.path).to eq('test_git')
|
||||
expect(user.namespace.route.path).to eq('test_git')
|
||||
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
|
Loading…
Reference in a new issue