summaryrefslogtreecommitdiff
path: root/spec/models/iteration_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/iteration_spec.rb')
-rw-r--r--spec/models/iteration_spec.rb29
1 files changed, 28 insertions, 1 deletions
diff --git a/spec/models/iteration_spec.rb b/spec/models/iteration_spec.rb
index ae14adf9106..ef638330208 100644
--- a/spec/models/iteration_spec.rb
+++ b/spec/models/iteration_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe Iteration do
+RSpec.describe Iteration do
let_it_be(:project) { create(:project) }
let_it_be(:group) { create(:group) }
@@ -45,6 +45,14 @@ describe Iteration do
it { is_expected.to be_valid }
end
+ context 'when updated iteration dates overlap with its own dates' do
+ it 'is valid' do
+ existing_iteration.start_date = 5.days.from_now
+
+ expect(existing_iteration).to be_valid
+ end
+ end
+
context 'when dates overlap' do
context 'same group' do
context 'when start_date is in range' do
@@ -138,6 +146,25 @@ describe Iteration do
end
end
+ context 'time scopes' do
+ let_it_be(:project) { create(:project, :empty_repo) }
+ let_it_be(:iteration_1) { create(:iteration, :skip_future_date_validation, project: project, start_date: 3.days.ago, due_date: 1.day.from_now) }
+ let_it_be(:iteration_2) { create(:iteration, :skip_future_date_validation, project: project, start_date: 10.days.ago, due_date: 4.days.ago) }
+ let_it_be(:iteration_3) { create(:iteration, project: project, start_date: 4.days.from_now, due_date: 1.week.from_now) }
+
+ describe 'start_date_passed' do
+ it 'returns iterations where start_date is in the past but due_date is in the future' do
+ expect(described_class.start_date_passed).to contain_exactly(iteration_1)
+ end
+ end
+
+ describe 'due_date_passed' do
+ it 'returns iterations where due date is in the past' do
+ expect(described_class.due_date_passed).to contain_exactly(iteration_2)
+ end
+ end
+ end
+
describe '.within_timeframe' do
let_it_be(:now) { Time.current }
let_it_be(:project) { create(:project, :empty_repo) }