adrema/tests/Unit/View/Form/LabelTest.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 &quot;label&quot;`"'],
'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"'],
]);