64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
<?php
|
|
|
|
it('renders bbcode preview', function (): void {
|
|
$parserProp = new ReflectionProperty(\App\Actions\BbcodeFormatter::class, 'parser');
|
|
$parserProp->setAccessible(true);
|
|
$parserProp->setValue(
|
|
\Mockery::mock(\s9e\TextFormatter\Parser::class)
|
|
->shouldReceive('parse')
|
|
->andReturn('<r/>')
|
|
->getMock()
|
|
);
|
|
|
|
$rendererProp = new ReflectionProperty(\App\Actions\BbcodeFormatter::class, 'renderer');
|
|
$rendererProp->setAccessible(true);
|
|
$rendererProp->setValue(
|
|
\Mockery::mock(\s9e\TextFormatter\Renderer::class)
|
|
->shouldReceive('render')
|
|
->andReturn('<p></p>')
|
|
->getMock()
|
|
);
|
|
|
|
$user = \App\Models\User::factory()->create();
|
|
\Laravel\Sanctum\Sanctum::actingAs($user);
|
|
|
|
$response = $this->postJson('/api/preview', [
|
|
'body' => '[b]Hello[/b]',
|
|
]);
|
|
|
|
$response->assertOk();
|
|
$response->assertJsonStructure(['html']);
|
|
});
|
|
|
|
it('validates preview body', function (): void {
|
|
$parserProp = new ReflectionProperty(\App\Actions\BbcodeFormatter::class, 'parser');
|
|
$parserProp->setAccessible(true);
|
|
$parserProp->setValue(
|
|
\Mockery::mock(\s9e\TextFormatter\Parser::class)
|
|
->shouldReceive('parse')
|
|
->andReturn('<r/>')
|
|
->getMock()
|
|
);
|
|
|
|
$rendererProp = new ReflectionProperty(\App\Actions\BbcodeFormatter::class, 'renderer');
|
|
$rendererProp->setAccessible(true);
|
|
$rendererProp->setValue(
|
|
\Mockery::mock(\s9e\TextFormatter\Renderer::class)
|
|
->shouldReceive('render')
|
|
->andReturn('<p></p>')
|
|
->getMock()
|
|
);
|
|
|
|
$user = \App\Models\User::factory()->create();
|
|
\Laravel\Sanctum\Sanctum::actingAs($user);
|
|
|
|
$response = $this->postJson('/api/preview', []);
|
|
|
|
$response->assertStatus(422);
|
|
$response->assertJsonValidationErrors(['body']);
|
|
});
|
|
|
|
afterEach(function (): void {
|
|
\Mockery::close();
|
|
});
|