|
84 | 84 | end
|
85 | 85 | end
|
86 | 86 |
|
| 87 | + describe "#supports_delegation" do |
| 88 | + subject(:scope) { described_class.supports_delegation } |
| 89 | + |
| 90 | + let!(:hpv_programme) { create(:programme, :hpv) } |
| 91 | + let!(:flu_programme) { create(:programme, :flu) } |
| 92 | + let(:session) { create(:session, programmes:) } |
| 93 | + |
| 94 | + context "with a session for flu" do |
| 95 | + let(:programmes) { [flu_programme] } |
| 96 | + |
| 97 | + it { should include(session) } |
| 98 | + end |
| 99 | + |
| 100 | + context "with a session for HPV" do |
| 101 | + let(:programmes) { [hpv_programme] } |
| 102 | + |
| 103 | + it { should_not include(session) } |
| 104 | + end |
| 105 | + end |
| 106 | + |
87 | 107 | describe "#in_progress" do
|
88 | 108 | subject(:scope) { described_class.in_progress }
|
89 | 109 |
|
|
149 | 169 | end
|
150 | 170 | end
|
151 | 171 |
|
152 |
| - describe "#programmes" do |
153 |
| - subject(:programmes) { session.reload.programmes } |
| 172 | + describe "associations" do |
| 173 | + describe "#programmes" do |
| 174 | + subject(:programmes) { session.reload.programmes } |
154 | 175 |
|
155 |
| - let(:hpv_programme) { create(:programme, :hpv) } |
156 |
| - let(:menacwy_programme) { create(:programme, :menacwy) } |
| 176 | + let(:hpv_programme) { create(:programme, :hpv) } |
| 177 | + let(:menacwy_programme) { create(:programme, :menacwy) } |
157 | 178 |
|
158 |
| - let(:session) do |
159 |
| - create(:session, programmes: [menacwy_programme, hpv_programme]) |
160 |
| - end |
| 179 | + let(:session) do |
| 180 | + create(:session, programmes: [menacwy_programme, hpv_programme]) |
| 181 | + end |
161 | 182 |
|
162 |
| - it "is ordered by name" do |
163 |
| - expect(programmes).to eq([hpv_programme, menacwy_programme]) |
| 183 | + it "is ordered by name" do |
| 184 | + expect(programmes).to eq([hpv_programme, menacwy_programme]) |
| 185 | + end |
164 | 186 | end
|
165 | 187 | end
|
166 | 188 |
|
|
200 | 222 | end
|
201 | 223 | end
|
202 | 224 |
|
| 225 | + describe "#supports_delegation?" do |
| 226 | + subject { session.supports_delegation? } |
| 227 | + |
| 228 | + let(:session) { create(:session, programmes:) } |
| 229 | + |
| 230 | + context "with only a flu programme" do |
| 231 | + let(:programmes) { [create(:programme, :flu)] } |
| 232 | + |
| 233 | + it { should be(true) } |
| 234 | + end |
| 235 | + |
| 236 | + context "with a flu and HPV programme" do |
| 237 | + let(:programmes) { [create(:programme, :flu), create(:programme, :hpv)] } |
| 238 | + |
| 239 | + it { should be(true) } |
| 240 | + end |
| 241 | + |
| 242 | + context "with only an HPV programme" do |
| 243 | + let(:programmes) { [create(:programme, :hpv)] } |
| 244 | + |
| 245 | + it { should be(false) } |
| 246 | + end |
| 247 | + end |
| 248 | + |
| 249 | + describe "#pgd_supply_enabled?" do |
| 250 | + subject { session.pgd_supply_enabled? } |
| 251 | + |
| 252 | + let(:session) { create(:session, programmes:) } |
| 253 | + |
| 254 | + context "with only a flu programme" do |
| 255 | + let(:programmes) { [create(:programme, :flu)] } |
| 256 | + |
| 257 | + it { should be(true) } |
| 258 | + end |
| 259 | + |
| 260 | + context "with a flu and HPV programme" do |
| 261 | + let(:programmes) { [create(:programme, :flu), create(:programme, :hpv)] } |
| 262 | + |
| 263 | + it { should be(true) } |
| 264 | + end |
| 265 | + |
| 266 | + context "with only an HPV programme" do |
| 267 | + let(:programmes) { [create(:programme, :hpv)] } |
| 268 | + |
| 269 | + it { should be(false) } |
| 270 | + end |
| 271 | + end |
| 272 | + |
203 | 273 | describe "#year_groups" do
|
204 | 274 | subject { session.year_groups }
|
205 | 275 |
|
|
0 commit comments