filter blog_post by role

This commit is contained in:
2024-01-23 16:10:20 +03:00
parent dbaeb9dfd7
commit c6c79ade08
4 changed files with 50 additions and 16 deletions

View File

@@ -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();
}
}