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.rb48
1 files changed, 48 insertions, 0 deletions
diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb
index 24d908a5dd3..1cf36fd69cf 100644
--- a/spec/helpers/projects_helper_spec.rb
+++ b/spec/helpers/projects_helper_spec.rb
@@ -1000,6 +1000,54 @@ RSpec.describe ProjectsHelper do
end
end
+ context 'fork security helpers' do
+ using RSpec::Parameterized::TableSyntax
+
+ describe "#able_to_see_merge_requests?" do
+ subject { helper.able_to_see_merge_requests?(project, user) }
+
+ where(:can_read_merge_request, :merge_requests_enabled, :expected) do
+ false | false | false
+ true | false | false
+ false | true | false
+ true | true | true
+ end
+
+ with_them do
+ before do
+ allow(project).to receive(:merge_requests_enabled?).and_return(merge_requests_enabled)
+ allow(helper).to receive(:can?).with(user, :read_merge_request, project).and_return(can_read_merge_request)
+ end
+
+ it 'returns the correct response' do
+ expect(subject).to eq(expected)
+ end
+ end
+ end
+
+ describe "#able_to_see_issues?" do
+ subject { helper.able_to_see_issues?(project, user) }
+
+ where(:can_read_issues, :issues_enabled, :expected) do
+ false | false | false
+ true | false | false
+ false | true | false
+ true | true | true
+ end
+
+ with_them do
+ before do
+ allow(project).to receive(:issues_enabled?).and_return(issues_enabled)
+ allow(helper).to receive(:can?).with(user, :read_issue, project).and_return(can_read_issues)
+ end
+
+ it 'returns the correct response' do
+ expect(subject).to eq(expected)
+ end
+ end
+ end
+ end
+
describe '#fork_button_disabled_tooltip' do
using RSpec::Parameterized::TableSyntax