Files
michaelschiemer/tests/Framework/Mail/TransportResultTest.php
Michael Schiemer 55a330b223 Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
2025-08-11 20:13:26 +02:00

91 lines
3.2 KiB
PHP

<?php
declare(strict_types=1);
use App\Framework\Mail\TransportResult;
describe('TransportResult', function () {
it('creates successful result', function () {
$messageId = 'msg_123';
$result = TransportResult::success($messageId);
expect($result->isSuccess())->toBeTrue();
expect($result->isFailure())->toBeFalse();
expect($result->getMessageId())->toBe($messageId);
// Cannot call getError() on success result - it throws exception
expect($result->getMetadata())->toBeEmpty();
});
it('creates successful result with metadata', function () {
$messageId = 'msg_123';
$metadata = ['server' => 'smtp.example.com', 'time' => 1.23];
$result = TransportResult::success($messageId, $metadata);
expect($result->isSuccess())->toBeTrue();
expect($result->getMessageId())->toBe($messageId);
expect($result->getMetadata())->toBe($metadata);
});
it('creates failure result', function () {
$error = 'SMTP connection failed';
$result = TransportResult::failure($error);
expect($result->isFailure())->toBeTrue();
expect($result->isSuccess())->toBeFalse();
expect($result->getError())->toBe($error);
// Cannot call getMessageId() on failure result - it throws exception
expect($result->getMetadata())->toBeEmpty();
});
it('creates failure result with metadata', function () {
$error = 'Authentication failed';
$metadata = ['smtp_code' => 535, 'server_response' => 'Invalid credentials'];
$result = TransportResult::failure($error, $metadata);
expect($result->isFailure())->toBeTrue();
expect($result->getError())->toBe($error);
expect($result->getMetadata())->toBe($metadata);
});
it('handles empty message ID in success result', function () {
$result = TransportResult::success('');
expect($result->isSuccess())->toBeTrue();
expect($result->getMessageId())->toBe('');
});
it('handles empty error in failure result', function () {
$result = TransportResult::failure('');
expect($result->isFailure())->toBeTrue();
expect($result->getError())->toBe('');
});
it('success and failure are mutually exclusive', function () {
$successResult = TransportResult::success('msg_123');
$failureResult = TransportResult::failure('error');
expect($successResult->isSuccess())->toBeTrue();
expect($successResult->isFailure())->toBeFalse();
expect($failureResult->isSuccess())->toBeFalse();
expect($failureResult->isFailure())->toBeTrue();
});
it('preserves metadata correctly', function () {
$metadata = [
'server' => 'smtp.gmail.com',
'port' => 587,
'encryption' => 'tls',
'auth_method' => 'login',
'response_time' => 0.456,
];
$successResult = TransportResult::success('msg_123', $metadata);
$failureResult = TransportResult::failure('connection failed', $metadata);
expect($successResult->getMetadata())->toBe($metadata);
expect($failureResult->getMetadata())->toBe($metadata);
});
});