Error while testing file uploads

Posted 1 year ago by iampawan31

So i am trying to add a profile image feature in my app. I am using the TDD approach to do this. Below is the relevant code:

Controller

public function store(StoreAvatarRequest $request)
    {
        $path = $request->file('avatar')->store('avatars');

        BasicInformation::updateOrCreate([
            'user_id' => auth()->id(),
        ], [
            'user_id' => auth()->id(),
            'avatar' => $path,
        ]);

        $this->showAlerts('alert-success', 'Profile Image uploaded successfully');

        return redirect()->route('avatar.index');

    }

public function update(StoreAvatarRequest $request, $id)
    {
        $basicProfile = BasicInformation::find($id)->first();
        $oldAvatarPath = $basicProfile->avatar;

        if ($basicProfile->user_id == auth()->id()) {
            $path = $request->file('avatar')->store('avatars');

            $basicProfile->avatar = $path;
            $basicProfile->update();

            Storage::delete($oldAvatarPath);
            $this->showAlerts('alert-success', 'Profile Image Updated Successfully');

            return redirect()->route('avatar.index');
        } else {
            // TODO :: Need to add logic here
        }
    }

Test Case:

public function can_update_profile_picture()
    {
        $this->actingAs($this->lawyer)->post(route('avatar.store'), [
            'avatar' => UploadedFile::fake()->image('avatar.jpg', 600, 600)
        ]);

        $oldImagePath = $this->lawyer->information->avatar;

        $this->actingAs($this->lawyer)->put(route('avatar.update', ['id' => $this->lawyer->information->id]), [
            'avatar' => UploadedFile::fake()->image('avatar1.jpg', 600, 600)
        ])
            ->assertRedirect(route('avatar.index'))
            ->assertSessionHas('status', 'Profile Image Updated Successfully');

        Storage::disk('local')->assertExists($oldImagePath);
        Storage::disk('local')->assertMissing($oldImagePath);
    }

I am getting the following error when i run the test

PHPUnit 5.7.19 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 298 ms, Memory: 20.00MB

There was 1 failure:

1) Tests\Feature\Dashboard\Lawyer\Account\ProfileImageTest::can_update_profile_picture
Unable to find a file at path [local/c5tjUUQDzU4iKHauJK68Z801I5iaYJ7e3cVQ5iA1.jpeg].
Failed asserting that false is true.

Please sign in or create an account to participate in this conversation.

Reply to

Use Markdown with GitHub-flavored code blocks.