forked from eatvio/eatvio-infra
filter blog_post by role
This commit is contained in:
@@ -5,27 +5,64 @@ namespace Tests\Feature\BlogPost;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
use Livewire\Livewire;
|
||||
use App\Livewire\BlogPost\ListView;
|
||||
use App\Models\BlogPost;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
|
||||
class IndexTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
protected User $user;
|
||||
private Collection $blogPosts;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
$this->refreshApplicationWithLocale('en');
|
||||
|
||||
$this->user = User::factory()->create(['is_consultant' => true]);
|
||||
$this->user = User::factory()
|
||||
->create();
|
||||
}
|
||||
|
||||
public function test_index_page_success(): void
|
||||
public function test_index_page_show_all_blog_posts_success(): void
|
||||
{
|
||||
$response = $this
|
||||
->actingAs($this->user)
|
||||
->get(route('blog_post.index'));
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$response
|
||||
$count = BlogPost::all()->count();
|
||||
|
||||
$response = Livewire::test(ListView::class)
|
||||
->set('typeFilter', 'all')
|
||||
->assertSet('typeFilter', 'all')
|
||||
->assertViewHas('blogPosts', fn($posts) => count($posts) === $count)
|
||||
->assertOk();
|
||||
}
|
||||
|
||||
|
||||
public function test_index_page_show_is_consultant_blog_posts_success(): void
|
||||
{
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$count = collect(BlogPost::all())->filter(fn($blogPost) => $blogPost->author()->first()->is_consultant)->count();
|
||||
|
||||
$response = Livewire::test(ListView::class)
|
||||
->set('typeFilter', 'consultant')
|
||||
->assertSet('typeFilter', 'consultant')
|
||||
->assertViewHas('blogPosts', fn($posts) => count($posts) === $count)
|
||||
->assertOk();
|
||||
}
|
||||
|
||||
|
||||
public function test_index_page_show_is_user_blog_posts_success(): void
|
||||
{
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$count = collect(BlogPost::all())->filter(fn($blogPost) => !$blogPost->author()->first()->is_consultant)->count();
|
||||
|
||||
$response = Livewire::test(ListView::class)
|
||||
->set('typeFilter', 'user')
|
||||
->assertSet('typeFilter', 'user')
|
||||
->assertViewHas('blogPosts', fn($posts) => count($posts) === $count)
|
||||
->assertOk();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user