now()->subYears(17)->toDateString()], ['birth_date' => ['date', new AdultBirthDate]], ); $this->assertTrue($validator->fails()); $this->assertSame( __('validation.responsible_must_be_adult'), $validator->errors()->first('birth_date'), ); } public function test_it_accepts_a_birth_date_from_an_adult(): void { $validator = Validator::make( ['birth_date' => now()->subYears(18)->toDateString()], ['birth_date' => ['date', new AdultBirthDate]], ); $this->assertFalse($validator->fails()); } public function test_it_is_used_by_both_responsible_requests(): void { $studentRules = StudentRequest::create('/', 'POST')->rules(); $responsibleRules = StudentResponsibleRequest::create('/', 'POST')->rules(); $studentAdultRules = array_filter( $studentRules['responsible.birth_date'], fn (mixed $rule): bool => $rule instanceof AdultBirthDate, ); $responsibleAdultRules = array_filter( $responsibleRules['birth_date'], fn (mixed $rule): bool => $rule instanceof AdultBirthDate, ); $this->assertCount(1, $studentAdultRules); $this->assertCount(1, $responsibleAdultRules); } }