33 lines
1.5 KiB
PHP
33 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\View\Form;
|
|
|
|
use Illuminate\Support\Facades\Blade;
|
|
use Tests\TestCase;
|
|
|
|
uses(TestCase::class);
|
|
|
|
it('renders component', function ($component, $params, $expected = '', $notExpected = '') {
|
|
$rendered = Blade::render($component, $params);
|
|
|
|
if ($expected) {
|
|
expect($rendered)->toContain($expected);
|
|
}
|
|
|
|
if ($notExpected) {
|
|
expect($rendered)->not()->toContain($notExpected);
|
|
}
|
|
})->with([
|
|
'component parameter' => ['<x-form::label :value="$label" />', ['label' => 'the label'], 'x-text="`the label`"'],
|
|
'component parameter with double quotes' => ['<x-form::label :value="$label" />', ['label' => 'the "label"'], 'x-text="`the "label"`"'],
|
|
'component parameter with ``' => ['<x-form::label value="the `label`" />', [], 'x-text="`the \\`label\\``"'],
|
|
'escape dollars' => ['<x-form::label value="the $label" />', [], 'x-text="`the \\$label`"'],
|
|
'escape kl' => ['<x-form::label value="the {label}" />', [], 'x-text="`the \\{label\\}`"'],
|
|
'raw php string' => ['<x-form::label value="the label" />', [], 'x-text="`the label`"'],
|
|
'raw js string' => ['<x-form::label ::value="theLabel" />', [], 'x-text="theLabel"'],
|
|
'raw js string with tag' => ['<x-form::label ::value="the<Label" />', [], 'x-text="the<Label"'],
|
|
'raw js string empty' => ['<x-form::label value="lala" ::value="" />', [], 'x-text="`lala`"'],
|
|
'renders required' => ['<x-form::label value="" required/>', [], 'x-if="true"'],
|
|
'renders required' => ['<x-form::label value="" />', [], 'x-if="false"'],
|
|
]);
|