diff options
Diffstat (limited to 'spec/models/resource_state_event_spec.rb')
-rw-r--r-- | spec/models/resource_state_event_spec.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/models/resource_state_event_spec.rb b/spec/models/resource_state_event_spec.rb index 1381b45cf9e..fc6575b2db8 100644 --- a/spec/models/resource_state_event_spec.rb +++ b/spec/models/resource_state_event_spec.rb @@ -11,4 +11,32 @@ RSpec.describe ResourceStateEvent, type: :model do it_behaves_like 'a resource event' it_behaves_like 'a resource event for issues' it_behaves_like 'a resource event for merge requests' + + describe 'validations' do + describe 'Issuable validation' do + it 'is valid if an issue is set' do + subject.attributes = { issue: build_stubbed(:issue), merge_request: nil } + + expect(subject).to be_valid + end + + it 'is valid if a merge request is set' do + subject.attributes = { issue: nil, merge_request: build_stubbed(:merge_request) } + + expect(subject).to be_valid + end + + it 'is invalid if both issue and merge request are set' do + subject.attributes = { issue: build_stubbed(:issue), merge_request: build_stubbed(:merge_request) } + + expect(subject).not_to be_valid + end + + it 'is invalid if there is no issuable set' do + subject.attributes = { issue: nil, merge_request: nil } + + expect(subject).not_to be_valid + end + end + end end |