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 | |
parent | 1028b111dccada6963c6596f8330b202842dd1f5 (diff) | |
download | gitlab-ce-5d619ab8e598667cdfbdb5aba23eb4a63dd50af7.tar.gz |
fix typo, added relevant specfix/rc-migration-typo
Diffstat (limited to 'spec/migrations')
-rw-r--r-- | spec/migrations/remove_dot_git_from_usernames.rb | 29 | ||||
-rw-r--r-- | spec/migrations/remove_dot_git_from_usernames_spec.rb | 57 |
2 files changed, 57 insertions, 29 deletions
diff --git a/spec/migrations/remove_dot_git_from_usernames.rb b/spec/migrations/remove_dot_git_from_usernames.rb deleted file mode 100644 index 1b1d2adc463..00000000000 --- a/spec/migrations/remove_dot_git_from_usernames.rb +++ /dev/null @@ -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 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 |