Básicamente, estamos configurando el componente FileUpload de Livewire para que mantenga los nombres originales de los archivos cuando los subes. Sin esta configuración, es posible que los nombres se cambien a algo más genérico o aleatorio, lo cual no siempre es lo ideal.
FileUpload::configureUsing(function (FileUpload $component) { $component->preserveFilenames(); });
En el contexto de pruebas, esta configuración es clave si quieres asegurarte de que el sistema maneje los archivos tal como lo haría en producción. Por ejemplo, si tus pruebas dependen de rutas de archivos específicas o si necesitas verificar que los nombres no cambien en el proceso, esta configuración te ayudará a que todo se mantenga en orden.
it('can create', function () { $user = User::factory()->create()->assignRole('super_admin'); $this->actingAs($user); FileUpload::configureUsing(function (FileUpload $component) { $component->preserveFilenames(); }); $file = UploadedFile::fake()->image('test.png'); $newData = Post::factory()->make(); livewire(CreatePost::class) ->fillForm([ 'title' => $newData->title, 'body' => $newData->body, 'category_id' => $newData->category_id, 'subtitle' => $newData->subtitle, 'published_at' => $newData->published_at->format('Y-m-d H:i:s'), 'image' => $file, ]) ->call('create') ->assertHasNoFormErrors(); $this->assertDatabaseHas(Post::class, [ 'title' => $newData->title, 'body' => $newData->body, 'category_id' => $newData->category_id, 'subtitle' => $newData->subtitle, 'published_at' => $newData->published_at->format('Y-m-d H:i:s'), 'image' => 'test.png', 'user_id' => auth()->user()->id, 'slug' => Str::slug($newData->title), ]); });
Este código es un pequeño truco para mantener las cosas organizadas cuando trabajas con archivos en Laravel Livewire. Te asegura que los nombres de los archivos no se cambien, lo cual puede ser crucial dependiendo de lo que estés haciendo en tu proyecto. ¡Y todo con unas pocas líneas de código!