35 lines
1.3 KiB
Dart
35 lines
1.3 KiB
Dart
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);
|
|
});
|
|
}
|