|
4 | 4 | subject(:generator) do |
5 | 5 | described_class.new( |
6 | 6 | programme_type: programme.type, |
7 | | - academic_year: AcademicYear.current, |
| 7 | + academic_year: current_academic_year, |
8 | 8 | patient:, |
9 | 9 | consents: patient.consents, |
10 | 10 | triages: patient.triages, |
|
15 | 15 | ) |
16 | 16 | end |
17 | 17 |
|
| 18 | + let(:current_academic_year) { AcademicYear.current } |
18 | 19 | let(:patient) { create(:patient) } |
19 | 20 | let(:programme) { Programme.hpv } |
20 | 21 |
|
|
212 | 213 | end |
213 | 214 |
|
214 | 215 | describe "academic year filtering" do |
215 | | - let(:current_academic_year) { AcademicYear.current } |
216 | 216 | let(:previous_academic_year) { current_academic_year - 1 } |
217 | 217 | let(:patient) { create(:patient) } |
218 | 218 | let(:programme) { Programme.sample } |
|
366 | 366 | end |
367 | 367 | end |
368 | 368 |
|
| 369 | + describe "#created_at" do |
| 370 | + subject { generator.created_at } |
| 371 | + |
| 372 | + context "with no triage" do |
| 373 | + it { should be_nil } |
| 374 | + end |
| 375 | + |
| 376 | + context "with a safe to vaccinate triage" do |
| 377 | + let!(:triage) do |
| 378 | + create(:triage, :safe_to_vaccinate, patient:, programme:) |
| 379 | + end |
| 380 | + |
| 381 | + it { should eq(triage.created_at) } |
| 382 | + end |
| 383 | + |
| 384 | + context "with a safe to vaccinate triage and vaccinated" do |
| 385 | + let!(:triage) do |
| 386 | + create(:triage, :safe_to_vaccinate, patient:, programme:) |
| 387 | + end |
| 388 | + |
| 389 | + before { create(:vaccination_record, patient:, programme:) } |
| 390 | + |
| 391 | + it { should eq(triage.created_at) } |
| 392 | + end |
| 393 | + |
| 394 | + context "with a do not vaccinate triage" do |
| 395 | + let!(:triage) { create(:triage, :do_not_vaccinate, patient:, programme:) } |
| 396 | + |
| 397 | + it { should eq(triage.created_at) } |
| 398 | + end |
| 399 | + |
| 400 | + context "with multiple triages" do |
| 401 | + let!(:latest_triage) do |
| 402 | + create( |
| 403 | + :triage, |
| 404 | + :safe_to_vaccinate, |
| 405 | + patient:, |
| 406 | + programme:, |
| 407 | + created_at: latest_created_at |
| 408 | + ) |
| 409 | + end |
| 410 | + |
| 411 | + let(:older_created_at) do |
| 412 | + Date.new(current_academic_year, 10, 15).in_time_zone |
| 413 | + end |
| 414 | + |
| 415 | + let(:latest_created_at) { older_created_at + 2.days } |
| 416 | + |
| 417 | + before do |
| 418 | + create( |
| 419 | + :triage, |
| 420 | + :safe_to_vaccinate, |
| 421 | + patient:, |
| 422 | + programme:, |
| 423 | + created_at: older_created_at |
| 424 | + ) |
| 425 | + end |
| 426 | + |
| 427 | + it { should eq(latest_triage.created_at) } |
| 428 | + end |
| 429 | + |
| 430 | + context "with an invalidated safe to vaccinate triage" do |
| 431 | + before do |
| 432 | + create(:triage, :safe_to_vaccinate, :invalidated, patient:, programme:) |
| 433 | + end |
| 434 | + |
| 435 | + it { should be_nil } |
| 436 | + end |
| 437 | + end |
| 438 | + |
369 | 439 | describe "#without_gelatine" do |
370 | 440 | subject { generator.without_gelatine } |
371 | 441 |
|
|
0 commit comments