fix enrollment and registration email send
This commit is contained in:
@@ -334,6 +334,37 @@ final class EnrollmentRegistrationEmailServiceTest extends TestCase
|
||||
$this->assertStringContainsString('not approved', implode(' ', $summary['messages']));
|
||||
}
|
||||
|
||||
public function testFailedOnlyRetryUsesLatestFailedEmailRecordPerParent(): void
|
||||
{
|
||||
$query = new class {
|
||||
public function getResultArray(): array
|
||||
{
|
||||
return [
|
||||
['parent_user_id' => 10, 'delivery_status' => 'failed'],
|
||||
['parent_user_id' => 10, 'delivery_status' => 'sent'],
|
||||
['parent_user_id' => 20, 'delivery_status' => 'sent'],
|
||||
['parent_user_id' => 20, 'delivery_status' => 'failed'],
|
||||
['parent_user_id' => 30, 'delivery_status' => 'failed'],
|
||||
['parent_user_id' => null, 'delivery_status' => 'failed'],
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
$builder = $this->createMock(BaseBuilder::class);
|
||||
$builder->method('select')->willReturnSelf();
|
||||
$builder->method('where')->with('school_year', '2026-2027')->willReturnSelf();
|
||||
$builder->method('orderBy')->willReturnSelf();
|
||||
$builder->method('get')->willReturn($query);
|
||||
|
||||
$db = $this->createMock(BaseConnection::class);
|
||||
$db->method('tableExists')->with('enrollment_email_records')->willReturn(true);
|
||||
$db->method('table')->with('enrollment_email_records')->willReturn($builder);
|
||||
|
||||
$service = $this->service($db);
|
||||
|
||||
$this->assertSame([10, 30], $this->invoke($service, 'failedParentIdsForSchoolYear', ['2026-2027']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param list<mixed> $args
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user