refreshApplicationWithLocale('en'); Storage::fake('tmp-for-tests'); $this->image = UploadedFile::fake()->image('blogPost.png'); $this->user = User::factory()->create(['is_consultant' => true]); $this->blogPost = BlogPost::factory()->create(); } public function test_show_form_edit_blogPost(): void { $response = $this ->actingAs($this->user) ->get(route('blog_post.edit', $this->blogPost)); $response->assertSuccessful(); } public function test_publish_new_blogPost_success(): void { $this->actingAs($this->user); $updatedBlogPostBeforeToAddDatabase = BlogPost::factory()->make(); $testCase = Livewire::test( Edit::class, [ 'blogPost' => $this->blogPost, ] ) ->set('title', $updatedBlogPostBeforeToAddDatabase->title) ->assertSet('title', $updatedBlogPostBeforeToAddDatabase->title) ->set('state', $updatedBlogPostBeforeToAddDatabase->state) ->assertSet('state', $updatedBlogPostBeforeToAddDatabase->state) ->set('image', $this->image) ->set('description', $updatedBlogPostBeforeToAddDatabase->description) ->assertSet('description', $updatedBlogPostBeforeToAddDatabase->description) ->set('youtube_url', $updatedBlogPostBeforeToAddDatabase->youtube_url) ->assertSet('youtube_url', $updatedBlogPostBeforeToAddDatabase->youtube_url) ->call('publish') ->assertSuccessful() ->assertHasNoErrors(['title', 'state', 'description', 'youtube_url']); $updatedBlogPostAfterToAddDatabase = BlogPost::orderByDesc('id')->first(); $newBlogPostUrl = route('blog_post.show', $updatedBlogPostAfterToAddDatabase); Storage::disk('tmp-for-tests')->assertExists($updatedBlogPostAfterToAddDatabase->image); // check data after update recipe self::assertEquals($updatedBlogPostBeforeToAddDatabase->title, $updatedBlogPostAfterToAddDatabase->title); self::assertEquals($updatedBlogPostBeforeToAddDatabase->state, $updatedBlogPostAfterToAddDatabase->state); self::assertEquals($updatedBlogPostBeforeToAddDatabase->description, $updatedBlogPostAfterToAddDatabase->description); // self::assertEquals($updatedBlogPostBeforeToAddDatabase->youtube_url, $updatedBlogPostAfterToAddDatabase->youtube_url); $testCase->assertRedirect($newBlogPostUrl); } public function test_to_draft_new_blogPost_success(): void { $this->actingAs($this->user); $updatedBlogPostBeforeToAddDatabase = BlogPost::factory()->make(); $testCase = Livewire::test( Edit::class, [ 'blogPost' => $this->blogPost, ] ) ->set('title', $updatedBlogPostBeforeToAddDatabase->title) ->assertSet('title', $updatedBlogPostBeforeToAddDatabase->title) ->set('state', $updatedBlogPostBeforeToAddDatabase->state) ->assertSet('state', $updatedBlogPostBeforeToAddDatabase->state) ->set('image', $this->image) ->set('description', $updatedBlogPostBeforeToAddDatabase->description) ->assertSet('description', $updatedBlogPostBeforeToAddDatabase->description) ->set('youtube_url', $updatedBlogPostBeforeToAddDatabase->youtube_url) ->assertSet('youtube_url', $updatedBlogPostBeforeToAddDatabase->youtube_url) ->call('draft') ->assertSuccessful() ->assertHasNoErrors(['title', 'state', 'description', 'youtube_url']); $updatedBlogPostAfterToAddDatabase = BlogPost::orderByDesc('id')->first(); $newBlogPostUrl = route('blog_post.show', $updatedBlogPostAfterToAddDatabase); Storage::disk('tmp-for-tests')->assertExists($updatedBlogPostAfterToAddDatabase->image); // check data after update recipe self::assertEquals($updatedBlogPostBeforeToAddDatabase->title, $updatedBlogPostAfterToAddDatabase->title); self::assertEquals('archived', $updatedBlogPostAfterToAddDatabase->state); self::assertEquals($updatedBlogPostBeforeToAddDatabase->description, $updatedBlogPostAfterToAddDatabase->description); // self::assertEquals($updatedBlogPostBeforeToAddDatabase->youtube_url, $updatedBlogPostAfterToAddDatabase->youtube_url); $testCase->assertRedirect($newBlogPostUrl); } public function test_to_preview_new_blogPost_success(): void { $this->actingAs($this->user); $updatedBlogPostBeforeToAddDatabase = BlogPost::factory()->make(); $testCase = Livewire::test( Edit::class, [ 'blogPost' => $this->blogPost, ] ) ->set('title', $updatedBlogPostBeforeToAddDatabase->title) ->assertSet('title', $updatedBlogPostBeforeToAddDatabase->title) ->set('state', $updatedBlogPostBeforeToAddDatabase->state) ->assertSet('state', $updatedBlogPostBeforeToAddDatabase->state) ->set('image', $this->image) ->set('description', $updatedBlogPostBeforeToAddDatabase->description) ->assertSet('description', $updatedBlogPostBeforeToAddDatabase->description) ->set('youtube_url', $updatedBlogPostBeforeToAddDatabase->youtube_url) ->assertSet('youtube_url', $updatedBlogPostBeforeToAddDatabase->youtube_url) ->call('preview') ->assertSuccessful() ->assertHasNoErrors(['title', 'state', 'description', 'youtube_url']); $updatedBlogPostAfterToAddDatabase = BlogPost::orderByDesc('id')->first(); $newBlogPostUrl = route('blog_post.show', $updatedBlogPostAfterToAddDatabase); Storage::disk('tmp-for-tests')->assertExists($updatedBlogPostAfterToAddDatabase->image); // check data after update recipe self::assertEquals($updatedBlogPostBeforeToAddDatabase->title, $updatedBlogPostAfterToAddDatabase->title); self::assertEquals('archived', $updatedBlogPostAfterToAddDatabase->state); self::assertEquals($updatedBlogPostBeforeToAddDatabase->description, $updatedBlogPostAfterToAddDatabase->description); // self::assertEquals($updatedBlogPostBeforeToAddDatabase->youtube_url, $updatedBlogPostAfterToAddDatabase->youtube_url); $testCase->assertRedirect($newBlogPostUrl); } public function testNothingChange(): void { $this->actingAs($this->user); $blogPostUpdate = Livewire::test( Edit::class, [ 'blogPost' => $this->blogPost, ] ) ->call('publish') ->assertSuccessful() ->assertHasNoErrors(['title', 'state', 'description', 'youtube_url']); $newBlogPostUrl = route('blog_post.show', $this->blogPost, false); Storage::disk('tmp-for-tests')->assertMissing($blogPostUpdate->image); // check data after update recipe self::assertEquals($this->blogPost->title, $blogPostUpdate->title); self::assertEquals($this->blogPost->state, $blogPostUpdate->state); self::assertEquals($this->blogPost->description, $blogPostUpdate->description); // self::assertEquals($this->blogPost->youtube_url, $blogPostUpdate->youtube_url); $blogPostUpdate->assertRedirect($newBlogPostUrl); } }