Files
ReelShort/test/core/locale_controller_test.dart
T

40 lines
1.2 KiB
Dart

// Author: fruit.com.cn
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:fruitshorts/core/data/services/locale_controller.dart';
import 'package:shared_preferences_platform_interface/in_memory_shared_preferences_async.dart';
import 'package:shared_preferences_platform_interface/shared_preferences_async_platform_interface.dart';
void main() {
setUp(() {
SharedPreferencesAsyncPlatform.instance =
InMemorySharedPreferencesAsync.empty();
});
test('should_restore_saved_locale_when_controller_loads', () async {
SharedPreferencesAsyncPlatform.instance =
InMemorySharedPreferencesAsync.withData({
LocaleController.preferenceKey: 'zh',
});
final controller = LocaleController();
await controller.load();
expect(controller.locale?.languageCode, 'zh');
controller.dispose();
});
test('should_persist_selected_locale_for_next_launch', () async {
final controller = LocaleController();
await controller.select(const Locale('id'));
final restored = LocaleController();
await restored.load();
expect(restored.locale?.languageCode, 'id');
controller.dispose();
restored.dispose();
});
}