summaryrefslogtreecommitdiff
path: root/spec/controllers/projects/issues_controller_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-08-20 18:42:06 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-08-20 18:42:06 +0000
commit6e4e1050d9dba2b7b2523fdd1768823ab85feef4 (patch)
tree78be5963ec075d80116a932011d695dd33910b4e /spec/controllers/projects/issues_controller_spec.rb
parent1ce776de4ae122aba3f349c02c17cebeaa8ecf07 (diff)
downloadgitlab-ce-6e4e1050d9dba2b7b2523fdd1768823ab85feef4.tar.gz
Add latest changes from gitlab-org/gitlab@13-3-stable-ee
Diffstat (limited to 'spec/controllers/projects/issues_controller_spec.rb')
-rw-r--r--spec/controllers/projects/issues_controller_spec.rb70
1 files changed, 69 insertions, 1 deletions
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb
index f9580c79390..a0e478ef368 100644
--- a/spec/controllers/projects/issues_controller_spec.rb
+++ b/spec/controllers/projects/issues_controller_spec.rb
@@ -181,10 +181,11 @@ RSpec.describe Projects::IssuesController do
project.add_developer(user)
end
- it 'builds a new issue' do
+ it 'builds a new issue', :aggregate_failures do
get :new, params: { namespace_id: project.namespace, project_id: project }
expect(assigns(:issue)).to be_a_new(Issue)
+ expect(assigns(:issue).issue_type).to eq('issue')
end
where(:conf_value, :conf_result) do
@@ -214,6 +215,24 @@ RSpec.describe Projects::IssuesController do
end
end
+ context 'setting issue type' do
+ let(:issue_type) { 'issue' }
+
+ before do
+ get :new, params: { namespace_id: project.namespace, project_id: project, issue: { issue_type: issue_type } }
+ end
+
+ subject { assigns(:issue).issue_type }
+
+ it { is_expected.to eq('issue') }
+
+ context 'incident issue' do
+ let(:issue_type) { 'incident' }
+
+ it { is_expected.to eq(issue_type) }
+ end
+ end
+
it 'fills in an issue for a merge request' do
project_with_repository = create(:project, :repository)
project_with_repository.add_developer(user)
@@ -964,6 +983,33 @@ RSpec.describe Projects::IssuesController do
expect { issue.update(description: [issue.description, labels].join(' ')) }
.not_to exceed_query_limit(control_count + 2 * labels.count)
end
+
+ context 'real-time sidebar feature flag' do
+ using RSpec::Parameterized::TableSyntax
+
+ let_it_be(:project) { create(:project, :public) }
+ let_it_be(:issue) { create(:issue, project: project) }
+
+ where(:action_cable_in_app_enabled, :feature_flag_enabled, :gon_feature_flag) do
+ true | true | true
+ true | false | true
+ false | true | true
+ false | false | false
+ end
+
+ with_them do
+ before do
+ expect(Gitlab::ActionCable::Config).to receive(:in_app?).and_return(action_cable_in_app_enabled)
+ stub_feature_flags(real_time_issue_sidebar: feature_flag_enabled)
+ end
+
+ it 'broadcasts to the issues channel based on ActionCable and feature flag values' do
+ go(id: issue.to_param)
+
+ expect(Gon.features).to include('realTimeIssueSidebar' => gon_feature_flag)
+ end
+ end
+ end
end
describe 'GET #realtime_changes' do
@@ -1022,6 +1068,14 @@ RSpec.describe Projects::IssuesController do
project.issues.first
end
+ it 'creates the issue successfully', :aggregate_failures do
+ issue = post_new_issue
+
+ expect(issue).to be_a(Issue)
+ expect(issue.persisted?).to eq(true)
+ expect(issue.issue_type).to eq('issue')
+ end
+
context 'resolving discussions in MergeRequest' do
let(:discussion) { create(:diff_note_on_merge_request).to_discussion }
let(:merge_request) { discussion.noteable }
@@ -1262,6 +1316,20 @@ RSpec.describe Projects::IssuesController do
end
end
end
+
+ context 'setting issue type' do
+ let(:issue_type) { 'issue' }
+
+ subject { post_new_issue(issue_type: issue_type)&.issue_type }
+
+ it { is_expected.to eq('issue') }
+
+ context 'incident issue' do
+ let(:issue_type) { 'incident' }
+
+ it { is_expected.to eq(issue_type) }
+ end
+ end
end
describe 'POST #mark_as_spam' do