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));
|
||||
}
|
||||
}
|
||||
@@ -10,26 +10,14 @@ use App\Models\Playlist;
|
||||
use App\Models\PlaylistEpisode;
|
||||
use App\Models\Studios;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabaseState;
|
||||
use Livewire\Livewire;
|
||||
use Tests\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class PlaylistOverviewTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
/**
|
||||
* The repo's post-launch data-fix migrations (e.g. 2026_01_08_213625)
|
||||
* assume a populated production schema and fail on a fresh database, so
|
||||
* the "testing" database is provisioned from a production schema dump
|
||||
* instead of running migrate:fresh.
|
||||
*/
|
||||
protected function migrateDatabases(): void
|
||||
{
|
||||
RefreshDatabaseState::$migrated = true;
|
||||
}
|
||||
|
||||
private function makePlaylist(int $episodeCount = 1): array
|
||||
{
|
||||
$user = User::factory()->create();
|
||||
|
||||
Reference in New Issue
Block a user