fix: Permettre l'affectation de classe pour les élèves sans affectation existante
Le handler ChangeStudentClass exigeait une affectation existante pour l'année scolaire en cours avant de pouvoir changer la classe. Un élève créé sans ClassAssignment (import direct, année précédente) provoquait une erreur "Élève non trouvé" au lieu d'être simplement affecté. Le handler crée désormais une nouvelle affectation quand aucune n'existe, et l'erreur de changement de classe s'affiche dans la modale au lieu de la page principale.
This commit is contained in:
@@ -6,7 +6,6 @@ namespace App\Tests\Unit\Administration\Application\Command\ChangeStudentClass;
|
||||
|
||||
use App\Administration\Application\Command\ChangeStudentClass\ChangeStudentClassCommand;
|
||||
use App\Administration\Application\Command\ChangeStudentClass\ChangeStudentClassHandler;
|
||||
use App\Administration\Domain\Exception\AffectationEleveNonTrouveeException;
|
||||
use App\Administration\Domain\Exception\ClasseNotFoundException;
|
||||
use App\Administration\Domain\Model\ClassAssignment\ClassAssignment;
|
||||
use App\Administration\Domain\Model\SchoolClass\AcademicYearId;
|
||||
@@ -74,13 +73,17 @@ final class ChangeStudentClassHandlerTest extends TestCase
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function itThrowsWhenAssignmentNotFound(): void
|
||||
public function itCreatesAssignmentWhenNoneExists(): void
|
||||
{
|
||||
$handler = $this->createHandler();
|
||||
$command = $this->createCommand(studentId: '550e8400-e29b-41d4-a716-446655440070');
|
||||
$newStudentId = '550e8400-e29b-41d4-a716-446655440070';
|
||||
$command = $this->createCommand(studentId: $newStudentId);
|
||||
|
||||
$this->expectException(AffectationEleveNonTrouveeException::class);
|
||||
$handler($command);
|
||||
$assignment = $handler($command);
|
||||
|
||||
self::assertTrue($assignment->studentId->equals(UserId::fromString($newStudentId)));
|
||||
self::assertTrue($assignment->classId->equals(ClassId::fromString(self::NEW_CLASS_ID)));
|
||||
self::assertTrue($assignment->academicYearId->equals(AcademicYearId::fromString(self::ACADEMIC_YEAR_ID)));
|
||||
}
|
||||
|
||||
#[Test]
|
||||
|
||||
Reference in New Issue
Block a user