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