summaryrefslogtreecommitdiff
path: root/spec/models/milestone_release_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/milestone_release_spec.rb')
-rw-r--r--spec/models/milestone_release_spec.rb22
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