71 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace Tests\Feature\Form;
 | |
| 
 | |
| use App\Form\Models\Form;
 | |
| use Illuminate\Foundation\Testing\DatabaseTransactions;
 | |
| use Illuminate\Support\Arr;
 | |
| use Tests\Lib\CreatesFormFields;
 | |
| 
 | |
| uses(DatabaseTransactions::class);
 | |
| uses(CreatesFormFields::class);
 | |
| 
 | |
| beforeEach(function () {
 | |
|     test()->fakeMessages();
 | |
|     test()->setUpForm();
 | |
| });
 | |
| 
 | |
| dataset('media', fn () => [
 | |
|     ['mailattachments'],
 | |
|     ['headerImage'],
 | |
| ]);
 | |
| 
 | |
| it('copies a form', function () {
 | |
|     test()->login()->loginNami()->withoutExceptionHandling();
 | |
|     $form = Form::factory()->name('Lager')->create();
 | |
| 
 | |
|     test()->post(route('form.copy', ['form' => $form]))
 | |
|         ->assertOk();
 | |
| 
 | |
|     test()->assertDatabaseCount('forms', 2);
 | |
| 
 | |
|     $newForm = Form::where('name', 'Lager - Kopie')->firstOrFail();
 | |
|     test()->assertEquals(
 | |
|         Arr::except($form->fresh()->toArray(), ['id', 'name', 'slug', 'created_at', 'updated_at', 'is_active']),
 | |
|         Arr::except($newForm->fresh()->toArray(), ['id', 'name', 'slug', 'created_at', 'updated_at', 'is_active'])
 | |
|     );
 | |
| });
 | |
| 
 | |
| it('copies the forms media', function (string $collectionName) {
 | |
|     test()->login()->loginNami()->withoutExceptionHandling();
 | |
|     $form = Form::factory()->withImage($collectionName, 'lala.jpg')->name('Lager')->create();
 | |
| 
 | |
|     test()->post(route('form.copy', ['form' => $form]))->assertOk();
 | |
| 
 | |
|     test()->assertDatabaseCount('forms', 2);
 | |
| 
 | |
|     $newForm = Form::where('name', 'Lager - Kopie')->firstOrFail();
 | |
|     test()->assertEquals($form->getMedia($collectionName)->first()->name, $newForm->getMedia($collectionName)->first()->name);
 | |
|     test()->assertNotEquals($form->getMedia($collectionName)->first()->id, $newForm->getMedia($collectionName)->first()->id);
 | |
|     test()->assertNotEquals($form->getMedia($collectionName)->first()->getFullUrl(), $newForm->getMedia($collectionName)->first()->getFullUrl());
 | |
| })->with('media');
 | |
| 
 | |
| it('deactivates a copied form', function () {
 | |
|     test()->login()->loginNami()->withoutExceptionHandling();
 | |
|     $form = Form::factory()->name('Lager')->create(['is_active' => true]);
 | |
| 
 | |
|     test()->post(route('form.copy', ['form' => $form]))->assertOk();
 | |
| 
 | |
|     $newForm = Form::where('name', 'Lager - Kopie')->firstOrFail();
 | |
|     test()->assertEquals(false, $newForm->is_active);
 | |
| });
 | |
| 
 | |
| it('shows success message', function () {
 | |
|     test()->login()->loginNami()->withoutExceptionHandling();
 | |
|     $form = Form::factory()->create();
 | |
| 
 | |
|     test()->post(route('form.copy', ['form' => $form]))->assertOk();
 | |
| 
 | |
|     test()->assertSuccessMessage('Veranstaltung kopiert.');
 | |
| });
 |