Create tests for app/Models/NominationEnsemble

This commit is contained in:
Matt Young 2025-07-03 15:10:23 -05:00
parent d9bcae5d2a
commit 1c918cd559
2 changed files with 30 additions and 2 deletions

View File

@ -2,13 +2,12 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class NominationEnsemble extends Model
{
use HasFactory;
protected $guarded = [];
protected function casts(): array
{

View File

@ -0,0 +1,29 @@
<?php
use App\Models\NominationEnsemble;
use App\Models\NominationEnsembleEntry;
use App\Models\Student;
use Illuminate\Foundation\Testing\RefreshDatabase;
uses(RefreshDatabase::class);
beforeEach(function () {
$this->ensemble = NominationEnsemble::create([
'name' => 'Test Ensemble',
'entry_deadline' => '2024-01-01',
'minimum_grade' => '5',
'maximum_grade' => '15',
]);
});
it('returns its entries', function () {
$student = Student::factory()->create();
NominationEnsembleEntry::create([
'student_id' => $student->id,
'nomination_ensemble_id' => $this->ensemble->id,
'data' => json_encode(['test' => 'test']),
]);
expect($this->ensemble->entries()->count())->toEqual(1)
->and($this->ensemble->entries()->first())->toBeInstanceOf(NominationEnsembleEntry::class);
});