32 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.4 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"'],
 | |
|     'renders required' => ['<x-form::label value="" required/>', [], 'x-if="true"'],
 | |
|     'renders required' => ['<x-form::label value="" />', [], 'x-if="false"'],
 | |
| ]);
 |