diff options
Diffstat (limited to 'spec/support/shared_examples/services/incident_shared_examples.rb')
-rw-r--r-- | spec/support/shared_examples/services/incident_shared_examples.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/support/shared_examples/services/incident_shared_examples.rb b/spec/support/shared_examples/services/incident_shared_examples.rb new file mode 100644 index 00000000000..d6e79931df5 --- /dev/null +++ b/spec/support/shared_examples/services/incident_shared_examples.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# This shared_example requires the following variables: +# - issue (required) +# +# Usage: +# +# it_behaves_like 'incident issue' do +# let(:issue) { ... } +# end +# +# include_examples 'incident issue' +RSpec.shared_examples 'incident issue' do + let(:label_properties) { attributes_for(:label, :incident) } + + it 'has incident as issue type' do + expect(issue.issue_type).to eq('incident') + end + + it 'has exactly one incident label' do + expect(issue.labels).to be_one do |label| + label.slice(*label_properties.keys).symbolize_keys == label_properties + end + end +end + +# This shared_example requires the following variables: +# - issue (required) +# +# Usage: +# +# it_behaves_like 'not an incident issue' do +# let(:issue) { ... } +# end +# +# include_examples 'not an incident issue' +RSpec.shared_examples 'not an incident issue' do + let(:label_properties) { attributes_for(:label, :incident) } + + it 'has not incident as issue type' do + expect(issue.issue_type).not_to eq('incident') + end + + it 'has not an incident label' do + expect(issue.labels).not_to include(have_attributes(label_properties)) + end +end |