Update tests
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature\Livewire;
|
||||
|
||||
use App\Livewire\LikeButton;
|
||||
use App\Models\Episode;
|
||||
use App\Models\Hentai;
|
||||
use App\Models\Studios;
|
||||
use App\Models\User;
|
||||
use Livewire\Livewire;
|
||||
use Maize\Markable\Models\Like;
|
||||
use Tests\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class LikeButtonTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
private function makeEpisode(): Episode
|
||||
{
|
||||
$hentai = Hentai::factory()->create();
|
||||
$studio = Studios::factory()->create();
|
||||
|
||||
return Episode::factory()->create([
|
||||
'hentai_id' => $hentai->id,
|
||||
'studios_id' => $studio->id,
|
||||
]);
|
||||
}
|
||||
|
||||
public function test_guest_like_is_a_noop(): void
|
||||
{
|
||||
$episode = $this->makeEpisode();
|
||||
|
||||
Livewire::test(LikeButton::class, ['episode' => $episode])
|
||||
->call('like');
|
||||
|
||||
$this->assertDatabaseCount('markable_likes', 0);
|
||||
}
|
||||
|
||||
public function test_user_can_toggle_like(): void
|
||||
{
|
||||
$episode = $this->makeEpisode();
|
||||
$user = User::factory()->create();
|
||||
$this->actingAs($user);
|
||||
|
||||
Livewire::test(LikeButton::class, ['episode' => $episode])
|
||||
->call('like')
|
||||
->assertSet('liked', true)
|
||||
->assertSet('likeCount', 1);
|
||||
|
||||
$this->assertTrue(Like::has($episode, $user));
|
||||
|
||||
Livewire::test(LikeButton::class, ['episode' => $episode->fresh()])
|
||||
->call('like')
|
||||
->assertSet('liked', false)
|
||||
->assertSet('likeCount', 0);
|
||||
|
||||
$this->assertFalse(Like::has($episode, $user));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user