diff options
Diffstat (limited to 'spec/models/milestone_release_spec.rb')
-rw-r--r-- | spec/models/milestone_release_spec.rb | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/spec/models/milestone_release_spec.rb b/spec/models/milestone_release_spec.rb index d6f73275977..28cec7bbc17 100644 --- a/spec/models/milestone_release_spec.rb +++ b/spec/models/milestone_release_spec.rb @@ -14,23 +14,29 @@ describe MilestoneRelease do it { is_expected.to belong_to(:release) } end + context 'when trying to create the same record in milestone_releases twice' do + it 'is not committing on the second time' do + create(:milestone_release, milestone: milestone, release: release) + + expect do + subject.save! + end.to raise_error(ActiveRecord::RecordNotUnique) + end + end + describe 'validations' do - it { is_expected.to validate_uniqueness_of(:milestone_id).scoped_to(:release_id) } + subject(:milestone_release) { build(:milestone_release, milestone: milestone, release: release) } context 'when milestone and release do not have the same project' do it 'is not valid' do - other_project = create(:project) - release = build(:release, project: other_project) - milestone_release = described_class.new(milestone: milestone, release: release) + milestone_release.release = build(:release, project: create(:project)) + expect(milestone_release).not_to be_valid end end context 'when milestone and release have the same project' do - it 'is valid' do - milestone_release = described_class.new(milestone: milestone, release: release) - expect(milestone_release).to be_valid - end + it { is_expected.to be_valid } end end end |