From 1d1df92d8f2d74cb118c5fefdd9ffd0eb3eb99ef Mon Sep 17 00:00:00 2001 From: "Christopher C. Wells" Date: Wed, 21 Apr 2021 08:53:41 -0700 Subject: [PATCH] Add media to User Controller test instances --- database/Factories/UserFactory.php | 18 ++++++++++++++++++ .../Http/Controllers/UserControllerTest.php | 8 ++++++++ tests/LogsIn.php | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/database/Factories/UserFactory.php b/database/Factories/UserFactory.php index 8b3192d..b6fa61c 100644 --- a/database/Factories/UserFactory.php +++ b/database/Factories/UserFactory.php @@ -4,7 +4,9 @@ namespace Database\Factories; use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; class UserFactory extends Factory @@ -35,4 +37,20 @@ class UserFactory extends Factory { return $this->state(['admin' => true]); } + + /** + * Create a user and add fake media to it. + */ + public function createOneWithMedia(array $attributes = []): User { + Storage::fake('tests'); + /** @var \App\Models\User $user */ + $user = $this->createOne($attributes); + $file = UploadedFile::fake()->image('user.jpg', 400, 400); + $path = $file->store('tests'); + $user->addMediaFromDisk($path) + ->usingName($user->name) + ->usingFileName("{$user->slug}.jpg") + ->toMediaCollection(); + return $user; + } } diff --git a/tests/Feature/Http/Controllers/UserControllerTest.php b/tests/Feature/Http/Controllers/UserControllerTest.php index 622db8a..9d05add 100644 --- a/tests/Feature/Http/Controllers/UserControllerTest.php +++ b/tests/Feature/Http/Controllers/UserControllerTest.php @@ -33,6 +33,14 @@ class UserControllerTest extends HttpControllerTestCase return 'user'; } + /** + * @inheritdoc + */ + protected function createInstance(): User + { + return $this->factory()->createOneWithMedia(); + } + /** * @doesNotPerformAssertions */ diff --git a/tests/LogsIn.php b/tests/LogsIn.php index ec4c245..9f08381 100644 --- a/tests/LogsIn.php +++ b/tests/LogsIn.php @@ -32,7 +32,7 @@ trait LogsIn $this->user = User::factory() ->hasGoals(2) ->hasJournalEntries(5) - ->create(['admin' => false]); + ->createOneWithMedia(['admin' => false]); $this->post('/login', [ 'username' => $this->user->username, 'password' => 'password',