summaryrefslogtreecommitdiff
path: root/spec/models/repository_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/repository_spec.rb')
-rw-r--r--spec/models/repository_spec.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index b6f09babb4b..c896b6c0c6c 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -2138,6 +2138,12 @@ RSpec.describe Repository do
repository.after_change_head
end
+
+ it 'calls after_repository_change_head on container' do
+ expect(repository.container).to receive(:after_repository_change_head)
+
+ repository.after_change_head
+ end
end
describe '#expires_caches_for_tags' do
@@ -3261,4 +3267,30 @@ RSpec.describe Repository do
settings.save!
end
end
+
+ describe '#change_head' do
+ let(:branch) { repository.container.default_branch }
+
+ it 'adds an error to container if branch does not exist' do
+ expect(repository.change_head('unexisted-branch')).to be false
+ expect(repository.container.errors.size).to eq(1)
+ end
+
+ it 'calls the before_change_head and after_change_head methods' do
+ expect(repository).to receive(:before_change_head)
+ expect(repository).to receive(:after_change_head)
+
+ repository.change_head(branch)
+ end
+
+ it 'copies the gitattributes' do
+ expect(repository).to receive(:copy_gitattributes).with(branch)
+ repository.change_head(branch)
+ end
+
+ it 'reloads the default branch' do
+ expect(repository.container).to receive(:reload_default_branch)
+ repository.change_head(branch)
+ end
+ end
end