diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-02-20 22:54:16 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-02-21 23:06:44 +0300 |
commit | 20b3be6e24c1ce160fab6595958ea3f40efdec20 (patch) | |
tree | 797f32183c362861d3251270bd537893cacf0047 | |
parent | 3d83a06356735e3e3e71e35be46bf0d8a2eeda49 (diff) |
Merge branch 'flush-cache-web-editor' into 'master'
Flush emptiness caches whenever needed
See merge request !2903
-rw-r--r-- | app/models/repository.rb | 4 | ||||
-rw-r--r-- | spec/models/repository_spec.rb | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb index be30a3b0906..e050bd45254 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -239,6 +239,10 @@ class Repository end expire_branch_cache(branch_name) + + # This ensures this particular cache is flushed after the first commit to a + # new repository. + expire_emptiness_caches if empty? end # Expires _all_ caches, including those that would normally only be expired diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index 9242f755449..b596782f4e1 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -361,6 +361,20 @@ describe Repository, models: true do repository.expire_cache('master') end + + it 'expires the emptiness cache for an empty repository' do + expect(repository).to receive(:empty?).and_return(true) + expect(repository).to receive(:expire_emptiness_caches) + + repository.expire_cache + end + + it 'does not expire the emptiness cache for a non-empty repository' do + expect(repository).to receive(:empty?).and_return(false) + expect(repository).to_not receive(:expire_emptiness_caches) + + repository.expire_cache + end end describe '#expire_root_ref_cache' do |