summaryrefslogtreecommitdiff
path: root/spec/policies/project_policy_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/policies/project_policy_spec.rb')
-rw-r--r--spec/policies/project_policy_spec.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/policies/project_policy_spec.rb b/spec/policies/project_policy_spec.rb
index 0d3af1f4499..385d4c587a4 100644
--- a/spec/policies/project_policy_spec.rb
+++ b/spec/policies/project_policy_spec.rb
@@ -95,6 +95,42 @@ describe ProjectPolicy, models: true do
expect(permissions).not_to include(*wiki_permissions)
end
+ context 'issues feature' do
+ context 'when the feature is disabled' do
+ it 'does not include the issues permissions' do
+ project.issues_enabled = false
+ project.save
+ issues_permissions = [:read_issue, :create_issue, :update_issue, :admin_issue]
+
+ permissions = described_class.abilities(owner, project).to_set
+
+ expect(permissions).not_to include(*issues_permissions)
+ end
+ end
+
+ context 'when the feature is disabled and external tracker configured' do
+ it 'does not include the issues permissions' do
+ JiraService.create(
+ project: project,
+ active: true,
+ username: 'username',
+ password: 'test',
+ project_key: 'TEST',
+ jira_issue_transition_id: 24,
+ url: 'http://jira.test.com'
+ )
+
+ project.issues_enabled = false
+ project.save
+ issues_permissions = [:read_issue, :create_issue, :update_issue, :admin_issue]
+
+ permissions = described_class.abilities(owner, project).to_set
+
+ expect(permissions).not_to include(*issues_permissions)
+ end
+ end
+ end
+
context 'abilities for non-public projects' do
let(:project) { create(:empty_project, namespace: owner.namespace) }