Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2018-09-10 22:12:49 +0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2018-09-10 22:12:49 +0300
commit8850fb9d671635178c2ef307dcf8df083a7285d6 (patch)
treed2a64514195199e04386499bf4c843888b43b96e /spec/models/project_spec.rb
parent7f0a346ecd48e814eb44741ff30edf5eda3413b8 (diff)
Synchronize the default branch when updating a remote mirror
Diffstat (limited to 'spec/models/project_spec.rb')
-rw-r--r--spec/models/project_spec.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index cb844cd2102..dfe2de71a76 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -3983,6 +3983,40 @@ describe Project do
end
end
+ describe '#update_root_ref' do
+ let(:project) { create(:project, :repository) }
+
+ it 'updates the default branch when HEAD has changed' do
+ stub_find_remote_root_ref(project, ref: 'feature')
+
+ expect { project.update_root_ref('origin') }
+ .to change { project.default_branch }
+ .from('master')
+ .to('feature')
+ end
+
+ it 'does not update the default branch when HEAD does not change' do
+ stub_find_remote_root_ref(project, ref: 'master')
+
+ expect { project.update_root_ref('origin') }
+ .not_to change { project.default_branch }
+ end
+
+ it 'does not update the default branch when HEAD does not exist' do
+ stub_find_remote_root_ref(project, ref: 'foo')
+
+ expect { project.update_root_ref('origin') }
+ .not_to change { project.default_branch }
+ end
+
+ def stub_find_remote_root_ref(project, ref:)
+ allow(project.repository)
+ .to receive(:find_remote_root_ref)
+ .with('origin')
+ .and_return(ref)
+ end
+ end
+
def rugged_config
Gitlab::GitalyClient::StorageSettings.allow_disk_access do
project.repository.rugged.config