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