feat(player): 点赞与评论改为按集
This commit is contained in:
1 parent
e6f34977f5
commit
83822a0cbb
25 files changed
+337
-69
No files matched your search
@@ -62,6 +62,56 @@ void main() {
|
||||
controller.dispose();
|
||||
});
|
||||
|
||||
test('should_toggle_episode_like_with_plus_one_and_minus_one', () async {
|
||||
final repository = FakeInteractionRepository(
|
||||
nextLikeResult: const LikeToggleResult(liked: true, count: 8),
|
||||
);
|
||||
final controller = InteractionController(repository);
|
||||
|
||||
await controller.toggleEpisodeLike('episode-5');
|
||||
|
||||
expect(repository.likeTargets, ['EPISODE:episode-5']);
|
||||
expect(controller.isEpisodeLiked('episode-5'), isTrue);
|
||||
expect(controller.episodeLikeCount('episode-5'), 8);
|
||||
expect(controller.isLiked('episode-5'), isFalse);
|
||||
|
||||
repository.nextLikeResult = const LikeToggleResult(liked: false, count: 7);
|
||||
await controller.toggleEpisodeLike('episode-5');
|
||||
|
||||
expect(controller.isEpisodeLiked('episode-5'), isFalse);
|
||||
expect(controller.episodeLikeCount('episode-5'), 7);
|
||||
controller.dispose();
|
||||
});
|
||||
|
||||
test('should_isolate_episode_like_cache_by_episode_and_drama', () async {
|
||||
final repository = FakeInteractionRepository(
|
||||
nextLikeResult: const LikeToggleResult(liked: true, count: 8),
|
||||
);
|
||||
final controller = InteractionController(repository);
|
||||
|
||||
await controller.toggleEpisodeLike('episode-1');
|
||||
repository.nextLikeResult = const LikeToggleResult(liked: true, count: 3);
|
||||
await controller.toggleEpisodeLike('episode-2');
|
||||
repository.nextLikeResult = const LikeToggleResult(liked: false, count: 7);
|
||||
await controller.toggleEpisodeLike('episode-1');
|
||||
repository.nextLikeResult = const LikeToggleResult(liked: true, count: 12);
|
||||
await controller.toggleDramaLike('episode-1');
|
||||
|
||||
expect(controller.isEpisodeLiked('episode-1'), isFalse);
|
||||
expect(controller.episodeLikeCount('episode-1'), 7);
|
||||
expect(controller.isEpisodeLiked('episode-2'), isTrue);
|
||||
expect(controller.episodeLikeCount('episode-2'), 3);
|
||||
expect(controller.isLiked('episode-1'), isTrue);
|
||||
expect(controller.likeCount('episode-1'), 12);
|
||||
expect(repository.likeTargets, [
|
||||
'EPISODE:episode-1',
|
||||
'EPISODE:episode-2',
|
||||
'EPISODE:episode-1',
|
||||
'DRAMA:episode-1',
|
||||
]);
|
||||
controller.dispose();
|
||||
});
|
||||
|
||||
test('should_clear_account_scoped_drama_likes_when_session_changes', () async {
|
||||
final repository = FakeInteractionRepository(
|
||||
nextLikeResult: const LikeToggleResult(liked: true, count: 1),
|
||||
|
||||
Reference in new issue
Block a user