diff options
author | Gabriel Mazetto <brodock@gmail.com> | 2018-07-05 17:46:10 +0200 |
---|---|---|
committer | Gabriel Mazetto <brodock@gmail.com> | 2018-07-24 18:44:07 +0200 |
commit | c084e87ad7be45f39a79347b306f03f618705049 (patch) | |
tree | c6825ff5b5de1922d9d1ac042045a77a73c89b4a /spec/models/project_feature_spec.rb | |
parent | 08d7ee65e7a16d6898d61758bffc70899b574065 (diff) | |
download | gitlab-ce-c084e87ad7be45f39a79347b306f03f618705049.tar.gz |
Added SiteStatistics as counter cache for Projects and Wikis
Diffstat (limited to 'spec/models/project_feature_spec.rb')
-rw-r--r-- | spec/models/project_feature_spec.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/models/project_feature_spec.rb b/spec/models/project_feature_spec.rb index cd7f77024da..10617edec0f 100644 --- a/spec/models/project_feature_spec.rb +++ b/spec/models/project_feature_spec.rb @@ -119,4 +119,46 @@ describe ProjectFeature do end end end + + context 'Site Statistics' do + set(:project_with_wiki) { create(:project, :wiki_enabled) } + set(:project_without_wiki) { create(:project, :wiki_disabled) } + + context 'when creating a project' do + it 'tracks wiki availability when wikis are enabled by default' do + expect { create(:project) }.to change { SiteStatistic.fetch.wikis_count }.by(1) + end + + it 'does not track wiki availability when wikis are disabled by default' do + expect { create(:project, :wiki_disabled) }.not_to change { SiteStatistic.fetch.wikis_count } + end + end + + context 'when updating a project_feature' do + it 'untracks wiki availability when disabling wiki access' do + expect { project_with_wiki.project_feature.update_attribute(:wiki_access_level, ProjectFeature::DISABLED) } + .to change { SiteStatistic.fetch.wikis_count }.by(-1) + end + + it 'tracks again wiki availability when re-enabling wiki access as public' do + expect { project_without_wiki.project_feature.update_attribute(:wiki_access_level, ProjectFeature::ENABLED) } + .to change { SiteStatistic.fetch.wikis_count }.by(1) + end + + it 'tracks again wiki availability when re-enabling wiki access as private' do + expect { project_without_wiki.project_feature.update_attribute(:wiki_access_level, ProjectFeature::PRIVATE) } + .to change { SiteStatistic.fetch.wikis_count }.by(1) + end + end + + context 'when removing a project' do + it 'untracks wiki availability when removing a project with previous wiki access' do + expect { project_with_wiki.destroy }.to change { SiteStatistic.fetch.wikis_count }.by(-1) + end + + it 'does not untrack wiki availability when removing a project without wiki access' do + expect { project_without_wiki.destroy }.not_to change { SiteStatistic.fetch.wikis_count } + end + end + end end |