diff options
author | James Lopez <james@jameslopez.es> | 2017-01-16 16:11:50 +0100 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2017-01-16 16:11:50 +0100 |
commit | 5d619ab8e598667cdfbdb5aba23eb4a63dd50af7 (patch) | |
tree | c5ed0874ddf3f554326c9132efe6ac22fc9e204f /spec/migrations/remove_dot_git_from_usernames_spec.rb | |
parent | 1028b111dccada6963c6596f8330b202842dd1f5 (diff) | |
download | gitlab-ce-5d619ab8e598667cdfbdb5aba23eb4a63dd50af7.tar.gz |
fix typo, added relevant specfix/rc-migration-typo
Diffstat (limited to 'spec/migrations/remove_dot_git_from_usernames_spec.rb')
-rw-r--r-- | spec/migrations/remove_dot_git_from_usernames_spec.rb | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/spec/migrations/remove_dot_git_from_usernames_spec.rb b/spec/migrations/remove_dot_git_from_usernames_spec.rb new file mode 100644 index 00000000000..8737e00eaeb --- /dev/null +++ b/spec/migrations/remove_dot_git_from_usernames_spec.rb @@ -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 |