diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 6a45595580f512c90d049ae4ea4edc1fdc87b9d7..05be34d63e044591369c8c2a4ccc2825a33b5f51 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -334,6 +334,7 @@ def render_issue_json end def issue_params + params[:issue][:issue_type] ||= params[:issue_type] if params[:issue_type].present? all_params = params.require(:issue).permit( *issue_params_attributes, sentry_issue_attributes: [:sentry_issue_identifier] diff --git a/spec/features/incidents/incident_details_spec.rb b/spec/features/incidents/incident_details_spec.rb index a166ff46177136d42adb3a0cc126a8e567c43840..2be0c95addd79edf13f260d0c087ff69c3876b4f 100644 --- a/spec/features/incidents/incident_details_spec.rb +++ b/spec/features/incidents/incident_details_spec.rb @@ -7,13 +7,20 @@ let_it_be(:project) { create(:project) } let_it_be(:developer) { create(:user) } - let_it_be(:incident) { create(:incident, project: project, author: developer, description: 'description') } - let_it_be(:issue) { create(:issue, project: project, author: developer, description: 'Issue description') } - let_it_be(:escalation_status) { create(:incident_management_issuable_escalation_status, issue: incident) } let_it_be(:confidential_incident) do create(:incident, confidential: true, project: project, author: developer, description: 'Confidential') end + let_it_be_with_reload(:incident) do + create(:incident, project: project, author: developer, description: 'description') + end + + let_it_be(:escalation_status) { create(:incident_management_issuable_escalation_status, issue: incident) } + + let_it_be_with_reload(:issue) do + create(:issue, project: project, author: developer, description: 'Issue description') + end + before_all do project.add_developer(developer) end @@ -105,12 +112,15 @@ def current_status page.within('[data-testid="issuable-form"]') do click_button 'Issue' find('[data-testid="issue-type-list-item"]', text: 'Incident').click + click_button 'Save changes' + end - wait_for_requests + wait_for_requests - expect(page).to have_current_path("#{project_path}/-/issues/incident/#{issue.iid}") - end + expect(issue.reload.issue_type).to eq('incident') + expect(page).to have_current_path("#{project_path}/-/issues/incident/#{issue.iid}") + expect(page).to have_content(issue.title) end it 'routes the user to the issue details page when the `issue_type` is set to issue' do @@ -126,11 +136,13 @@ def current_status click_button 'Incident' find('[data-testid="issue-type-list-item"]', text: 'Issue').click click_button 'Save changes' + end - wait_for_requests + wait_for_requests - expect(page).to have_current_path("#{project_path}/-/issues/#{incident.iid}") - end + expect(incident.reload.issue_type).to eq('issue') + expect(page).to have_current_path("#{project_path}/-/issues/#{incident.iid}") + expect(page).to have_content(incident.title) end it 'displays the confidential badge on the sticky header when the incident is confidential' do