From 7cefb75bfa49b420970365bfa77eb6a1af683535 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Sun, 24 Dec 2023 23:27:17 +0300 Subject: [PATCH] deleted EditFormTest and added EditTest --- tests/Feature/Recipe/EditFormTest.php | 42 ------ tests/Feature/Recipe/EditTest.php | 192 ++++++++++++++++++++++++++ 2 files changed, 192 insertions(+), 42 deletions(-) delete mode 100644 tests/Feature/Recipe/EditFormTest.php create mode 100644 tests/Feature/Recipe/EditTest.php diff --git a/tests/Feature/Recipe/EditFormTest.php b/tests/Feature/Recipe/EditFormTest.php deleted file mode 100644 index 8b24072..0000000 --- a/tests/Feature/Recipe/EditFormTest.php +++ /dev/null @@ -1,42 +0,0 @@ -refreshApplicationWithLocale('en'); - - $this->user = User::factory()->create(['is_consultant' => true]); - - $this->recipe = Recipe::inRandomOrder()->first(); - } - - public function test_edit_page_recipe_success(): void - { - $response = $this - ->actingAs($this->user) - ->get(route('recipe.edit', $this->recipe, false)); - - $response->assertSuccessful(); - } - -} - diff --git a/tests/Feature/Recipe/EditTest.php b/tests/Feature/Recipe/EditTest.php new file mode 100644 index 0000000..ba5bb22 --- /dev/null +++ b/tests/Feature/Recipe/EditTest.php @@ -0,0 +1,192 @@ +refreshApplicationWithLocale('en'); + + $this->user = User::factory()->create(['is_consultant' => true]); + + $this->recipe = Recipe::inRandomOrder()->first(); + } + + public function test_edit_page_recipe_success(): void + { + $response = $this + ->actingAs($this->user) + ->get(route('recipe.edit', $this->recipe, false)); + + $response->assertSuccessful(); + } + + public function testUpdateRecipePublishSuccess(): void + { + $this->actingAs($this->user); + + $recipe = $this->recipe = Recipe::factory()->make(); + + $recipeUpdate = Livewire::test(Edit::class, [ + 'recipe' => $this->recipe, + ]) + ->set('title', $recipe->title) + ->assertSet('title', $recipe->title) + ->set('image', $recipe->image) + ->set('state', $recipe->state) + ->assertSet('state', $recipe->state) + ->set('cooking_time', $recipe->cooking_time) + ->assertSet('cooking_time', $recipe->cooking_time) + ->set('ingredients', $recipe->ingredients) + ->assertSet('ingredients', $recipe->ingredients) + ->set('type', $recipe->type) + ->assertSet('type', $recipe->type) + ->set('description', $recipe->description) + ->assertSet('description', $recipe->description) + ->set('video_url', $recipe->video_url) + ->assertSet('video_url', $recipe->video_url) + ->call('publish') + ->assertSuccessful() + ->assertHasNoErrors(['title', 'image', 'state', 'cooking_time', 'ingredients', 'type', 'description', 'steps', 'video_url']); + + Storage::disk('public')->assertExists($this->recipe->image); + + // check data after update recipe + self::assertEquals($recipe->title, $recipeUpdate->title); + self::assertEquals($recipe->image, $recipeUpdate->image); + self::assertEquals($recipe->state, $recipeUpdate->state); + self::assertEquals($recipe->cooking_time, $recipeUpdate->cooking_time); + self::assertEquals($recipe->ingredients, $recipeUpdate->ingredients); + self::assertEquals($recipe->type, $recipeUpdate->type); + self::assertEquals($recipe->description, $recipeUpdate->description); + self::assertEquals($recipe->video_url, $recipeUpdate->video_url); + } + + + public function testUpdateRecipeDraftSuccess(): void + { + $this->actingAs($this->user); + + $recipe = $this->recipe = Recipe::factory()->make(); + + $recipeUpdate = Livewire::test(Edit::class, [ + 'recipe' => $this->recipe, + ]) + ->set('title', $recipe->title) + ->assertSet('title', $recipe->title) + ->set('image', $recipe->image) + ->set('state', $recipe->state) + ->assertSet('state', $recipe->state) + ->set('cooking_time', $recipe->cooking_time) + ->assertSet('cooking_time', $recipe->cooking_time) + ->set('ingredients', $recipe->ingredients) + ->assertSet('ingredients', $recipe->ingredients) + ->set('type', $recipe->type) + ->assertSet('type', $recipe->type) + ->set('description', $recipe->description) + ->assertSet('description', $recipe->description) + ->set('video_url', $recipe->video_url) + ->assertSet('video_url', $recipe->video_url) + ->call('draft') + ->assertSuccessful() + ->assertHasNoErrors(['title', 'image', 'state', 'cooking_time', 'ingredients', 'type', 'description', 'steps', 'video_url']); + + Storage::disk('public')->assertExists($this->recipe->image); + + // check data after update recipe + self::assertEquals($recipe->title, $recipeUpdate->title); + self::assertEquals($recipe->image, $recipeUpdate->image); + self::assertEquals('archived', $recipeUpdate->state); + self::assertEquals($recipe->cooking_time, $recipeUpdate->cooking_time); + self::assertEquals($recipe->ingredients, $recipeUpdate->ingredients); + self::assertEquals($recipe->type, $recipeUpdate->type); + self::assertEquals($recipe->description, $recipeUpdate->description); + self::assertEquals($recipe->video_url, $recipeUpdate->video_url); + } + + + public function testUpdateRecipePreviewSuccess(): void + { + $this->actingAs($this->user); + + $recipe = $this->recipe = Recipe::factory()->make(); + + $recipeUpdate = Livewire::test(Edit::class, [ + 'recipe' => $this->recipe, + ]) + ->set('title', $recipe->title) + ->assertSet('title', $recipe->title) + ->set('image', $recipe->image) + ->set('state', $recipe->state) + ->assertSet('state', $recipe->state) + ->set('cooking_time', $recipe->cooking_time) + ->assertSet('cooking_time', $recipe->cooking_time) + ->set('ingredients', $recipe->ingredients) + ->assertSet('ingredients', $recipe->ingredients) + ->set('type', $recipe->type) + ->assertSet('type', $recipe->type) + ->set('description', $recipe->description) + ->assertSet('description', $recipe->description) + ->set('video_url', $recipe->video_url) + ->assertSet('video_url', $recipe->video_url) + ->call('preview') + ->assertSuccessful() + ->assertHasNoErrors(['title', 'image', 'state', 'cooking_time', 'ingredients', 'type', 'description', 'steps', 'video_url']); + + Storage::disk('public')->assertExists($this->recipe->image); + + // check data after update recipe + self::assertEquals($recipe->title, $recipeUpdate->title); + self::assertEquals($recipe->image, $recipeUpdate->image); + self::assertEquals('archived', $recipeUpdate->state); + self::assertEquals($recipe->cooking_time, $recipeUpdate->cooking_time); + self::assertEquals($recipe->ingredients, $recipeUpdate->ingredients); + self::assertEquals($recipe->type, $recipeUpdate->type); + self::assertEquals($recipe->description, $recipeUpdate->description); + self::assertEquals($recipe->video_url, $recipeUpdate->video_url); + } + + + public function testNothingChange(): void + { + $this->actingAs($this->user); + + $recipeUpdate = Livewire::test(Edit::class, [ + 'recipe' => $this->recipe, + ]) + ->call('publish') + ->assertSuccessful() + ->assertHasNoErrors(['title', 'image', 'state', 'cooking_time', 'ingredients', 'type', 'description', 'steps', 'video_url']); + + Storage::disk('public')->assertExists($this->recipe->image); + + // check data after update recipe + self::assertEquals($this->recipe->title, $recipeUpdate->title); + self::assertEquals($this->recipe->image, $recipeUpdate->image); + self::assertEquals($this->recipe->state, $recipeUpdate->state); + self::assertEquals($this->recipe->cooking_time, $recipeUpdate->cooking_time); + self::assertEquals($this->recipe->ingredients, $recipeUpdate->ingredients); + self::assertEquals($this->recipe->type, $recipeUpdate->type); + self::assertEquals($this->recipe->description, $recipeUpdate->description); + self::assertEquals($this->recipe->video_url, $recipeUpdate->video_url); + } + +}