diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2016-07-20 13:59:42 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-07-20 15:43:40 +0300 |
commit | 216c759c886644923fb49da4660dadeab2526878 (patch) | |
tree | 9e6b2b57cc0e95c2bacc0972ea852bb9b4ab387a /spec | |
parent | 57e87014d2107cd196267a038e365d4b4bb13bfd (diff) |
Merge branch 'external-wiki-helper-speedup' into 'master'
speed up ExternalWikiService#get_project_wiki_path
## What does this MR do?
Speed up ExternalWikiHelper#get_project_wiki_path
## Are there points in the code the reviewer needs to double check?
## Why was this MR needed?
See issue #19886
## What are the relevant issue numbers?
#19886
## Screenshots (if relevant)
## Does this MR meet the acceptance criteria?
- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- [ ] API support added
- Tests
- [ ] Added for this feature/bug
- [ ] All builds are passing
- [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [ ] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
See merge request !5305
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/project_spec.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 9dc34276f18..e3e7319beb2 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -458,6 +458,47 @@ describe Project, models: true do end end + describe "#cache_has_external_wiki" do + let(:project) { create(:project) } + + it "stores true if there is an external wiki" do + services = double(:service, external_wikis: [ExternalWikiService.new]) + expect(project).to receive(:services).and_return(services) + + expect do + project.cache_has_external_wiki + end.to change { project.has_external_wiki }.to(true) + end + + it "stores false if there is no external wiki" do + services = double(:service, external_wikis: []) + expect(project).to receive(:services).and_return(services) + + expect do + project.cache_has_external_wiki + end.to change { project.has_external_wiki }.to(false) + end + + it "changes to true if an external wiki service is created later" do + expect do + project.cache_has_external_wiki + end.to change { project.has_external_wiki }.to(false) + + expect do + create(:service, type: "ExternalWikiService", project: project) + end.to change { project.has_external_wiki }.to(true) + end + + it "changes to false if an external wiki service is destroyed later" do + service = create(:service, type: "ExternalWikiService", project: project) + expect(project.has_external_wiki).to be_truthy + + expect do + service.destroy + end.to change { project.has_external_wiki }.to(false) + end + end + describe '#open_branches' do let(:project) { create(:project) } |