import 'package:flutter_test/flutter_test.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:social_app/data/cache/cache_scope.dart'; import 'package:social_app/data/cache/cache_store.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); group('HybridCacheStore', () { test('falls back to persistent and backfills memory', () async { SharedPreferences.setMockInitialValues({}); final prefs = await SharedPreferences.getInstance(); final persistent = PersistentCacheStore(prefs: prefs); await persistent.write('k', 'v'); final hybrid = HybridCacheStore( memory: MemoryCacheStore(), persistent: persistent, ); final firstRead = await hybrid.read('k'); expect(firstRead, 'v'); await persistent.remove('k'); final secondRead = await hybrid.read('k'); expect(secondRead, 'v'); }); test('cache invalidator no-ops without configured scope', () async { CacheScope.resetProvider(); final invalidator = CacheInvalidator( store: HybridCacheStore( memory: MemoryCacheStore(), persistent: PersistentCacheStore(), ), ); expect( () => invalidator.invalidate('calendar:day:2026-03-31'), returnsNormally, ); }); }); }