mirror of
https://github.com/Ujwal223/FocusGram.git
synced 2026-05-27 17:32:23 +02:00
106 lines
3.2 KiB
Dart
106 lines
3.2 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'package:focusgram/services/settings_service.dart';
|
|
|
|
void main() {
|
|
TestWidgetsFlutterBinding.ensureInitialized();
|
|
|
|
setUp(() {
|
|
SharedPreferences.setMockInitialValues({});
|
|
});
|
|
|
|
group('SettingsService — Phase 2 Extras', () {
|
|
test('defaults are OFF for video download/hide suggested', () async {
|
|
final s = SettingsService();
|
|
await s.init();
|
|
|
|
expect(s.videoDownloadEnabled, isFalse);
|
|
expect(s.hideSuggestedPosts, isFalse);
|
|
});
|
|
|
|
test('setVideoDownloadEnabled persists', () async {
|
|
final s = SettingsService();
|
|
await s.init();
|
|
|
|
await s.setVideoDownloadEnabled(true);
|
|
|
|
final prefs = await SharedPreferences.getInstance();
|
|
expect(s.videoDownloadEnabled, isTrue);
|
|
expect(prefs.getBool('video_download_enabled'), isTrue);
|
|
});
|
|
|
|
test('setHideSuggestedPosts persists', () async {
|
|
final s = SettingsService();
|
|
await s.init();
|
|
|
|
await s.setHideSuggestedPosts(true);
|
|
|
|
final prefs = await SharedPreferences.getInstance();
|
|
expect(s.hideSuggestedPosts, isTrue);
|
|
expect(prefs.getBool('hide_suggested_posts'), isTrue);
|
|
});
|
|
});
|
|
|
|
group('SettingsService — minimal mode', () {
|
|
test(
|
|
'home feed scroll can be disabled while minimal mode stays on',
|
|
() async {
|
|
final s = SettingsService();
|
|
await s.init();
|
|
|
|
await s.setMinimalModeEnabled(true);
|
|
await s.setBlockHomeFeedScrollInternal(false);
|
|
|
|
expect(s.minimalModeEnabled, isTrue);
|
|
expect(s.blockHomeFeedScroll, isFalse);
|
|
|
|
final prefs = await SharedPreferences.getInstance();
|
|
expect(prefs.getBool('internal_block_home_feed_scroll'), isFalse);
|
|
expect(prefs.getBool('minimal_mode_enabled'), isTrue);
|
|
},
|
|
);
|
|
|
|
test(
|
|
'minimal mode turns off when all child features are disabled',
|
|
() async {
|
|
final s = SettingsService();
|
|
await s.init();
|
|
|
|
await s.setMinimalModeEnabled(true);
|
|
await s.setBlurExplore(false);
|
|
await s.setBlockHomeFeedScrollInternal(false);
|
|
await s.setDisableReelsEntirelyInternal(false);
|
|
await s.setDisableExploreEntirelyInternal(false);
|
|
|
|
expect(s.minimalModeEnabled, isFalse);
|
|
expect(s.blurExplore, isFalse);
|
|
expect(s.blockHomeFeedScroll, isFalse);
|
|
expect(s.disableReelsEntirely, isFalse);
|
|
expect(s.disableExploreEntirely, isFalse);
|
|
},
|
|
);
|
|
});
|
|
|
|
group('SettingsService — v2 filtering split', () {
|
|
test(
|
|
'ad blocker and suggested posts toggles persist independently',
|
|
() async {
|
|
final s = SettingsService();
|
|
await s.init();
|
|
|
|
await s.setV2AdBlockerDomEnabled(true);
|
|
await s.setContentSuggestedEnabled(true);
|
|
await s.setV2AdBlockerDomEnabled(false);
|
|
|
|
expect(s.v2AdBlockerDomEnabled, isFalse);
|
|
expect(s.contentSuggested, isTrue);
|
|
expect(s.v2ContentHiderEnabled, isTrue);
|
|
|
|
final prefs = await SharedPreferences.getInstance();
|
|
expect(prefs.getBool('v2_adblock_dom_enabled'), isFalse);
|
|
expect(prefs.getBool('content_suggested'), isTrue);
|
|
},
|
|
);
|
|
});
|
|
}
|