62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace Tests\Feature\Form;
 | |
| 
 | |
| use App\Form\Models\Form;
 | |
| use App\Form\Models\Formtemplate;
 | |
| use App\Lib\Events\Succeeded;
 | |
| use Illuminate\Foundation\Testing\DatabaseTransactions;
 | |
| use Illuminate\Support\Facades\Event;
 | |
| use Tests\RequestFactories\EditorRequestFactory;
 | |
| use Tests\TestCase;
 | |
| 
 | |
| class FormtemplateUpdateActionTest extends TestCase
 | |
| {
 | |
| 
 | |
|     use DatabaseTransactions;
 | |
| 
 | |
|     public function testItUpdatesTemplates(): void
 | |
|     {
 | |
|         Event::fake([Succeeded::class]);
 | |
|         $this->login()->loginNami()->withoutExceptionHandling();
 | |
|         $formtemplate = Formtemplate::factory()->create();
 | |
|         FormtemplateRequest::new()->name('testname')->fake();
 | |
| 
 | |
|         $this->patchJson(route('formtemplate.update', ['formtemplate' => $formtemplate]))
 | |
|             ->assertOk();
 | |
| 
 | |
|         $this->assertDatabaseHas('formtemplates', [
 | |
|             'name' => 'Testname',
 | |
|         ]);
 | |
|         Event::assertDispatched(Succeeded::class, fn (Succeeded $event) => $event->message === 'Vorlage aktualisiert.');
 | |
|     }
 | |
| 
 | |
|     public function testItUpdatesTexts(): void
 | |
|     {
 | |
|         $this->login()->loginNami()->withoutExceptionHandling();
 | |
|         $formtemplate = Formtemplate::factory()->create();
 | |
|         $payload = FormtemplateRequest::new()
 | |
|             ->mailTop(EditorRequestFactory::new()->text(10, 'lala'))
 | |
|             ->mailBottom(EditorRequestFactory::new()->text(10, 'lalb'))
 | |
|             ->create();
 | |
| 
 | |
|         $this->patchJson(route('formtemplate.update', ['formtemplate' => $formtemplate]), $payload)
 | |
|             ->assertOk();
 | |
| 
 | |
|         $this->assertEquals('lala', Formtemplate::first()->mail_top->blocks[0]['data']['text']);
 | |
|         $this->assertEquals('lalb', Formtemplate::first()->mail_bottom->blocks[0]['data']['text']);
 | |
|     }
 | |
| 
 | |
|     public function testNameIsRequired(): void
 | |
|     {
 | |
|         $this->login()->loginNami();
 | |
| 
 | |
|         $this->postJson(route('formtemplate.store'), [
 | |
|             'name' => '',
 | |
|             'config' => [
 | |
|                 'sections' => []
 | |
|             ]
 | |
|         ])->assertJsonValidationErrors(['name' => 'Name ist erforderlich']);
 | |
|     }
 | |
| }
 |