feat: instant preview of edited email template
This commit is contained in:
@@ -179,6 +179,64 @@ class EmailTextRendererTest extends KernelTestCase
|
||||
$this->assertSame('Einsatz Ski & Snowboard', $rendered->subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* The admin preview renders what is in the form, not what is in the database - a
|
||||
* preview showing the stored wording while the admin types a new one would be
|
||||
* pointless.
|
||||
*/
|
||||
public function testGivenValuesAreRenderedInsteadOfTheStoredOnes(): void
|
||||
{
|
||||
$repository = $this->createMock(EmailTextRepository::class);
|
||||
$repository
|
||||
->method('findByKey')
|
||||
->willReturn($this->emailText(subject: 'Gespeichert', body: 'Gespeicherter Text'))
|
||||
;
|
||||
|
||||
self::bootKernel();
|
||||
|
||||
$renderer = new EmailTextRenderer(
|
||||
self::getContainer()->get(EmailTextCatalog::class),
|
||||
$repository
|
||||
);
|
||||
|
||||
$rendered = $renderer->renderValues(
|
||||
EmailTextKey::APPLICATION_REJECTED,
|
||||
'Entwurf {destination}',
|
||||
'Überschrift',
|
||||
'Entwurfstext *fett*',
|
||||
['destination' => 'Skireise']
|
||||
);
|
||||
|
||||
$this->assertSame('Entwurf Skireise', $rendered->subject);
|
||||
$this->assertSame('Überschrift', $rendered->headline);
|
||||
$this->assertSame('<p>Entwurfstext <strong>fett</strong></p>', $rendered->bodyHtml);
|
||||
}
|
||||
|
||||
/**
|
||||
* A preview is asked for while the form is still half filled.
|
||||
*/
|
||||
public function testEmptyDraftValuesRenderWithoutFallingBackToTheDefault(): void
|
||||
{
|
||||
self::bootKernel();
|
||||
|
||||
$renderer = new EmailTextRenderer(
|
||||
self::getContainer()->get(EmailTextCatalog::class),
|
||||
$this->createMock(EmailTextRepository::class)
|
||||
);
|
||||
|
||||
$rendered = $renderer->renderValues(
|
||||
EmailTextKey::APPLICATION_REJECTED,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
['destination' => 'Skireise']
|
||||
);
|
||||
|
||||
$this->assertSame('', $rendered->subject);
|
||||
$this->assertSame('', $rendered->headline);
|
||||
$this->assertSame('', $rendered->bodyHtml);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<string, string|int|null> $placeholders
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user