Test upload file with laravel 8, assertExists not working

Viewed 1014

I'm testing upload the files with laravel 8.

My Controller

    public function store(Request $request)
    {
        $path = $request->file('file')->store('uploads');
        return $path;
    }

My test code

 /** @test */
    public function check_file_can_be_uploaded()
    {
        Storage::fake('uploads');
        $file = UploadedFile::fake()->image('document.pdf', 300);
        $data = Contact::factory()->make([
            'file' => $file
        ])->toArray();

        $response = $this->post(route('contact.store'), $data);

        Storage::disk('uploads')->assertExists($file->hashName());

    }

I see the file in storage folder, but phpunit return Unable to find a file at path [08cnFo56Ce8RIBCwUh7eY8hTZxvdv6atMBdozSaH.pdf]. Failed asserting that false is true.

Where am I going wrong?

1 Answers

I'm having the same issue, as a work around I've used the following:

self::assertFileExists(storage_path('app/public/1/' . $file->hashName()));

Your experience may diff as to the path where it stores the file

Related