mirror of
https://github.com/Ujwal223/FocusGram.git
synced 2026-07-08 04:07:51 +02:00
Feature Pack with bug fixes for V2
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
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 — Ghost mode toggle', () {
|
||||
test('ghostMode defaults to false', () async {
|
||||
final s = SettingsService();
|
||||
await s.init();
|
||||
expect(s.ghostMode, isFalse);
|
||||
});
|
||||
|
||||
test('ghostMode toggle persists and loads on restart', () async {
|
||||
final s = SettingsService();
|
||||
await s.init();
|
||||
await s.setGhostMode(true);
|
||||
|
||||
expect(s.ghostMode, isTrue);
|
||||
|
||||
// Simulate restart by creating a new instance with saved prefs
|
||||
final s2 = SettingsService();
|
||||
await s2.init();
|
||||
expect(s2.ghostMode, isTrue);
|
||||
});
|
||||
|
||||
test('ghostMode toggles off correctly', () async {
|
||||
final s = SettingsService();
|
||||
await s.init();
|
||||
await s.setGhostMode(true);
|
||||
expect(s.ghostMode, isTrue);
|
||||
|
||||
await s.setGhostMode(false);
|
||||
expect(s.ghostMode, isFalse);
|
||||
});
|
||||
});
|
||||
|
||||
group('SettingsService — Grayscale persistence', () {
|
||||
test('grayscaleEnabled defaults to false', () async {
|
||||
final s = SettingsService();
|
||||
await s.init();
|
||||
expect(s.grayscaleEnabled, isFalse);
|
||||
});
|
||||
|
||||
test('setGrayscaleEnabled persists and isActiveNow returns true', () async {
|
||||
final s = SettingsService();
|
||||
await s.init();
|
||||
await s.setGrayscaleEnabled(true);
|
||||
|
||||
expect(s.grayscaleEnabled, isTrue);
|
||||
expect(s.isGrayscaleActiveNow, isTrue);
|
||||
|
||||
// Simulate restart
|
||||
final s2 = SettingsService();
|
||||
await s2.init();
|
||||
expect(s2.grayscaleEnabled, isTrue);
|
||||
});
|
||||
|
||||
test('isGrayscaleActiveNow returns true when toggle is on', () async {
|
||||
final s = SettingsService();
|
||||
await s.init();
|
||||
await s.setGrayscaleEnabled(true);
|
||||
expect(s.isGrayscaleActiveNow, isTrue);
|
||||
});
|
||||
|
||||
test('isGrayscaleActiveNow returns false when toggle off and no schedules',
|
||||
() async {
|
||||
final s = SettingsService();
|
||||
await s.init();
|
||||
expect(s.isGrayscaleActiveNow, isFalse);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user