Mahmoud Alrashidi نشر 2 مارس 2021 أرسل تقرير نشر 2 مارس 2021 أحاول إختبار خاصية رفع فيديو عن طريق Laravel Livewire بالرغم من أن خاصية الرفع تعمل إلا أن الإختبار يفشل و لا أدر أين المُشكلة، هذا إختبار الخاصية: public function can_upload_video() { $sizeInKilobytes = 100000; $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); Storage::fake('videos_disk'); $this->actingAs(User::factory()->create()); Livewire::test(Create::class) ->set('title', 'foo') ->set('video', $file) ->call('upload'); dd(Storage::disk('videos_disk')->allFiles()); } و هذا مُكون livewire: class Create extends Component { use WithFileUploads; use DispatchesJobs; public $video; public $title, public function upload() { $this->validate([ 'title' => 'required', 'video' => 'max:1000000|required|file|mimetypes:video/mp4,video/mpeg,video/x-matroska', ]); $video = Video::create([ 'disk' => 'videos_disk', 'original_name' => $this->video->getClientOriginalName(), 'path' => $this->video->store('/', 'videos_disk'), 'streaming_path'=> null, 'title' => $this->title, ]); $this->dispatch(new ConvertVideoForStreaming($video)); } } الخاصية تعمل لكن عند تنفيذ الإختبار يُعطي مصفوفة فارغة. المُتوقع أن يعطيني مصفوفة بها الملف المرفوع. 1 اقتباس
1 سمير عبود نشر 2 مارس 2021 أرسل تقرير نشر 2 مارس 2021 هذا غالباً يحدث بسبب فشل ال validation حيث أنك تتحقق من mime type لكن في الإختبار الملف الوهمي لا يحتوي على نفس mime type هنا: <?php $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); لذلك حاول تغيير هذه الأسطر: <?php $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); إلى mime type صحيح بهذا الشكل: <?php $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'video/mp4' ); 1 اقتباس
0 بلال زيادة نشر 2 مارس 2021 أرسل تقرير نشر 2 مارس 2021 يمكنك تغيير الكود التالي $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); إلى $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'video/mp4' ); بحيث تم تغيير mime إلى mime صحيح. إيضا حاول استخدام ملف وسائط حقيقي بدلاً من ملف وسائط مزيف. $path = <path to your file>; $file = new UploadedFile($path, $name, filesize($path), 'video/mp4', null, true); اقتباس
السؤال
Mahmoud Alrashidi
أحاول إختبار خاصية رفع فيديو عن طريق Laravel Livewire بالرغم من أن خاصية الرفع تعمل إلا أن الإختبار يفشل و لا أدر أين المُشكلة،
هذا إختبار الخاصية:
و هذا مُكون livewire:
الخاصية تعمل لكن عند تنفيذ الإختبار يُعطي مصفوفة فارغة. المُتوقع أن يعطيني مصفوفة بها الملف المرفوع.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.