Files
ReelShort/test/engagement/engagement_controller_test.dart
T
jianghaifeng 00280ca0da merge: 同步 main 的作者标识提交到 develop
main 的 eaf8fb4 机械性地给全仓加了 // Author 头,develop 侧包名已改 fruitshorts、
并删除了 demo_media/home_feed_category/home_feed_sections 三个文件,故按 develop 口径解决冲突:
保留 fruitshorts 包名与删除结果,补回 Author 头。
2026-10-17 13:48:31 +08:00

49 lines
1.9 KiB
Dart

// Author: fruit.com.cn
import 'package:flutter_test/flutter_test.dart';
import 'package:fruitshorts/core/data/services/engagement_controller.dart';
import 'package:fruitshorts/core/data/repositories/engagement_repository.dart';
import 'package:shared_preferences_platform_interface/in_memory_shared_preferences_async.dart';
import 'package:shared_preferences_platform_interface/shared_preferences_async_platform_interface.dart';
void main() {
test('should_keep_saved_liked_and_comments_by_drama_id_when_toggled', () async {
final repository = InMemoryEngagementRepository();
final first = EngagementController(repository);
await first.load();
await first.toggleSaved('signal');
await first.toggleLiked('signal');
await first.addComment('signal', ' Great clip ');
expect(first.isSaved('signal'), isTrue);
expect(first.isSaved('city'), isFalse);
expect(first.isLiked('city'), isFalse);
expect(first.commentsFor('signal'), ['Great clip']);
expect(first.commentsFor('city'), isEmpty);
final reopened = EngagementController(repository);
await reopened.load();
expect(reopened.isSaved('signal'), isTrue);
expect(reopened.isLiked('signal'), isTrue);
expect(reopened.commentsFor('signal'), ['Great clip']);
await reopened.toggleSaved('signal');
expect(reopened.isSaved('signal'), isFalse);
});
test('should_survive_new_repository_instance_when_engagement_is_local', () async {
SharedPreferencesAsyncPlatform.instance =
InMemorySharedPreferencesAsync.empty();
final first = EngagementController(SharedPreferencesEngagementRepository());
await first.load();
await first.toggleSaved('city');
await first.addComment('city', 'Local note');
final reopened = EngagementController(
SharedPreferencesEngagementRepository(),
);
await reopened.load();
expect(reopened.isSaved('city'), isTrue);
expect(reopened.commentsFor('city'), ['Local note']);
});
}