summaryrefslogtreecommitdiff
path: root/spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb
blob: 8fbab361ec4f7f2378db11bf169030c32e2f38fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe IncidentManagement::IssuableEscalationStatuses::CreateService do
  let_it_be(:project) { create(:project) }

  let(:incident) { create(:incident, project: project) }
  let(:service) { described_class.new(incident) }

  subject(:execute) { service.execute}

  it 'creates an escalation status for the incident with no policy set' do
    expect { execute }.to change { incident.reload.incident_management_issuable_escalation_status }.from(nil)

    status = incident.incident_management_issuable_escalation_status

    expect(status.policy_id).to eq(nil)
    expect(status.escalations_started_at).to eq(nil)
    expect(status.status_name).to eq(:triggered)
  end

  context 'existing escalation status' do
    let!(:existing_status) { create(:incident_management_issuable_escalation_status, issue: incident) }

    it 'exits without changing anything' do
      expect { execute }.not_to change { incident.reload.incident_management_issuable_escalation_status }
    end
  end
end