fix: use concrete anonymous class instead of Mockery for AttendanceMailerService binding in setUp
API CI/CD / Validate (composer + pint) (push) Successful in 2m6s
API CI/CD / Test (PHPUnit) (push) Failing after 2m27s
API CI/CD / Build frontend assets (push) Successful in 2m23s
API CI/CD / Security audit (push) Successful in 32s
API CI/CD / Deploy to shared hosting (PHP) (push) Has been skipped

Mockery's lifecycle (created in setUp, closed in tearDown) may
interfere with the container binding across tests. Using a plain
anonymous class avoids this issue entirely.
This commit is contained in:
root
2026-06-22 02:28:17 -04:00
parent e09c8725a4
commit 96e9d944dd
@@ -20,12 +20,19 @@ class AttendanceTrackingControllerTest extends TestCase
{
parent::setUp();
// Bind the AttendanceMailerService interface to a mock so the
// controller can be instantiated during route middleware gathering
// Bind the AttendanceMailerService interface to a no-op implementation
// so the controller can be instantiated during route middleware gathering
// even when the full service chain is not mocked.
$this->app->instance(
AttendanceMailerService::class,
Mockery::mock(AttendanceMailerService::class)
new class implements AttendanceMailerService {
public function send(string $to, string $subject, string $html): bool
{
return true;
}
public function queueAttendanceEvent(array $payload): void {}
}
);
}