Skip to content

Commit 6fa774f

Browse files
committed
Add Session#scheduled?
This adds a method which can be used to determine whether a session is scheduled (meaning it's not completed or unscheduled). Jira-Issue: MAV-2036
1 parent ada89a4 commit 6fa774f

2 files changed

Lines changed: 34 additions & 18 deletions

File tree

app/models/session.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,8 @@ def completed?
227227
Date.current > dates.max
228228
end
229229

230+
def scheduled? = !unscheduled? && !completed?
231+
230232
def started?
231233
return false if dates.empty?
232234
Date.current > dates.min

spec/models/session_spec.rb

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,23 @@
3131
#
3232

3333
describe Session do
34+
describe "associations" do
35+
describe "#programmes" do
36+
subject(:programmes) { session.reload.programmes }
37+
38+
let(:hpv_programme) { create(:programme, :hpv) }
39+
let(:menacwy_programme) { create(:programme, :menacwy) }
40+
41+
let(:session) do
42+
create(:session, programmes: [menacwy_programme, hpv_programme])
43+
end
44+
45+
it "is ordered by name" do
46+
expect(programmes).to eq([hpv_programme, menacwy_programme])
47+
end
48+
end
49+
end
50+
3451
describe "scopes" do
3552
let(:programmes) { [create(:programme)] }
3653

@@ -170,23 +187,6 @@
170187
end
171188
end
172189

173-
describe "associations" do
174-
describe "#programmes" do
175-
subject(:programmes) { session.reload.programmes }
176-
177-
let(:hpv_programme) { create(:programme, :hpv) }
178-
let(:menacwy_programme) { create(:programme, :menacwy) }
179-
180-
let(:session) do
181-
create(:session, programmes: [menacwy_programme, hpv_programme])
182-
end
183-
184-
it "is ordered by name" do
185-
expect(programmes).to eq([hpv_programme, menacwy_programme])
186-
end
187-
end
188-
end
189-
190190
describe "#today?" do
191191
subject(:today?) { session.today? }
192192

@@ -210,7 +210,7 @@
210210
end
211211

212212
describe "#unscheduled?" do
213-
subject(:unscheduled?) { session.reload.unscheduled? }
213+
subject { session.reload.unscheduled? }
214214

215215
let(:session) { create(:session, date: nil) }
216216

@@ -223,6 +223,20 @@
223223
end
224224
end
225225

226+
describe "#scheduled?" do
227+
subject { session.reload.scheduled? }
228+
229+
let(:session) { create(:session, date: nil) }
230+
231+
it { should be(false) }
232+
233+
context "with a date" do
234+
before { create(:session_date, session:) }
235+
236+
it { should be(true) }
237+
end
238+
end
239+
226240
describe "#supports_delegation?" do
227241
subject { session.supports_delegation? }
228242

0 commit comments

Comments
 (0)