Add doublerRequest relationship to School model

This commit is contained in:
Matt Young 2025-07-05 21:18:52 -05:00
parent dcd1d74fdc
commit 30667a28c5
2 changed files with 33 additions and 0 deletions

View File

@ -28,6 +28,11 @@ class School extends Model
return $this->hasMany(SchoolEmailDomain::class); return $this->hasMany(SchoolEmailDomain::class);
} }
public function doublerRequests()
{
return $this->hasManyThrough(DoublerRequest::class, Student::class);
}
/** TODO: Remove this and concepts of profile picture */ /** TODO: Remove this and concepts of profile picture */
/** @codeCoverageIgnore */ /** @codeCoverageIgnore */
public function initialLetterImageURL($bg_color = '4f46e5', $text_color = 'fff'): string public function initialLetterImageURL($bg_color = '4f46e5', $text_color = 'fff'): string

View File

@ -1,5 +1,8 @@
<?php <?php
use App\Models\Audition;
use App\Models\Doubler;
use App\Models\DoublerRequest;
use App\Models\Entry; use App\Models\Entry;
use App\Models\NominationEnsemble; use App\Models\NominationEnsemble;
use App\Models\NominationEnsembleEntry; use App\Models\NominationEnsembleEntry;
@ -67,3 +70,28 @@ it('returns its nominations', function () {
expect($this->school->nominations()->count())->toEqual(3) expect($this->school->nominations()->count())->toEqual(3)
->and($this->school->nominations()->first())->toBeInstanceOf(NominationEnsembleEntry::class); ->and($this->school->nominations()->first())->toBeInstanceOf(NominationEnsembleEntry::class);
}); });
it('returns doubler requests for its students', function () {
$student = Student::factory()->forSchool($this->school)->create(['grade' => 8]);
$audition = Audition::factory()->create(['minimum_grade' => 8, 'maximum_grade' => 8]);
$audition2 = Audition::factory()->forEvent($audition->event)->create([
'minimum_grade' => 8, 'maximum_grade' => 8,
]);
$entryCreator = app(\App\Actions\Entries\CreateEntry::class);
$entryCreator($student, $audition);
$entryCreator($student, $audition2);
expect(Doubler::count())->toEqual(1);
DoublerRequest::create([
'event_id' => $audition->event_id,
'student_id' => $student->id,
'request' => 'My Request',
]);
$otherStudent = Student::factory()->create();
DoublerRequest::create([
'event_id' => $audition->event_id,
'student_id' => $otherStudent->id,
'request' => 'My Request',
]);
expect($this->school->doublerRequests()->count())->toEqual(1);
});