email support
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use App\Services\EmailTemplateRenderer;
|
||||
|
||||
it('renders placeholders in subject, html and text', function () {
|
||||
$renderer = new EmailTemplateRenderer;
|
||||
|
||||
$template = [
|
||||
'subject' => 'Hello {{ person.full_name }} - {{ contract.reference }}',
|
||||
'html' => '<p>Case: {{ case.uuid }}</p><p>Meta: {{ contract.meta.foo }}</p>',
|
||||
'text' => 'Client: {{ client.uuid }} Extra: {{ extra.note }}',
|
||||
];
|
||||
|
||||
$ctx = [
|
||||
'person' => (object) ['first_name' => 'Jane', 'last_name' => 'Doe', 'email' => 'jane@example.test'],
|
||||
'client' => (object) ['uuid' => 'cl-123'],
|
||||
'client_case' => (object) ['uuid' => 'cc-456', 'reference' => 'REF-1'],
|
||||
'contract' => (object) ['uuid' => 'co-789', 'reference' => 'CON-42', 'meta' => ['foo' => 'bar']],
|
||||
'extra' => ['note' => 'hello'],
|
||||
];
|
||||
|
||||
$result = $renderer->render($template, $ctx);
|
||||
|
||||
expect($result['subject'])->toBe('Hello Jane Doe - CON-42');
|
||||
expect($result['html'])->toContain('Case: cc-456');
|
||||
expect($result['html'])->toContain('Meta: bar');
|
||||
expect($result['text'])->toBe('Client: cl-123 Extra: hello');
|
||||
});
|
||||
Reference in New Issue
Block a user