summaryrefslogtreecommitdiff
path: root/spec/helpers/projects_helper_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/helpers/projects_helper_spec.rb')
-rw-r--r--spec/helpers/projects_helper_spec.rb47
1 files changed, 40 insertions, 7 deletions
diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb
index 4e072f02ae0..a3d0673f1b3 100644
--- a/spec/helpers/projects_helper_spec.rb
+++ b/spec/helpers/projects_helper_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe ProjectsHelper do
+RSpec.describe ProjectsHelper do
include ProjectForksHelper
let_it_be(:project) { create(:project) }
@@ -444,8 +444,8 @@ describe ProjectsHelper do
end
describe '#get_project_nav_tabs' do
+ let_it_be(:user) { create(:user) }
let(:project) { create(:project) }
- let(:user) { create(:user) }
before do
allow(helper).to receive(:can?) { true }
@@ -501,6 +501,20 @@ describe ProjectsHelper do
is_expected.not_to include(:external_wiki)
end
end
+
+ context 'when project has confluence enabled' do
+ before do
+ allow(project).to receive(:has_confluence?).and_return(true)
+ end
+
+ it { is_expected.to include(:confluence) }
+ it { is_expected.not_to include(:wiki) }
+ end
+
+ context 'when project does not have confluence enabled' do
+ it { is_expected.not_to include(:confluence) }
+ it { is_expected.to include(:wiki) }
+ end
end
describe '#can_view_operations_tab?' do
@@ -977,19 +991,32 @@ describe ProjectsHelper do
end
end
- describe '#project_license_name(project)' do
+ describe '#project_license_name(project)', :request_store do
let_it_be(:project) { create(:project) }
let_it_be(:repository) { project.repository }
subject { project_license_name(project) }
+ def license_name
+ project_license_name(project)
+ end
+
context 'gitaly is working appropriately' do
- it 'returns the license name' do
- license = Licensee::License.new('mit')
- allow(repository).to receive(:license).and_return(license)
+ let(:license) { Licensee::License.new('mit') }
+ before do
+ expect(repository).to receive(:license).and_return(license)
+ end
+
+ it 'returns the license name' do
expect(subject).to eq(license.name)
end
+
+ it 'memoizes the value' do
+ expect do
+ 2.times { expect(license_name).to eq(license.name) }
+ end.to change { Gitlab::GitalyClient.get_request_count }.by_at_most(1)
+ end
end
context 'gitaly is unreachable' do
@@ -1003,10 +1030,16 @@ describe ProjectsHelper do
subject
end
+
+ it 'memoizes the nil value' do
+ expect do
+ 2.times { expect(license_name).to be_nil }
+ end.to change { Gitlab::GitalyClient.get_request_count }.by_at_most(1)
+ end
end
before do
- allow(repository).to receive(:license).and_raise(exception)
+ expect(repository).to receive(:license).and_raise(exception)
end
context "Gitlab::Git::CommandError" do