summaryrefslogtreecommitdiff
path: root/spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb')
-rw-r--r--spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb99
1 files changed, 39 insertions, 60 deletions
diff --git a/spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb b/spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb
index cf43ed2411d..73ad0532e07 100644
--- a/spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb
+++ b/spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb
@@ -12,84 +12,63 @@ RSpec.describe IncidentManagement::PagerDuty::CreateIncidentIssueService do
subject(:execute) { described_class.new(project, incident_payload).execute }
describe '#execute' do
- context 'when pagerduty_webhook feature enabled' do
- before do
- stub_feature_flags(pagerduty_webhook: project)
- end
+ context 'when PagerDuty webhook setting is active' do
+ let_it_be(:incident_management_setting) { create(:project_incident_management_setting, project: project, pagerduty_active: true) }
- context 'when PagerDuty webhook setting is active' do
- let_it_be(:incident_management_setting) { create(:project_incident_management_setting, project: project, pagerduty_active: true) }
-
- context 'when issue can be created' do
- it 'creates a new issue' do
- expect { execute }.to change(Issue, :count).by(1)
- end
-
- it 'responds with success' do
- response = execute
-
- expect(response).to be_success
- expect(response.payload[:issue]).to be_kind_of(Issue)
- end
-
- it 'the issue author is Alert bot' do
- expect(execute.payload[:issue].author).to eq(User.alert_bot)
- end
-
- it 'issue has a correct title' do
- expect(execute.payload[:issue].title).to eq(incident_payload['title'])
- end
-
- it 'issue has a correct description' do
- markdown_line_break = ' '
-
- expect(execute.payload[:issue].description).to eq(
- <<~MARKDOWN.chomp
- **Incident:** [My new incident](https://webdemo.pagerduty.com/incidents/PRORDTY)#{markdown_line_break}
- **Incident number:** 33#{markdown_line_break}
- **Urgency:** high#{markdown_line_break}
- **Status:** triggered#{markdown_line_break}
- **Incident key:** #{markdown_line_break}
- **Created at:** 26 September 2017, 3:14PM (UTC)#{markdown_line_break}
- **Assignees:** [Laura Haley](https://webdemo.pagerduty.com/users/P553OPV)#{markdown_line_break}
- **Impacted services:** [Production XDB Cluster](https://webdemo.pagerduty.com/services/PN49J75)
- MARKDOWN
- )
- end
+ context 'when issue can be created' do
+ it 'creates a new issue' do
+ expect { execute }.to change(Issue, :count).by(1)
end
- context 'when the payload does not contain a title' do
- let(:incident_payload) { {} }
+ it 'responds with success' do
+ response = execute
+
+ expect(response).to be_success
+ expect(response.payload[:issue]).to be_kind_of(Issue)
+ end
- it 'does not create a GitLab issue' do
- expect { execute }.not_to change(Issue, :count)
- end
+ it 'the issue author is Alert bot' do
+ expect(execute.payload[:issue].author).to eq(User.alert_bot)
+ end
- it 'responds with error' do
- expect(execute).to be_error
- expect(execute.message).to eq("Title can't be blank")
- end
+ it 'issue has a correct title' do
+ expect(execute.payload[:issue].title).to eq(incident_payload['title'])
+ end
+
+ it 'issue has a correct description' do
+ markdown_line_break = ' '
+
+ expect(execute.payload[:issue].description).to eq(
+ <<~MARKDOWN.chomp
+ **Incident:** [My new incident](https://webdemo.pagerduty.com/incidents/PRORDTY)#{markdown_line_break}
+ **Incident number:** 33#{markdown_line_break}
+ **Urgency:** high#{markdown_line_break}
+ **Status:** triggered#{markdown_line_break}
+ **Incident key:** #{markdown_line_break}
+ **Created at:** 26 September 2017, 3:14PM (UTC)#{markdown_line_break}
+ **Assignees:** [Laura Haley](https://webdemo.pagerduty.com/users/P553OPV)#{markdown_line_break}
+ **Impacted services:** [Production XDB Cluster](https://webdemo.pagerduty.com/services/PN49J75)
+ MARKDOWN
+ )
end
end
- context 'when PagerDuty webhook setting is not active' do
- let_it_be(:incident_management_setting) { create(:project_incident_management_setting, project: project, pagerduty_active: false) }
+ context 'when the payload does not contain a title' do
+ let(:incident_payload) { {} }
it 'does not create a GitLab issue' do
expect { execute }.not_to change(Issue, :count)
end
- it 'responds with forbidden' do
+ it 'responds with error' do
expect(execute).to be_error
- expect(execute.http_status).to eq(:forbidden)
+ expect(execute.message).to eq("Title can't be blank")
end
end
end
- context 'when pagerduty_webhook feature disabled' do
- before do
- stub_feature_flags(pagerduty_webhook: false)
- end
+ context 'when PagerDuty webhook setting is not active' do
+ let_it_be(:incident_management_setting) { create(:project_incident_management_setting, project: project, pagerduty_active: false) }
it 'does not create a GitLab issue' do
expect { execute }.not_to change(Issue, :count)