dimanche 9 février 2020

Laravel test unable to find a file at path using Storage::fake()

I have created my own 'disk' in config/filesystems.php which looks like so;

'uploads' => [
    'driver' => 'local',
    'root' => storage_path('app/public') . '/uploads'
],

This seems to work fine when in my controller, it uploads the file and returns a response. my code is as follows;

public function store(Request $request)
{
    if ($request->hasFile('filename')) {
        foreach ($request->file('filename') as $image) {
            $fileName = md5($image . microtime()) . '.' . $image->getClientOriginalExtension();
            $image->storeAs('', $fileName, 'uploads');
        }
    }

    // return goes here
}

but when I go to test my store method using the following code;

public function testUserCanSuccessfullySubmitSingleImage(): void
{
    Storage::fake('uploads');

    $this->postJson('/upload', [
        'filename' => UploadedFile::fake()->image('image1.jpg')
    ]);

    Storage::disk('uploads')->assertExists('image1.jpg');
    Storage::disk('uploads')->assertMissing('missing.jpg');
}

I get the following error;

Unable to find a file at path [image1.jpg].
Failed asserting that false is true.

I have followed a few tutorials, but they all say the same thing and im really lost.

Any help would be greatly appreciated.

Cheers



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/2OG8nAV
via IFTTT

Aucun commentaire:

Enregistrer un commentaire