import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:ignis_app/features/settings/models/app_theme_preset.dart'; import 'package:ignis_app/features/settings/providers/settings_providers.dart'; import 'package:ignis_app/features/shared/providers/core_providers.dart'; import 'package:ignis_app/services/settings_service.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'test_support.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); test('app theme notifier updates state and persists selection', () async { SharedPreferences.setMockInitialValues({}); final settingsService = SettingsService( credentialsStorage: InMemoryCredentialsStorage(), ); final container = ProviderContainer( overrides: [ settingsServiceProvider.overrideWithValue(settingsService), initialAppThemePresetProvider.overrideWithValue(AppThemePreset.ember), ], ); addTearDown(container.dispose); await container .read(appThemeProvider.notifier) .setTheme(AppThemePreset.graphite); expect(container.read(appThemeProvider), AppThemePreset.graphite); expect(await settingsService.getAppThemePreset(), AppThemePreset.graphite); }); }